From: vince@nldi7.nag.co.uk (K Vince Fernando,GE21 ,)
Newsgroups: sci.math.num-analysis
Subject: Re: pseudoinverse by svd
Date: 8 Jul 1998 15:56:20 GMT
In article <35A38F62.23FE@orion.mc.duke.edu>,
Steve Suddarth wrote:
>Hello,
>
>I am trying to compute the (Moore-Penrose) pseudoinverse using svd. I
>fired up matlab and compared the pinv(A) with the output of svd(A) for
>an arbitrary small matrix A and cannot see the connection. I read in an
>article that the book Numerical Recipes in C contained something on how
>to do this but I cannot find it in there.
>
>can you please email me at:
>
> sas@orion.mc.duke.edu
>
>if you have the simple insight that I lack.
Let A = USV' where A, U, S, V are mxn, mxr, rxr and nxr matrices,
respectively, U and V are orthogonal (U'U = I, V'V = I) and S is a
diagonal matrix with positive elements. It is usual to declare very
"small" singular values to zero and reduce the size of S. The
Moore-Penrose inverse is then given by V inv(S) U'. Note that
A pinv(A) A = A which is also true for non-singular matrices. It is
easy to generate similar further results.
Vince