Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Descomposición de matrices

5/18
Recursos

Aportes 16

Preguntas 0

Ordenar por:

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

  • Descomponer una matriz: Quiere decir encontrar dos o más matrices que me ayuden a escribir la matriz original y que tengan ciertas propiedades.
    Una matriz A la podemos escribir como: sus autovectores producto punto una matriz diagonal, donde la matriz diagonal tiene todos los autovalores encontrados, producto punto la matriz inversa de sus autovectores.
  • A_calc = autovectores.dot(np.diag(autovalores)).dot(np.linalg.inv(autovectores))
  • Descomposición 2: Restricciones:Nuestra Matriz A sea real y simétrica (A = A-transpuesta). Decimos que A = la matriz de autovectores producto punto la matriz diagonal con los autovalores, producto punto la transpuesta de la matriz de autovectores. NOTA: Calcular la transpuesta de una matriz es mucho más económico en cómputo que calcular la inversa de una matriz. Y hay que recordar que el cómputo cuesta dinero.
  • A_calc = autovectores.dot(np.diag(autovalores)).dot(autovectores.T)

Exijo el botón de like para estos videos!!! 😄

Descomposición de matrices
Consiste en reescribir una matriz cuadrada X como un producto de A x B x C, es decir X = AxBxC, donde:

  • A: es la matriz formada por los autovectores
  • B: matriz diagonal formada por los autovalores
  • C: matriz inversa de A.

Nota: En matrices reales y simétricas, C = A.T (matriz traspuesta de los autovectores). Esta propiedad tiene menor costo computacional.

Recordatorio: Una matriz cuadrada es aquella que tiene igual número de filas y columnas, y cuyos vectores que la componen son linealmente independientes.

faltó hacer la claridad: la matriz de autovectores que devuelve eig es una matriz ortonormal, por eso cumple la propiedad que utiliza en el minuto 7

Dejo mis apuntes del curso anterior como referencia, despues los de este curso
https://github.com/rb-one/curso_fundamentos_algebra_lineal/blob/master/Notes/notes.md

Descomposición de matrices

# Importamos Numpy

import numpy as np

# Creamos una matriz

A = np.array([[3, 2], [4, 1]])
print(A)

# Calculamos los autovalores y los autovectores

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

# Mostramos los autovectores y los autovalores 

print(autovalores)
print(autovectores)

A_calc = autovectores.dot(np.diag(autovalores)).dot(np.linalg.inv(autovectores))

# Imprimimos la A_calc

print(A_calc)

# Creamos y mostramos la matriz

A = np.array([[3,2], [2,3]])
print(A)

# Demostramos que esta matriz es simétrica, ya que coincide con su traspuesta

print(A == A.T)

# Calculamos de nuevo los autovalores y los autovectores

autovalores , autovectores = np.linalg.eig(A)
print(autovalores)
print(autovectores)

# Lo que estamos obteniendo es que los autovalores son el 5 y el 1 y nuestra matriz es la que tiene esos valores 

# Podemos reescribirla usando 
# Una matriz simétrica es igual a su traspuesta, pero ademas si esto ocurre podremos escribir la descomposición como nuestra 
# matriz a es igual a los autovectores por la diagonal de las lambdas por la traspuesta de los autovectores

A_calc = autovectores.dot(np.diag(autovalores)).dot(autovectores.T)
print(A_calc)

# Entonces, calcular una traspuesta es muchismo más economico que calcular una inversa, entonces nuestro casi ideal es que 
# en vez de tener una matriz cualquiera estuvimos una matriz real simétrica, sin tener que realizar la inversa 

Convulsión: Podemos escribir a nuestra matriz cuando es cuadrada en función de los autovalores y autovectores, y en el caso de que sea simétrica podemos usar la traspuesta en lugar de la inversa.





Descomposición de Matrices Cuadradas
Podemos descomponer una matriz cuadrada en el producto de otras dos: la matriz de autovectores y la matriz diagonal de autovalores:
M = autovectores * diag(autovalores) * inv_autovectores

Una manera de imprimir los autovalores y autovectores para que sea más entendible es:

print(*zip(eigenvalues, eigenvectors.T))

Fun fact:
Cuando se representa un grafo no dirigido en una matriz de adyacencia, se obtiene una matrix cuadrada simétrica.

Dejo mi aporte según como lo termino de ver:

La singularidad como su nombre lo describe es lo contrario a plural, y es la cualidad que poseen los valores para diferenciarse de sus semejantes, por eso con SVD se busca justamente los menos valores posibles que con sus cualidades SINGULARES nos reflejen la mayor información posible y a diferencia del PCA que busca las menos o única componente(s)/dimensión(s) posible(s) en las que sus valores PLURALMENTE nos reflejen la mayor información posible sin perder su variabilidad!

wowowoow meses de leer sobre esto y hasta por fin entendí estas propiedades gracias profeeee

Hola. Este caso que comenta el profesor es un caso particular de un proceso al que se le conoce como “cambiar de base” o “expresar a la matríz en otra base”. Esas matrices de eigenvectores se conocen como la “matriz de cambio de base” y en este caso se trata de la matríz de cambio de base a la base que diagonaliza la matríz, justamente la base de eigenvectores. El tema es denso pero muy divertido. Los invito a profundizar en el tema en el capítulo 2 y 5 del siguiente libro

A = EigenVects · diag(EigenValues) · EigenVects⁻¹

A = V · Lambda · V⁻¹