### 5.48.4  Rational Jordan matrix : rat_jordan

rat_jordan takes as argument a square matrix A of size n with exact coefficients.
rat_jordan returns :

• in Xcas, Mupad or TI mode
a sequence of two matrices : a matrix P (the columns of P are the eigenvectors if A is diagonalizable in the field of its coefficients) and the rational Jordan matrix J of A, that is the most reduced matrix in the field of the coefficients of A (or the complexified field in complex mode), where  J=P−1AP
• in Maple mode
the Jordan matrix J of A. We can also have the matrix P verifying J=P−1AP in a variable by passing this variable as second argument, for example
rat_jordan([[1,0,0],[1,2,-1],[0,0,1]],’P’)

Remarks

• the syntax Maple is also valid in the other modes, for example, in Xcas mode input
rat_jordan([[4,1,1],[1,4,1],[1,1,4]],’P’)
Output :
[[1,-1,1/2],[1,0,-1],[1,1,1/2]]
then P returns
[[6,0,0],[0,3,0],[0,0,3]]
• the coefficients of P and J belongs to the same field as the coefficients of A.
For example, in Xcas mode, input :
rat_jordan([[1,0,1],[0,2,-1],[1,-1,1]])
Output :
[[1,1,2],[0,0,-1],[0,1,2]],[[0,0,-1],[1,0,-3],[0,1,4]]
Input (put -pcar(...) because the argument of companion is a unit polynomial (see 5.48.10)
companion(-pcar([[1,0,1],[0,2,-1],[1,-1,1]],x),x)
Output :
[[0,0,-1],[1,0,-3],[0,1,4]]
Input :
rat_jordan([[1,0,0],[0,1,1],[1,1,-1]])
Output :
[[-1,0,0],[1,1,1],[0,0,1]],[[1,0,0],[0,0,2],[0,1,0]]
Input :
factor(pcar([[1,0,0],[0,1,1],[1,1,-1]],x))
Output :
-(x-1)*(x`^`2-2)
Input :
companion((x`^`2-2),x)
Output :
[[0,2],[1,0]]
• When A is symmetric and has eigenvalues with an multiple order, Xcas returns orthogonal eigenvectors (not always of norm equal to 1) i.e. tran(P)*P is a diagonal matrix where the diagonal is the square norm of the eigenvectors, for example :
rat_jordan([[4,1,1],[1,4,1],[1,1,4]])
returns :
[[1,-1,1/2],[1,0,-1],[1,1,1/2]],[[6,0,0],[0,3,0],[0,0,3]]

Input in Xcas, Mupad or TI mode :

rat_jordan([[1,0,0],[1,2,-1],[0,0,1]])

Output :

[[0,1,0],[1,0,1],[0,1,1]],[[2,0,0],[0,1,0],[0,0,1]]

Input in Xcas, Mupad or TI mode :

rat_jordan([[4,1,-2],[1,2,-1],[2,1,0]])

Output :

[[[1,2,1],[0,1,0],[1,2,0]],[[2,1,0],[0,2,1],[0,0,2]]]

In complex mode and in Xcas, Mupad or TI mode , input :

rat_jordan([[2,0,0],[0,2,-1],[2,1,2]])

Output :

[[1,0,0],[-2,-1,-1],[0,-i,i]],[[2,0,0],[0,2-i,0],[0,0,2+i]]

Input in Maple mode :

rat_jordan([[1,0,0],[1,2,-1],[0,0,1]],’P’)

Output :

[[2,0,0],[0,1,0],[0,0,1]]

then input :

P

Output :

[[0,1,0],[1,0,1],[0,1,1]]]