From: kovarik@mcmail.cis.McMaster.CA (Zdislav V. Kovarik) Newsgroups: sci.math Subject: Re: inverse of a no-square matrix Date: 4 Apr 1998 13:22:19 -0500 In article <35256D4C.75AE691F@bigfoot.com>, Sebastien Lambert wrote: :I've got a 8 x 64 matrix and I need it's left inverse. :How can I do that. : :I try: :M-1 = ((Mt * M) + (Epsilon * Identity))-1 * Mt : :but it doesn't seem to works. (Supposing it is 8 rows and 64 columns): It cannot work because if a matrix has more columns than rows then it has no left inverse (a hard fact of life). The reason is that a left-invertible matrix has nullspace consisting of zero vector alone, while a matrix with too many columns has more than one vector in its nullspace. What you described was an approximation to the Moore-Penrose pseudoinverse; it will be exactly it if you take the limit for Epsilon going to 0 from the right. (This process is connected to Tikhonov's regularization, and this seems to be the source of your formula). Numerically, this formula (if you settle for the approximate pseudoinverse) suffers from loss of accuracy; it is safer to use RQ-decomposition of a suitably augmented matrix and extract the approximate pseudoinverse from there. (If you matrix has independent rows and more columns than rows then the exact pseudoinverse is a right, rather than a left, inverse!) If you denote M^+ the Moore-Penrose pseudoinverse of M then the left-sided check matrix P = (M^+) * M is the orthoprojector whose nullspace is the same as the nullspace of M. Now you can see that P cannot be Identity if M has non-zero vectors in its nullspace. Hope it helps, ZVK (Slavek).