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