Cómo calcular los vectores propios en Python
Para calcular los vectores propios (eigenvectores o autovectores) en Python, use la función linalg.eig() del módulo NumPy.
linalg.eig(m)
El parámetro m es una matriz.
La función linalg.eig () devuelve los autovalores y autovectores de la matriz.
Un ejemplo practico
Importe el módulo numpy.
import numpy as np
Definir una matriz con la función array().
matrix = np.array([[3,1],[1,1]])
Es una matriz cuadrada
$$ matrix = \begin{pmatrix} 3 & 1 \\ 1 & 1 \end{pmatrix} $$
Calcule los autovalores y autovectores de la matriz con la función eig()
autovalori, autovettori = np.linalg.eig(matrix)
Los valores propios de la matriz son
>>> autovalori
array([3.41421356, 0.58578644])
Los vectores propios de la matriz están organizados en columnas.
>>> autovettori
array([[ 0.92387953, -0.38268343],
[ 0.38268343, 0.92387953]])
Transponer la matriz de autovectores
autovettori = np.transpose(autovettori)
Ahora los autovectores de la matriz están ordenados en una fila.
array([[ 0.92387953, 0.38268343],
[-0.38268343, 0.92387953]])
Verificar
Calcule el producto entre la matriz y el primer vector propio
>>> np.dot(matrix,autovettori[0])
array([3.15432203, 1.30656296])
Calcule el producto entre el primer vector propio y el primer valor propio
>>> autovettori[0]*autovalori[0]
array([3.15432203, 1.30656296])
El resultado es el mismo
Calcule el producto de la matriz y el segundo vector propio
>>> np.dot(matrix,autovettori[1])
array([-0.22417076, 0.5411961 ])
Calcule el producto del primer vector propio y el segundo valor propio
>>> autovettori[1]*autovalori[1]
array([-0.22417076, 0.5411961 ])
El resultado es el mismo.
Por tanto, el cálculo es correcto.