Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

C贸mo calcular los autovalores y autovectores

4/18
Recursos

Aportes 19

Preguntas 4

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Los cursos de python con 谩lgebra lineal y este tienen mucho potencial, y eso es por que este hombre es un muy bueno explicando, sin duda uno de los mejores profesores en platzi

馃馃 Si toman el primer autovector que arroj贸 numpy, resulta que es ortogonal a los demas que calculamos 馃馃

  • np.linalg.eig(x) - Obtiene los autovalores y autovectores asociados
  • Los autovectores encontrados por numpy son un m煤ltiplo del propuesto en el ejercicio. Los autovectores son los mismos, lo que var铆a es la amplitud o el sentido

"Los autovectores son los mismos. Pueden cambiar en amplitud o sentido, pero su direcci贸n se mantiene"

El Eigen Vector se usa mucho en el an谩lisis de redes sociales por medio de grafos. Este identifica la importancia de un nodo sobre la misma red.

驴C贸mo podemos calcular con las funciones de Python los autovectores y los autovalores?

# Importamos las bibliotecas

%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt

# Creamos una matriz
X = np.array([[3, 2], [4, 1]])
print(X)

# Vemos la biblioteca para calcular los autovectores y autovalores de Numpy
print(np.linalg.eig(X))

# Pedimos que muestre los autovalores
autovalores, autovectores = np.linalg.eig(X)
print(autovalores)

# Pedimos cual es el autovalor asociado a cada autovector 
print(autovectores[:, 0]) 

# Mostramos el autovector numero 1
print(autovectores[:, 1])

# Importamos nuestra funci贸n para graficar. 
%run ".\\Funciones auxiliares\graficarVectores.ipynb"

# Definamos un array 
v = np.array([[-1], [2]])
# Calculamos la tranformacion con el calculo del producto interno 
Xv = X.dot(v)
# Y lo comparamos con el autovector anterior 
v_np = autovectores[:, 1]
print(Xv)
print(v_np)

# Graficamos al que calculamos con el producto interno, el vector original y el que nos devolvi贸 el m茅todo de Numpy
graficarVectores([Xv.flatten(), v.flatten(), v_np], cols = ['green','orange','blue'])

plt.ylim(-4,2)
plt.xlim(-7,3)

Conclusi贸n:

Entonces, podemos ver que el autovector encontrado por Numpy es un m煤ltiplo del autovector que nosotros propusimos. Eso quiere decir que los autovectores son lo mismo, solo que pueden variar en amplitud o en sentido, pero la direcci贸n se mantiene. Si tenemos un autovector, menos ese autovector tambi茅n es autovector.

Que buen curso definitivamente uno de los mejores de esta carrera , excelente explicaci贸n .

Escribo esta respuesta que le di a un compa帽ero porque es una pregunta frecuente y puede que sirva y servir谩 para varios:

Lo que sucede en la combinaci贸n lineal de una matriz con un vector es que se transforma el espacio, de ah铆 su nombre 鈥渢ransformaci贸n lineal鈥. Entonces, los ejes que conocemos como 鈥渪鈥 e 鈥測鈥 se modifican y van a cambiar dependiendo de la matriz que est茅 describiendo ese espacio, en este caso, la matriz 鈥渪鈥. Lo que sucede con los autovectores es que son vectores que, durante la transformaci贸n del espacio, se mantienen en el subespacio generado por el vector 鈥渙riginal鈥 en el espacio 鈥渙riginal鈥. No necesariamente todos los autovectores del nuevo espacio estan dentro del mismo subespacio generado, por eso, este otro vecto ortgonal es tambi茅n un autovector que se mantiene en el subesapcio generado de otro vector 鈥渙riginal鈥.

Si nosotros quisi茅ramos averiguar cual es ese vector 鈥渙riginal鈥 tendr铆amos que tratar el problema como un sistema de ecuaciones lineales donde 鈥渪鈥 e 鈥測鈥 son las inc贸gnitas de ese vector. Les dejo ac谩 la captura de como se podr铆a solucionar en python.

Lo que pasa con el vector [[0.14142136] , [0.14142136]] es que al transformarse el espacio, se mantiene dentro de su subespacio generado escal谩ndose en 5 (que es su autovalor o el lambda, como arroja la funci贸n de Eigenvalues de numpy).

Si este profe si sabe de lo que habla y lo hace con c贸digo . Genial !!

Sin duda este curso y el de 谩lgebra lineal con python son los mejor explicados, estoy muy agradecido por este curso, gracias profe no me despeg贸 de sus clases

que curso debo ver antes que este? no he entendido nada 馃槮

Por si necesitan comprender un poco mejor los conceptos
Autovalores y Autovectores

matriz=np.array([[3,2],[4,1]])
autovalores,autovectores=np.linalg.eig(matriz)
print(autovalores)
print(autovectores)
print(np.linalg.norm(autovectores[:,1]))
print(np.rad2deg(np.arccos(np.abs(autovectores[:,1].dot(np.array([1,0]))))))
print(np.rad2deg(np.arccos(np.abs(np.array([1,-2]).dot(np.array([1,0])/np.linalg.norm(np.array([1,-2])))))))```

Los autovectores son los mismos. Pueden cambiar en amplitud o sentido, pero su direcci贸n se mantiene!

C谩lculo de autovalores y autovectores en python
Usamos el m茅todo np.linalg,eig(<matriz>) que nos devuelve una tupla con los arreglos de autovalores y autovectores. Ejemplo:

autovalores, autovectores = no.linalg.eig(A)

Totalmente de acuerdo, de los mejores profesores

  • Lo que estamos viendo, es que efectivamente los tres son el mismo vector. Conservan la misma direcci贸n, lo 煤nico que est谩 cambiando es su amplitud, y en alg煤n caso tambi茅n el sentido.
  • Entonces, lo que se est谩 teniendo, es que lo que cambia es el Autovalor asociado.
  • Se puede ver que el Autovector encontrado por numpy, es un m煤ltiplo del Autovector que propusimos.



Me pueden explicar por qu茅 elige v = np.array([[-1],[2]])?
Por qu茅 no tom贸 un valor aleatorio para evaluar la transformada