Crea una cuenta o inicia sesi贸n

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

Aprende Ingl茅s, Programaci贸n, AI, Ciberseguridad y mucho m谩s.

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

4 D铆as
17 Hrs
32 Min
15 Seg

C贸mo calcular los autovalores y autovectores

4/18
Recursos

Aportes 27

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

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.

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 buen curso definitivamente uno de los mejores de esta carrera , excelente explicaci贸n .

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

驴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.

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

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)

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).

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

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])))))))```
Sarpado, los autovectores son ortonormales: ![](https://static.platzi.com/media/user_upload/image-210463bd-77fa-4eab-841d-e552355bfd3b.jpg)![](https://static.platzi.com/media/user_upload/image-2051eb32-b2c1-4b09-8727-b477948c7461.jpg)
En la Universidad donde vi algebra lineal usan el nombre de valores y vectores propios. Por si alguien los conoce con ese nombre.
Excelente profesor, para llegar a demostrar que los autovector son los mismo, solo varian ciertas cosas, pero sigue siendo el mismo autovector.

Recomiendo hacer al menos una vez los c谩lculos a mano para entender las matem谩ticas de fondo, al fin y al cabo al llamar a los comandos todo sale solo y arroja solo el resultado, de esa manera uno no entiende de donde sali贸

En mi caso estaba perdida con este tema, no pod铆a comprenderlo, nunca lo hab铆a estudiado.
Busque otras fuentes y las comparto por si les interesa.

Primero entenderlo de forma tradicional:

Usando Python
Con la librer铆a sympy https://youtu.be/sgaE9j5OmLs

Existe un fallo en la explicaci贸n espec铆ficamente centrada en la grafica del final de la clase que puede generar confusiones ya que aunque es cierto que los vectores cambian de sentido, teniendo en cuenta que el sentido es similar a las coordenadas de ubicaci贸n (norte, sur, noroccidente etc鈥) y dicho sentido en vectores se determina por medio la flecha del vector, sin embargo la direcci贸n tambi茅n cambia ya que la direcci贸n de un vector la indica el 谩ngulo que forma el vector con el eje x y si el vector apunta en sentido inverso al de referencia entonces cambia el 谩ngulo de este con respecto al eje x por ello cambia su direcci贸n, espero poder aclarar en algo a quien lo necesite

La funci贸nnp.linalg.eig()devuelve dos valoresautovaloresy autovectores. Los autovalores se almacenanautovalores, yautovectores, donde cada columna representa un autovector.

import numpy as np

# Definir una matriz
A = np.array([[2, 1],
              [1, 2]])

# Calcular los autovalores y autovectores
autovalores, autovectores = np.linalg.eig(A)

# Imprimir los autovalores y autovectores
print("Autovalores:", autovalores)
print("Autovectores:")
for i in range(len(autovectores)):
    print(autovectores[:, i])

A mi consideracion, deberia haber establecido otros valores para 鈥渧鈥, ya que no se aprecia bien lo que esta queriendo explicar, lo que se genera es que por mas que 鈥渧鈥 cambie de valores, el vector 鈥淴v鈥 seguira teniendo la misma direccion que 鈥渧_np鈥 (autovector)

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

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

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.