La fonction jordan
prend en entrée une matrice et retourne en
sortie une matrice de passage et une forme réduite de Jordan telles
que
. Soit est diagonalisable auquel cas est
diagonale et contient les valeurs propres de sur la diagonale,
soit n'est pas diagonalisable et comporte des "1" ou des "0"
au-dessus de la diagonale. Pour les matrices exactes et symboliques,
seules les valeurs propres calculables par
solve
sont accessibles. Pour des matrices de nombres approchés,
un algorithme numérique est utilisé, et il risque
d'échouer en cas de valeurs propres multiples ou très proches.
La matrice de l'exemple qui suit a pour valeurs propres doubles 1
et 2. Elle est diagonalisable pour
, non diagonalisable pour .
A:=[[1,1,-1,0],[0,1,0,a],[0,-1,2,0],[1,0,1,2]] factor(poly2symb(simplify(pcar(A)))) jordan(A) eigenvals(A) eigenvects(A) jordan(subs(A,a=0)) eigenvects(subs(A,a=1)) jordan(evalf(subs(A,a=0))) jordan(evalf(subs(A,a=1)))
Certaines fonctions, définies par des séries entières, s'étendent aux matrices dès lors que l'on sait calculer leur forme de Jordan. La plus utile est l'exponentielle.
A:=[[0,1,0],[0,0,1],[-2,1,2]] jordan(A) exp(A) log(A) sin(A)
Réduction des matrices | |
jordan |
diagonalisation ou réduction de Jordan |
pcar |
coefficients du polynôme caractéristique |
pmin |
coefficients du polynôme minimal |
eigenvals |
valeurs propres |
eigenvects |
vecteurs propres |