Path: news.mathworks.com!moler
From: moler@acoma.mathworks.com (Cleve Moler)
Newsgroups: comp.soft-sys.matlab
Subject: Re: Pseudoinverse in MATLAB
Date: 28 Mar 2001 17:32:07 GMT
Organization: The MathWorks, Inc., Natick, MA 01760
Lines: 34
Message-ID: <99t76n$kta$1@news.mathworks.com>
References: <3AC15EAA.F5CACB12@hotmail.com> <trg0fyq8e3.fsf@coyote.llan.ll.mit.edu> <3AC21DC7.55D349C3@hotmail.com>
NNTP-Posting-Host: acoma.dhcp.mathworks.com
Xref: news.mathworks.com comp.soft-sys.matlab:92750


In article <3AC21DC7.55D349C3@hotmail.com>,
Elias Kyriakides  <elias_kyriakides@hotmail.com> wrote:
>Yes, but still there is the question about the SVD. This is an internal
>function and i am more interested about that.
>
>Pete Boettcher wrote:
>
>> Elias Kyriakides <elias_kyriakides@hotmail.com> writes:
>>
>> > Does anybody know how to get the actual code for the pseudoinverse in
>> > MATLAB? I am really interested to see the whole thing plus the Singular
>> > Value Decomposition SVD) and find out how it works.
>> >
>> > I would be really grateful if somebody has it or knows how i can get it.
>>
>> type pinv
>>
>> Or open the file $MATLABROOT/toolbox/matlab/matfun/pinv.m
>>
>> -PB
>

Hi --

There is really only one SVD algorithm -- the original due to Golub
and Kahan, with improvements by Wilkinson and Reinsch.  It is described
in the books by Golub and Van Loan and by Stewart.  I believe that
Numerical Recipes has some code.  Before version 6, MATLAB used a C
implementation of the LINPACK code.  Now we use LAPACK's Fortran
subroutine DGESVD.  But all of the these are basically the same idea --
orthogonal reduction to a bidiagonal form and then QR iteration to
reduce the bidiagonal to diagonal.

 -- Cleve Moler