### 6.57.4 Matrice de Jordan rationnelle : rat_jordan

rat_jordan a comme argument une matrice A d’ordre n à coefficients rationnels.
rat_jordan renvoie :

- en mode Xcas, Mupad ou TI
  une séquencee composée de deux matrices : une matrice de changement de base P, suivie de la matrice de Jordan J associée à A si celle-ci est rationnelle ou de la matrice dont les blocs de Jordan sont remplacés par les matrices compagnons associées au facteur non rationnellement reductible du polynôme caractéristique de A (c’est la matrice la plus reduite à coefficient dans le corps de A, ou le corps complexifié de A si on est en mode complexe).
- en mode Maple
  la matrice de Jordan J associée à A si celle-ci est rationnelle ou de la matrice dont les blocs de Jordan sont remplacés par les matrices compagnons associées au facteur non rationnellement reductible du polynôme caractéristique de A. On peut cependant obtenir la matrice de changement de base P, dans une variable passée en second argument, par exemple
  rat_jordan([[1,0,0],[1,2,-1],[0,0,1]],’P’)

On a :
J=P−1AP avec J est à coefficients rationnels.
Remarques

- La syntaxe Maple est aussi valable dans les autres modes, par exemple, en mode Xcas, on tape :
  rat_jordan([[4,1,1],[1,4,1],[1,1,4]],’P’)
  On obtient :
  [[1,-1,1/2],[1,0,-1],[1,1,1/2]]
  puis P renvoie :
  [[6,0,0],[0,3,0],[0,0,3]]
  ,
- Les coefficients de P et de J appartiennent au corps des coefficients de A.
  Par exemple, en mode Xcas, on tape :
  rat_jordan([[1,0,1],[0,2,-1],[1,-1,1]])
  On obtient :
  [[1,1,2],[0,0,-1],[0,1,2]],[[0,0,-1],[1,0,-3],[0,1,4]]
  On tape (on met -pcar(...) car l’argument de companion doit être un polynôme unitaire (cf 6.57.11)
  companion(-pcar([[1,0,1],[0,2,-1],[1,-1,1]],x),x)
  On obtient :
  [[0,0,-1],[1,0,-3],[0,1,4]]
  On tape :
  rat_jordan([[1,0,0],[0,1,1],[1,1,-1]])
  On obtient :
  [[-1,0,0],[1,1,1],[0,0,1]],[[1,0,0],[0,0,2],[0,1,0]]
  On tape :
  factor(pcar([[1,0,0],[0,1,1],[1,1,-1]],x))
  On obtient :
  -(x-1)*(x`^`2-2)
  On tape :
  companion((x`^`2-2),x)
  On obtient :
  [[0,2],[1,0]]
- Lorsque A est symétrique et a des valeurs propres d’ordre multiple, Xcas renvoie des vecteurs propres orthogonaux mais pas forcément normés i.e. tran(P)*P est une matrice diagonale de diagonale le carré de la norme des vecteurs propres.
  On tape :
  rat_jordan([[4,1,1],[1,4,1],[1,1,4]])
  On obtient :
  [[1,-1,1/2],[1,0,-1],[1,1,1/2]],[[6,0,0],[0,3,0],[0,0,3]]

On tape en mode Xcas, Mupad et TI:

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

On obtient :

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

On tape en mode Xcas, Mupad et TI:

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

On obtient :

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

En mode complexe et en mode Xcas, Mupad et TI, on tape :

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

On obtient :

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

On tape en mode Maple :

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

On obtient :

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

puis on tape :

P)

On obtient :

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