Come calcolare gli autovettori su Python
Per calcolare gli autovettori su Python si usa la funzione linalg.eig() del modulo NumPy.
linalg.eig(m)
L'argomento m è una matrice.
La funzione linalg.eig() restituisce gli autovalori e gli autovettori della matrice.
Un esempio pratico
Importare il modulo numpy.
import numpy as np
Definire una matrice con la funzione array
matrix = np.array([[3,1],[1,1]])
E' una matrice quadrata
$$ matrix = \begin{pmatrix} 3 & 1 \\ 1 & 1 \end{pmatrix} $$
Trovare gli autovalori e gli autovettori della matrice con la funzione eig()
autovalori, autovettori = np.linalg.eig(matrix)
Gli autovalori della matrice sono
>>> autovalori
array([3.41421356, 0.58578644])
Gli autovettori della matrice sono disposti in colonna
>>> autovettori
array([[ 0.92387953, -0.38268343],
[ 0.38268343, 0.92387953]])
Trasporre la matrice degli autovettori
autovettori = np.transpose(autovettori)
Ora gli autovettori della matrice sono disposti in riga
array([[ 0.92387953, 0.38268343],
[-0.38268343, 0.92387953]])
Verifica
Calcolare il prodotto tra la matrice e il primo autovettori
>>> np.dot(matrix,autovettori[0])
array([3.15432203, 1.30656296])
Calcolare il prodotto tra il primo autovettore e il primo autovalore
>>> autovettori[0]*autovalori[0]
array([3.15432203, 1.30656296])
Il risultato è lo stesso
Calcolare il prodotto tra la matrice e il secondo autovettori
>>> np.dot(matrix,autovettori[1])
array([-0.22417076, 0.5411961 ])
Calcolare il prodotto tra il primo autovettore e il secondo autovalore
>>> autovettori[1]*autovalori[1]
array([-0.22417076, 0.5411961 ])
Il risultato è lo stesso