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 |