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.
