[Numpy-discussion] SVD does not converge
Tue Jun 28 12:36:18 CDT 2011
On Tue, Jun 28, 2011 at 7:43 PM, Lou Pecora <firstname.lastname@example.org> wrote:
> *From:* santhu kumar <email@example.com>
> *To:* firstname.lastname@example.org
> *Sent:* Tue, June 28, 2011 11:56:48 AM
> *Subject:* [Numpy-discussion] SVD does not converge
> I have a 380X5 matrix and when I am calculating pseudo-inverse of the
> matrix using pinv(numpy.linalg) I get the following error message:
> raise LinAlgError, 'SVD did not converge'
> numpy.linalg.linalg.LinAlgError: SVD did not converge
> I have looked in the list that it is a recurring issue but I was unable to
> find any solution. Can somebody please guide me on how to fix that issue?
> I had a similar problem (although I wasn't looking for the pseudo inverse).
> I found that "squaring" the matrix fixed the problem. But I'm guessing in
> your situation that would mean a 380 x 380 matrix (I hope I'm thinking about
> your case correctly). But it's worth trying since it's easy to do.
With my rusty linear algebra: if one chooses to proceed with this 'squaring'
avenue, wouldn't it then be more economical to base the calculations on a
square 5x5 matrix? Something like:
A_pinv= dot(A, pinv(dot(A.T, A))).T
Instead of a 380x380 based matrix:
A_pinv= dot(pinv(dot(A, A.T)), A).T
My two cents
> -- Lou Pecora, my views are my own.
> NumPy-Discussion mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion