valeurs propres, et vecteurs propres d'une matrice ou d'un faisceau de matrices
evals = spec(A) [R, diagevals] = spec(A) evals = spec(A, B) [alpha, beta] = spec(A, B) [alpha, beta, Z] = spec(A, B) [alpha, beta, Q, Z] = spec(A, B)
A - s.B
.
alpha./beta donne les valeurs propres.
alpha
est à valeurs réelles ou complexes.
beta
est à valeurs réelles.
evals = spec(A) calcule les valeurs propres de
A
et les fournit dans le vecteur evals
.
[R, diagevals] = spec(A) fournit les valeurs propres
sur la diagonale de la matrice diagonale diagevals
.
La matrice R
produite contient les vecteurs propres à droite
(s'ils existent). Voir Aussi bdiag(…)
.
Lorsque spec(A)
est utilisée pour une seule matrice,
le caractère réel ou complexe des résultats est le suivant :
matrice A | Réelle | Complexe | ||
---|---|---|---|---|
Symétrique | Asymétrique | Hermitienne | Non hermitienne | |
Valeurs propres | réelles | complexes | réelles | complexes |
Vecteurs propres | réels | complexes | complexes | complexes |
Une matrice complexe hermitienne est égale à sa transposée conjuguée.
evals = spec(A, B) retourne le spectre du faisceau
A - s.B
, c'est à dire les racines du déterminant de la matrice de
polynômes A - s.B
.
[alpha, beta] = spec(A, B)
retourne les valeurs propres généralisées alpha
et
beta
du faisceau, telles que alpha./beta
sont les valeurs propres usuelles, c'est à dire les racines du déterminant de
la matrice de polynômes s E - A
.
La matrice A - alpha./beta × B
est alors singulière.
Si beta(i) = 0
, la ième
valeur propre est infinie.
Pour B = eye(A)
, alpha./beta
est
égal à spec(A)
.
[alpha, beta, Z] = spec(A, B)
produit en outre la matrice Z
des vecteurs propres
généralisés à droite.
[alpha, beta, Q, Z] = spec(A, B)
permet finalement d'obtenir la matrice Q
des vecteurs
propres généralisés à gauche.
![]() | Pour les matrices denses ou creuses de grande taille, la fonction
eigs peut être utilisée. |
Le calcul des valeurs propres des matrices est basé sur les programmes Lapack
DGEEV and ZGEEV, lorsque la matrice A n'est ni symétrique ni hermitienne.
DSYEV and ZHEEV, lorsque la matrice A est symétrique ou hermitienne.
Le calcul des valeurs propres des faisceaux est basé sur les programmes Lapack routines DGGEV et ZGGEV.
// Valeurs propres d'une matrice A = diag([1,2,3]); X = rand(3,3); A = inv(X)*A*X; spec(A) x = poly(0,'x'); pol = det(x*eye(3,3)-A) roots(pol) [S,X] = bdiag(A); clean(inv(X)*A*X) // Valeurs et vecteurs propres d'un faisceau de matrices A = rand(3,3); [al, be, Z] = spec(A,eye(A));al./be clean(inv(Z)*A*Z) // affiche les valeurs propres (matrice générique) A = A+%i*rand(A); E = rand(A); roots(det(%s*E-A)) // cas à valeurs propres complexes | ![]() | ![]() |