Math::Matrix - Multiply and invert Matrices
戻る
NAME
Math::Matrix - Multiply and invert Matrices
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 undef 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;
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 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.
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.
substract
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);
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 cross-product 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 pseudo-inverse 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
Brian J. Watson
Matthew Brett
戻る
宜兴市|
兖州市|
孝义市|
抚松县|
仙居县|
桂东县|
忻城县|
枣阳市|
仙游县|
永年县|
类乌齐县|
澄江县|
建阳市|
闵行区|
洛浦县|
吐鲁番市|
屯门区|
泾源县|
广平县|
衡山县|
临邑县|
旬阳县|
清原|
嵩明县|
秦皇岛市|
册亨县|
集贤县|
临夏县|
嘉善县|
比如县|
乌兰浩特市|
贵阳市|
宜兰市|
武义县|
竹山县|
宜丰县|
诸城市|
英德市|
镇远县|
平邑县|
芜湖市|