Calculer les vecteurs propres en Python
Pour calculer les vecteurs propres sur Python, utilisez la fonction linalg.eig() du module NumPy.
linalg.eig(m)
Le paramètre m est une matrice.
La fonction linalg.eig() renvoie les valeurs propres et vecteurs propres de la matrice.
Un exemple pratique
Importez le module numpy.
import numpy as np
Définition d'un tableau avec la fonction array
matrix = np.array([[3,1],[1,1]])
C'est une matrice carrée
$$ matrix = \begin{pmatrix} 3 & 1 \\ 1 & 1 \end{pmatrix} $$
Trouver les valeurs propres et les vecteurs propres de la matrice avec la fonction eig()
valp, vecp = np.linalg.eig(matrix)
Les valeurs propres de la matrice sont
>>> valp
array([3.41421356, 0.58578644])
Les vecteurs propres de la matrice sont disposés en colonne
>>> vecp
array([[ 0.92387953, -0.38268343],
[ 0.38268343, 0.92387953]])
Transposer la matrice des vecteurs propres
vecp = np.transpose(vecp)
Maintenant, les vecteurs propres de la matrice sont disposés en ligne
array([[ 0.92387953, 0.38268343],
[-0.38268343, 0.92387953]])
Vérifier
Calculer le produit entre la matrice et le premier vecteur propre
>>> np.dot(matrix,vecp[0])
array([3.15432203, 1.30656296])
Calculer le produit entre le premier vecteur propre et la première valeur propre
>>> vecp[0]*valp[0]
array([3.15432203, 1.30656296])
Le résultat est le même
Calculer le produit de la matrice et du deuxième vecteur propre
>>> np.dot(matrix,vecp[1])
array([-0.22417076, 0.5411961 ])
Calculer le produit du premier vecteur propre et de la deuxième valeur propre
>>> vecp[1]*valp[1]
array([-0.22417076, 0.5411961 ])
Le résultat est le même.
Le calcul est donc correct.