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).