The commit itself is here[1]. The code is very simple and there is documentation.
[1]: https://github.com/Krastanov/sympy/commit/ac37a577bcbdf5ef196a3fc210920bc5e2c7128c On 14 July 2013 23:55, Stefan Krastanov <[email protected]> wrote: > Concerning generalized eigenvector and jordan forms, somebody already > provided tests for them, but no implementation. A 3/4 finished > implementation can be found here[1], but probably it is not mergeable > anymore. > > > [1]: https://github.com/krastanov/sympy/tree/jordan_1 > > > On 14 July 2013 18:40, Aaron Meurer <[email protected]> wrote: > >> No, each non-diagonalizable matrix can be put into Jordan form, which is >> is a matrix of blocks that are a sum of a diagonal part and a nilpotent >> part (if you don't believe me, try finding the taylor expansion of m = >> Matrix([[2, 1, 0, 0], [0, 2, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]])). >> >> This is indeed how you compute the exponential (or at least how I was >> taught). You find the Jordan blocks lambda*I + N and use the fact that >> exp(lambda*I + N) = exp(lambda*I)*exp(N), where the first exponential is >> just exp(lambda)*I and the second has a finite taylor expansion, so can >> just be computed by I + N + 1/2!*N**2 + ..., which is a finite sum. (I >> think there are more efficient ways of computing exp(N) than using the >> taylor expansion, but even doing it the stupid way would be better than >> nothing). >> >> Aaron Meurer >> >> >> On Sun, Jul 14, 2013 at 11:15 AM, F. B. <[email protected]> wrote: >> >>> What about a temporary quick fix using the nilpotent matrix trick? >>> Wikipedia claims that if the matrix is non-diagonalizable over the complex >>> field, it is nilpotent. This means finite Taylor expansion. >>> >>> >>> On Sunday, July 14, 2013 5:59:45 PM UTC+2, Aaron Meurer wrote: >>> >>>> The usual way to do it is to use generalized eigenvectors and Jordan >>>> form. Some work was started at https://github.com/sympy/** >>>> sympy/pull/677 <https://github.com/sympy/sympy/pull/677>, but it needs >>>> to be finished. >>>> >>>> See also these issues: https://code.google.** >>>> com/p/sympy/issues/list?&q=**jordan<https://code.google.com/p/sympy/issues/list?&q=jordan> >>>> >>>> Aaron Meurer >>>> >>>> >>>> On Sun, Jul 14, 2013 at 9:35 AM, F. B. <[email protected]> wrote: >>>> >>>>> >>> m = Matrix([[0, 1], [0, 0]]) >>>>> >>> exp(m) >>>>> NotImplementedError: Exponentiation is implemented only for >>>>> diagonalizable matrices >>>>> >>>>> >>>>> What is the best way to implement the exponentiation for >>>>> non-diagonalibale matrices? >>>>> >>>>> I thought a way to fix it could be by Taylor expansion (hoping >>>>> non-diagonalizable matrices over the complexes are nilpotent). >>>>> >>>>> Any better ideas? Just suggest me something and I'll try to fix it. >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "sympy" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to sympy+un...@**googlegroups.com. >>>>> To post to this group, send email to [email protected]. >>>>> >>>>> Visit this group at >>>>> http://groups.google.com/**group/sympy<http://groups.google.com/group/sympy> >>>>> . >>>>> For more options, visit >>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>>>> . >>>>> >>>>> >>>>> >>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "sympy" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/sympy. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/sympy. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
