Math::Matrix - Multiply and invert Matrices


NAME

Math::Matrix - Multiply and invert Matrices


SUPPORTED PLATFORMS

This module is not included with the standard ActivePerl distribution. It is available as a separate download using PPM.

DESCRIPTION

The following methods are available:

new

Constructor arguments are a list of references to arrays of the same length. The arrays are copied. The method returns undef in case of error.

        $a = new Math::Matrix ([rand,rand,rand], 
                               [rand,rand,rand], 
                               [rand,rand,rand]);

concat

Concatenates two matrices of same row count. The result is a new matrix or undef in case of error.

        $b = new Math::Matrix ([rand],[rand],[rand]);
        $c = $a->concat($b);

transpose

Returns the transposed matrix. This is the matrix where colums and rows of the argument matrix are swaped.

multiply

Multiplies two matrices where the length of the rows in the first matrix is the same as the length of the columns in the second matrix. Returns the product or undef in case of error.

solve

Solves a equation system given by the matrix. The number of colums must be greater than the number of rows. If variables are dependent from each other, the second and all further of the dependent coefficients are 0. This means the method can handle such systems. The method returns a matrix containing the solutions in its columns or undef in case of error.

print

Prints the matrix on STDOUT. If the method has additional parameters, these are printed before the matrix is printed.


EXAMPLE

        use Math::Matrix;
        srand(time);
        $a = new Math::Matrix ([rand,rand,rand], 
                         [rand,rand,rand], 
                         [rand,rand,rand]);
        $x = new Math::Matrix ([rand,rand,rand]);
        $a->print("A\n");
        $E = $a->concat($x->transpose);
        $E->print("Equation system\n");
        $s = $E->solve;
        $s->print("Solutions s\n");
        $a->multiply($s)->print("A*s\n");


AUTHOR

Ulrich Pfeifer <pfeifer@ls6.informatik.uni-dortmund.de>

 Math::Matrix - Multiply and invert Matrices