http://www.perlmonks.org?node_id=480020


in reply to Moore-Penrose Pseudo-Inverse Matrix

My recollection (which may be in error) is that the Moore-Penrose inverse of A is: (A^tA)^{-1}A^t which exists if A^tA is invertible (i.e. if the columns of A are independent.) (I'm using ^ to indicate exponenents as in TeX source.) A^tA is square, and there are many existing routines to invert a square matrix - I'm sure there are some Perl modules that do this, although you could write your own as an exercise. You indicate above that A and the M-P inverse are symmetric, but I don't believe this is correct. The point of the M-P inverse is that it can be applied to non-square matrices.
chas
(Update: BTW, if you have a system of equations Ax=b then x=(A^tA)^{-1}A^tb is the usual "least squares" solution, i.e. the x for which Ax is closest to b.)