Er, S[i,i] = S[i,i]**-1 if S[i,i]!=0 else 0
On Sun, Jul 29, 2012 at 10:30 AM, Matthew Rocklin <[email protected]>wrote: > You could implement the Moore-Penrose > Pseudoinverse<http://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_pseudoinverse> > easily > by using the currently implemented SVD. > > # Pseudocode > U,S,V = svd(A) > S[i,i] = S[i,i] if S[i,i]!=0 else 0 > Ainv = U*S*V # one of these might be transposed, not sure. > x = Ainv * y > > While this should hold mathematically our method to compute the svd works > for only the simplest of matrices. > > > On Sun, Jul 29, 2012 at 10:18 AM, [email protected] < > [email protected]> wrote: > >> I need it for a calculation of generalized eigenvectors which is >> needed for a calculation of the jordan normal form which is needed for >> the ode solver when the system is not diagonalizable. >> >> I have almost finished a certain version that projects to a space >> orthogonal to the nullspace, however it is getting complicated. >> >> Is there any obvious already implemented way to do it that I have missed? >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/sympy?hl=en. >> >> > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
