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 <pfeifer@ls6.informatik.uni-dortmund.de> Brian J. Watson <bjbrew@power.net> Matthew Brett <matthew.brett@mrc-cbu.cam.ac.uk>
戻る
镇原县| 静乐县| 萨嘎县| 桃江县| 察哈| 洛隆县| 布尔津县| 咸宁市| 军事| 雅安市| 偃师市| 锡林浩特市| 洞口县| 灵丘县| 廊坊市| 德庆县| 潍坊市| 全椒县| 云林县| 开封市| 和政县| 厦门市| 武威市| 大城县| 西平县| 军事| 清徐县| 溧阳市| 邵东县| 攀枝花市| 林口县| 广州市| 景洪市| 盘山县| 新邵县| 富宁县| 疏附县| 高陵县| 双牌县| 亚东县| 芦山县|