

 
Manual Reference Pages  MATH::MATRIX (3)
.ds Aq ’
NAME
Math::Matrix  Multiply and invert Matrices
CONTENTS
SYNOPSIS
use Math::Matrix;
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 <B>undefB> in case of
error.
$a = new Math::Matrix ([rand,rand,rand],
[rand,rand,rand],
[rand,rand,rand]);
If you call new as method, a zero filled matrix with identical deminsions is returned.
clone
You can clone a matrix by calling:
$b = $a>clone;
diagonal
A constructor method that creates a diagonal matrix from a single list
or array of numbers.
$p = Math::Matrix>diagonal(1, 4, 4, 8);
$q = Math::Matrix>diagonal([1, 4, 4, 8]);
The matrix is zero filled except for the diagonal members, which take the
value of the vector
The method returns <B>undefB> in case of error.
tridiagonal
A constructor method that creates a matrix from vectors of numbers.
$p = Math::Matrix>tridiagonal([1, 4, 4, 8]);
$q = Math::Matrix>tridiagonal([1, 4, 4, 8], [9, 12, 15]);
$r = Math::Matrix>tridiagonal([1, 4, 4, 8], [9, 12, 15], [4, 3, 2]);
In the first case, the main diagonal takes the values of the vector, while
both of the upper and lower diagonals’s values are all set to one.
In the second case, the main diagonal takes the values of the first vector,
while the upper and lower diagonals are each set to the values of the
second vector.
In the third case, the main diagonal takes the values of the first vector,
while the upper diagonal is set to the values of the second vector, and the
lower diagonal is set to the values of the third vector.
The method returns <B>undefB> in case of error.
size
You can determine the dimensions of a matrix by calling:
($m, $n) = $a>size;
concat
Concatenates two matrices of same row count. The result is a new
matrix or <B>undefB> 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 <B>undefB> 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
<B>undefB> in case of error.
invert
Invert a Matrix using solve.
multiply_scalar
Multiplies a matrix and a scalar resulting in a matrix of the same
dimensions with each element scaled with the scalar.
$a>multiply_scalar(2); scale matrix by factor 2
add
Add two matrices of the same dimensions.
subtract
Shorthand for add($other>negative)
equal
Decide if two matrices are equal. The criterion is, that each pair
of elements differs less than $Math::Matrix::eps.
slice
Extract columns:
a>slice(1,3,5);
diagonal_vector
Extract the diagonal as an array:
$diag = $a>diagonal_vector;
tridiagonal_vector
Extract the diagonals that make up a tridiagonal matrix:
($main_d, $upper_d, $lower_d) = $a>tridiagonal_vector;
determinant
Compute the determinant of a matrix.
dot_product
Compute the dot product of two vectors.
absolute
Compute the absolute value of a vector.
normalizing
Normalize a vector.
cross_product
Compute the crossproduct of vectors.
print
Prints the matrix on STDOUT. If the method has additional parameters,
these are printed before the matrix is printed.
pinvert
Compute the pseudoinverse of the matrix: ((A’A)^1)A’
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.unidortmund.de>
Brian J. Watson <bjbrew@power.net>
Matthew Brett <matthew.brett@mrccbu.cam.ac.uk>
perl v5.20.3  MATRIX (3)  20130930 
Visit the GSP FreeBSD Man Page Interface. Output converted with manServer 1.07. 