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.

Reply via email to