Crea una cuenta o inicia sesi贸n

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

Autovalores y Autovectores

3/18
Recursos

Aportes 27

Preguntas 0

Ordenar por:

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

o inicia sesi贸n.

El tema de los autovalores y autovectores es mucho m谩s extenso y complejo de lo que se muestra en este video, pues la obtenci贸n de los valores de forma matem谩tica es compleja (si nunca has tenido una clase de algebra lineal).
Les recomiendo consultar videos o libros que expliquen el trasfondo matem谩tico
Aqu铆 algunos datos 煤tiles:

  • Para conseguir los autovalores y autoverctores de la matriz A, esta debe ser cuadrada (ej: 2x2, 3x3, 9x9鈥)
  • La matriz A tendr谩 tantos autovalores como dimensi贸n tenga A (ej: una Matriz de 3x3 tiene 3 autovalores, matriz de 2x2 tiene dos autovalores)
  • Los autovalores pueden repetirse
  • Estos autovalores son los que forman los autovectores
  • Los autovectores deben ser base, es decir, que desde esos autovectores se pueda generar todo el espacio o dem谩s vectores
  • Aqui les dejo un Link de los usos de autovectores y valores en ingenier铆a

Autovectores:
Son vectores cuya direcci贸n no se modifica al aplicarle la trasformaci贸n de una matriz, el sentido y el tama帽o s铆 puede variar. El valor que transforma el vector inicial en el vector final se llama autovalor.
Notas:

  • S贸lo las matrices cuadradas tienen autovectores.
  • Hay tantos autovectores como la dimenci贸n de la matriz

Seg煤n entend铆 (y si me equivoco por favor me corrigen), un autovalor es aquel n煤mero que al ser multiplicado por un vector no modifica al vector en su direcci贸n (谩ngulo) pero s铆 puede hacerlo en su magnitud y sentido.

para complementar un poco lo que se vio en clase consideremos la ecuaci贸n de los autovectores. En este sentido v ser谩 un autovector si:

A v = 位 v

donde A es una matriz cuadrada y 位 un autovalor. De esta forma vemos el soporte matem谩tico de lo que se hizo en clase: al aplicar la matriz A al vector v, se obtuvo el mismo vector multiplicado por un escalar.

Autovalores y Autovectores.

Las transformaciones lineales ejercen trasformaciones sobre nuestros vectores. Un auto vector es cuando a un vector le aplicamos la transformaci贸n no sufre ninguna transformaci贸n.

# Importamos las bibliotecas

%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt

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

# Vamos a definir 2 colores
orange_light = '#FF9A13'
blue_light = '#1190FF'

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

# Definimos un vector 
v = np.array([[1], [1]])
print(v)

'''Recordemos que lo que estamos queriendo ver es un vector que cuando lo apliquemos la matriz siga siendo el mismo
vector, incluso cuando este sea un multiplo del vector original '''

# A nuestro vector transformado lo llamaremos u 
# Para transformarlo le vamos a aplicar el producto interno al vector original 
u = X.dot(v)
print(u)

# Graficamos los vectores

graficarVectores([u.flatten(), v.flatten()], cols=[orange_light, blue_light])

plt.xlim(-1, 6)
plt.ylim(-1, 6)

# Lo que obtuvimos es nuestro vector original que se llama v con color azul que fue expandido al 
# aplicarle nuestra transformaci贸n x de color naranja 

# Lo que esta ocurriendo es que nuestro auto valor es 5 y si lo multiplicamos. Entonces, un auto vector 
# Es aquel que cuando de aplico una matriz me devuelve el mismo vector con la misma direcci贸n, pero con una 
# Amplitud distinta. 脫sea, puede estar multiplicado por el autovalor.

lambda_1 = 5
lambda_1 * v

# Este valor no es 煤nico, aqu铆 vamos a definir otro y tendr谩 la misma propiedad.  

s = np.array([[-1], [2]])
print(s)

# Para transformarlo le vamos a aplicar el producto interno al vector original 
t = X.dot(s)
print(t)

graficarVectores([t.flatten(), s.flatten()], cols=[orange_light, blue_light])

plt.xlim(-3,3)
plt.ylim(-3,3)

# Veamos que la direcci贸n se mantiene, aunque haya un cambio de sentido 

Conclusi贸n: Una matriz de 2x2 tiene 2 auto vectores y 2 autovalores asociados.

Un vector est谩 compuesto por un m贸dulo, direcci贸n y sentido, un autovector obligatoriamente conservar谩 su direcci贸n, m谩s no la magnitud y el sentido

  • Un autovector es aquel que cuando le aplico una matriz me devuelve el vector con la misma direcci贸n pero puede tener una amplitud distinta. Puede estar multiplicado por el autovalor.

Leyendo este enlace ya me aclar茅

Resumo:
Un vector es autovector de una matriz cuando el resultado de multiplicar la matriz por el autovector es igual a multiplicar ese mismo vector por un escalar . Este escalar se llama autovalor

la f贸rmula es:
A v = 位 v
donde A es una matriz cuadrada, ya sea 2x2, 3x3, 4x4, etc.
De esa misma matriz A, por medio de operaciones matem谩ticas, se puede obtener sus Valores Propios (位) y sus Vectores propios (v).
primero se calculan los valores propios. (los valores propios son escalares, osea son n煤meros).
a partir de los valores propios y otras operaciones matem谩ticas es como se puede obtener los vectores propios.

Sin duda un tema para m谩s estudio. En este video explican detalladamente los autovalores y autovectores

Para que nos sirven los autovectores en Machine Learning? Cual es la aplicaci贸n practica o la razon del por que deberiamos saber esto. Espero puedan responderme esta duda!

no entendi muy bien, el autovector mantiene a la matriz con el mismo sentido, pero si que la pueda achicar o agrandar, pero entonces que es el autovalor?

Un autovector es aquel q al aplicarle una matriz , devuelve el vector con la misma direcci贸n pero puede que con un amplitud distinta

No necesariamente, ya que el vector nulo siempre se mapea a su representante nulo en el espacio mapeado

import plotly.figure_factory as ff

def graficarVectoresplotly(vector1=[0, 0], vector2=[0, 0], vector3=[0, 0], vector4=[0, 0], xlimit=[-5, 5], ylimit=[-5, 5]):
    fig1 = ff.create_quiver([0], [0], [vector1[0]], [vector1[1]], scale=1, arrow_scale=0.1)
    fig2 = ff.create_quiver([0], [0], [vector2[0]], [vector2[1]], scale=1, arrow_scale=0.1)
    fig3 = ff.create_quiver([0], [0], [vector3[0]], [vector3[1]], scale=1, arrow_scale=0.1)
    fig4 = ff.create_quiver([0], [0], [vector4[0]], [vector4[1]], scale=1, arrow_scale=0.1)
    fig1.add_traces(data = fig2.data + fig3.data + fig4.data, )
    fig1.update_layout(showlegend=False)
    fig1.update_xaxes(zeroline=True, zerolinewidth=2, zerolinecolor='red', range=xlimit)
    fig1.update_yaxes(zeroline=True, zerolinewidth=2, zerolinecolor='red', range=ylimit, scaleanchor = "x", scaleratio = 1)
    fig1.show()
    
graficarVectoresplotly(vector, vector_transformado)

Basicamente un vector A viene a ser un autovector de una matriz si, al multiplicar la matriz M por dicho vector A, obtienes otro vector B y este Vector B es igual a multiplicar el Vector A por un escalar E ( puedes er positivo o negativo).

M * A = B * E

  • Al vector A se le conoce como autovector de la matriz M
  • Al escalar E se le conoce como autovalor de la matriz M.

Un autovector de una matriz de 2x2 es aquel que cuando le aplico la matriz al autovector:
No sufre ninguna transformacion, misma direccion pero amplitud distinta, puede cambiar el sentido.

Si a alguien le sirve ver las matrices representadas al momento de hacer la clase , hice esta funci贸n:

#Recibe 2 matricices y las imprime de forma simb贸lica como producto punto
def imprimeMatrices(matriz_a, matriz_b):
  filas_a = matriz_a.shape[0]
  filas_b = matriz_b.shape[0]
  cols_a = matriz_a.shape[1] 
  cols_b = matriz_b.shape[1] 
 
  for i in range(max(filas_a,filas_b)):
    print("|", end=" ")
    for j in range(cols_a + cols_b):
      if j <= cols_a-1:
        print(round(matriz_a[i][j],2), end="  ")
        if j == cols_a-1:
          print("|  |", end=" ")
      elif j >= cols_a and i <= filas_b-1:
        print(round(matriz_b[i][j-cols_a],2), end="  ")
        if j == (cols_a+cols_b-1):
          print("|")
      elif i > filas_b-1:
        print("  ", end=" ")
        if j == (cols_a+cols_b-1):
          print("|")

Ejemplo usando los datos de la clase:

imprimeMatrices(X,v)
u = X.dot(v)
print(u)

Da como salida:

| 3  2  |  | 1  |
| 4  1  |  | 1  |
[[5]
 [5]]

Para aquellos aficionados a las matem谩ticos que gusten profundizar mas en el tema les dejo este blog, esta buen铆simo




  • Una matriz de 2x2 tiene dos autovectores con dos autovalores asociados.

Es decir, el 煤ltimo ejemplo tambi茅n fue un autovector?

.flatten() : Toma un vector y lo devuelve en una tira.

Este video muestra QUE son los autovalorees y autovectores graficamente.
https://www.youtube.com/watch?v=YtgU1ozMgS0