Soit E un espace vectoriel sur K et f un endomorphisme de E.
Définition : On appelle vecteur propre de f tout vecteur x, non nul de E, vérifiant : f(x)=λx.
(Les vecteurs propres sont donc les vecteurs dont la direction est inchangée par l'application f).
Le scalaire l∈K est appelé valeur propre associée au vecteur x.
Calcul des valeurs propres et vecteurs propres
- Si A=(aij) est la matrice de l'application f dans une base B de E et X=(x1x2…xn) la matrice unicolonne du vecteur propre x dans B, alors :
f(x)=λx⇒AX=λX⇔(A−λI)X=0 (I : matrice unité d'ordre n)
- Le système homogène ainsi obtenu :
- Les valeurs propres de f (ou de A) sont les scalaires λ tels que :
L'équation de degré n en λ ainsi obtenu est dite Equation caractéristique.
(voir exemple "Calcul de valeurs propres" ci-dessous)
- Un vecteur propre x de composantes (x′,x",...) associé à la valeur propre λ doit vérifier la relation :
(In : matrice identité à l'ordre n)
Propriété : Si la matrice A admet p valeurs propres, distinctes deux à deux, les p vecteurs propres associés sont linéairement indépendants et forment une base de l'espace vectoriel E.
program VecteurPropre;
type
Matrice = array[1..10, 1..10] of real;
Vecteur = array[1..10] of real;
var
A: Matrice;
V: Vecteur;
N, i, j: integer;
λ: real;
procedure lireEntrees(var A: Matrice, var V: Vecteur);
var
i, j: integer;
begin
writeln('Entrez la taille de la matrice carrée A :');
readln(N);
writeln('Entrez les éléments de la matrice A :');
for i := 1 to N do
for j := 1 to N do
readln(A[i, j]);
writeln('Entrez les éléments du vecteur V :');
for i := 1 to N do
readln(V[i]);
end;
function estVecteurPropre(A: Matrice; V: Vecteur; N: integer; var λ: real): boolean;
var
i, j: integer;
AV: Vecteur;
begin
for i := 1 to N do
begin
AV[i] := 0;
for j := 1 to N do
AV[i] := AV[i] + A[i, j] * V[j];
end;
{Plus d’exercice corriges sur www.PANDACODEUR.COM }
λ := 0;
for i := 1 to N do
λ := λ + AV[i] * V[i];
estVecteurPropre := true;
for i := 1 to N do
if (AV[i] <> λ * V[i]) then
begin
estVecteurPropre := false;
break;
end;
end;
{WWW.PandaCodeur.com}
function valeurPropre(A: Matrice; N: integer): real;
var
delta, λ: real;
B: Matrice;
i, j: integer;
begin
// On calcule la matrice B = A - λ * I
for i := 1 to N do
for j := 1 to N do
if (i = j) then
B[i, j] := A[i, j] - λ
else
B[i, j] := A[i, j];
// On calcule le déterminant de B
delta := determinant(B, N);
// On résout l'équation caractéristique pour trouver la valeur propre
valeurPropre := λ + sqrt(delta);
end;
begin
lireEntrees(A, V);
if (estVecteurPropre(A,V,λ)=True) then
writeln('Le vecteur V est un vecteur propre de A avec la valeur propre ', valeurPropre(A, N))
else
writeln('Le vecteur V n''est pas un vecteur propre de A');
end.