# Strange result for Jordan_form()

     M = matrix([[4,-1,6],[2,1,6],[2,-1,8]])
MM=M.jordan_form(transformation=true)
show(MM)
show(MM[0])
show(MM[1])
show(MM[1]^(-1))
show(MM[1]^(-1)*MM[1])
show(MM[1]^(-1)*MM[0]*MM[1])
show(bool(MM[1]^(-1)*MM[0]*MM[1]==M))


According to the documentation and what I know of Jordan decomposition the last line should be True. No ?

edit retag close merge delete

Sort by ยป oldest newest most voted

Jordan canonical form is given by J = T^{-1} A T

A = matrix([[4,-1,6],[2,1,6],[2,-1,8]])
J, T = A.jordan_form(transformation=True)
T^(-1)*(A * T) ==  J

True


You checked:

T^(-1)*J*T == A


which is not the same

more

Note that

T*J*T^(-1) == A

True

( 2023-01-28 16:23:38 +0200 )edit

Ok but my formula is in the quickref-linalg.pdf . Someone should modify it.

( 2023-01-28 22:02:11 +0200 )edit

And I wonder what arr the matrix obtained by my way.

( 2023-01-29 04:54:21 +0200 )edit

The matrix P from quickref-linalg.pdf is inverse to the transformation T. Your MM[1] corresponds to P

( 2023-01-29 06:48:52 +0200 )edit