Maîtriser les valeurs propres et les vecteurs propres dans MATLAB :un guide pratique
Les valeurs propres et les vecteurs propres sont des concepts fondamentaux de l'algèbre linéaire, largement utilisés dans divers domaines, notamment la physique, l'ingénierie et l'analyse de données. Dans MATLAB, ces concepts peuvent être explorés et calculés facilement.
Qu'est-ce que les valeurs propres ?
Une valeur propre est un scalaire, noté (lambda), associé à une transformation linéaire d'un espace vectoriel. Il représente le facteur par lequel le vecteur propre correspondant est mis à l'échelle pendant la transformation.
Qu'est-ce que les EigenVectors ?
Un vecteur propre est un vecteur non nul qui ne change que d'un facteur scalaire lorsqu'une transformation linéaire lui est appliquée. Autrement dit, si A est une matrice, v est un vecteur propre de A correspondant à la valeur propre si −
Av=v
Ici, A est une matrice carrée, v est le vecteur propre et est la valeur propre.
Fonctions MATLAB
MATLAB fournit des fonctions intégrées pour calculer les valeurs propres et les vecteurs propres.
Utiliser eig
Cette fonction calcule les valeurs propres et les vecteurs propres d'une matrice.
Syntaxe
e = eig(A) [V,D] = eig(A) [V,D,W] = eig(A) e = eig(A,B) [V,D] = eig(A,B) [V,D,W] = eig(A,B) [___] = eig(A,balanceOption) [___] = eig(A,B,algorithm) [___] = eig(___,outputForm)
Explication de la syntaxe
e =eig(A) renvoie un vecteur colonne avec les valeurs propres de la matrice carrée A.
[V,D] =eig(A) renvoie une matrice diagonale D avec les valeurs propres de A et une matrice V dont les colonnes sont les vecteurs propres correspondants. Cela signifie que multiplier A par V équivaut à multiplier V par D.
[V,D,W] =eig(A) renvoie également une matrice complète W dont les colonnes sont les vecteurs propres gauches correspondants. Cela signifie que multiplier la transposée de W par A équivaut à multiplier D par la transposée de W.
Le problème des valeurs propres consiste à trouver des solutions à l’équation Av =v, où A est une matrice carrée, v est un vecteur colonne et est un scalaire. Les valeurs qui satisfont cette équation sont les valeurs propres, et les valeurs v qui la satisfont sont les bons vecteurs propres. Les vecteurs propres de gauche, w, satisfont à l'équation w'A =w'.
e =eig(A,B) renvoie un vecteur colonne avec les valeurs propres généralisées des matrices carrées A et B.
[V,D] =eig(A,B) renvoie une matrice diagonale D avec les valeurs propres généralisées et une matrice complète V dont les colonnes sont les vecteurs propres droits correspondants. Cela signifie que multiplier A par V équivaut à multiplier B, V et D ensemble.
[V,D,W] =eig(A,B) renvoie également une matrice complète W dont les colonnes sont les vecteurs propres gauches correspondants. Cela signifie que multiplier la transposée de W par A équivaut à multiplier D, la transposée de W et B.
Le problème des valeurs propres généralisé consiste à trouver des solutions à l’équation Av =Bv, où A et B sont des matrices carrées, v est un vecteur colonne et est un scalaire. Les valeurs qui satisfont cette équation sont les valeurs propres généralisées, et les valeurs v sont les vecteurs propres droits correspondants. Les vecteurs propres de gauche, w, satisfont à l'équation w'A =w'B.
[___] =eig(A, balanceOption), où balanceOption est "nobalance", désactive l'étape d'équilibrage préliminaire dans l'algorithme. Par défaut, balanceOption est "balance", ce qui active l'équilibrage. La fonction eig peut renvoyer n'importe lequel des arguments de sortie mentionnés dans les exemples précédents.
[___] =eig(A,B,algorithm), où l'algorithme est "chol", utilise la factorisation de Cholesky de B pour calculer les valeurs propres généralisées. L'algorithme par défaut dépend des propriétés de A et B, mais il est "qz" (algorithme QZ) lorsque A ou B ne sont pas symétriques.
[___] =eig(___,outputForm) renvoie les valeurs propres dans le format spécifié par outputForm, en utilisant l'un des arguments d'entrée ou de sortie mentionnés précédemment. Définissez OutputForm sur "vector" pour obtenir les valeurs propres dans un vecteur colonne, ou sur "matrix" pour les obtenir dans une matrice diagonale.
Exemples pour la fonction Matlab eig()
Voici quelques exemples pour illustrer comment l'utiliser −
Exemple 1 :Pour calculer les valeurs propres en utilisant e =eig(A)
Dans MATLAB, vous pouvez trouver les valeurs propres de la matrice A à l'aide de la fonction eig. Considérez le code suivant −
% Define the matrix A A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % Compute the eigenvalues e = eig(A)
Dans l'exemple ci-dessus −
- La matrice A est définie comme une matrice 3 x 3 avec les entrées comme indiqué.
- La fonction eig(A) calcule les valeurs propres de la matrice A.
- Le résultat de eig(A) est stocké dans la variable e, qui est un vecteur colonne contenant les valeurs propres de A.
Lorsque le code est calculé, le résultat que nous obtenons est le suivant -
>> % Define the matrix A A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % Compute the eigenvalues e = eig(A) e = 16.1168 -1.1168 -0.0000
Exemple 2 :Pour obtenir des valeurs propres et des vecteurs propres en utilisant [V,D] =eig(A)
Dans MATLAB, vous pouvez trouver les valeurs propres et les vecteurs propres de la matrice A à l'aide de la fonction eig.
Pensez à suivre le code −
% Define the matrix A
A = [2, -1;
4, 3];
% Compute the eigenvalues and eigenvectors
[V, D] = eig(A);
% Display the eigenvalues
disp('Eigenvalues:');
disp(D);
% Display the eigenvectors
disp('Eigenvectors:');
disp(V);
Dans le code ci-dessus, nous avons −
- La matrice A est définie comme une matrice 2 x 2 avec les entrées comme indiqué.
- La fonction [V, D] =eig(A) calcule à la fois les valeurs propres (D) et les vecteurs propres correspondants (V) de la matrice A.
- D est une matrice diagonale contenant les valeurs propres de A.
- V est une matrice dont les colonnes sont les vecteurs propres correspondants.
Lorsque le code est exécuté, le résultat que nous obtenons est le suivant −
>> % Define the matrix A
A = [2, -1;
4, 3];
% Compute the eigenvalues and eigenvectors
[V, D] = eig(A);
% Display the eigenvalues
disp('Eigenvalues:');
disp(D);
% Display the eigenvectors
disp('Eigenvectors:');
disp(V);
Eigenvalues:
2.5000 + 1.9365i 0.0000 + 0.0000i
0.0000 + 0.0000i 2.5000 - 1.9365i
Eigenvectors:
-0.1118 + 0.4330i -0.1118 - 0.4330i
0.8944 + 0.0000i 0.8944 + 0.0000i
MATLAB