Conceptos básicos de álgebra lineal y configuración del entorno de trabajo

1

Presentación del curso y la necesidad del Álgebra Lineal

2

Anaconda + Python, Creación de un entorno y actualización de paquetes

3

Uso de Jupyter Notebook

4

Creando las bases, escalares, vectores y matrices. ¿Qué es un tensor? ¿Cómo se representa?

Realiza operaciones básicas

5

Dimensión de un escalar, vector, matriz o tensor

6

Transposición, suma de matrices y escalares

7

Suma de matrices y vectores (broadcasting)

Operaciones con matrices

8

Producto interno entre una matriz y un vector

9

Producto interno entre dos matrices

10

Propiedades de las matrices: la multiplicación de matrices es asociativa y distributiva, no es conmutativa

11

Transposición de un producto de matrices

12

Cómo comprobar la solución de un sistema de ecuaciones lineal

13

Tipos especiales de matrices: Identidad, Inversa, Singulares

14

Aplicación de la inversa de una matriz para resolver un sistema de ecuaciones lineales

Sistema de ecuaciones lineales

15

Ejemplos de sistemas sin solución, con una solución y con infinitas soluciones

16

Graficar vectores

17

¿Qué es una combinación líneal?

18

¿Qué es un espacio y un subespacio?

19

Vectores linealmente independientes

20

Validar que una matriz tenga inversa

Normas

21

Qué es una norma y para qué se usa. Desigualdad Triangular

22

Tipos de normas: norma 0, norma 1, norma 2, norma infinito y norma L2 al cuadrado

23

El producto interno como función de una norma y su visualización

Matrices y vectores especiales

24

La matriz diagonal y la matriz simétrica: sus propiedades

25

Vectores ortogonales, matrices ortogonales y sus propiedades

26

Matrices ortogonales y sus propiedades

Otras funciones de álgebra lineal

27

El determinante y la traza

28

Cierre del curso. Continua con el Curso de Álgebra Lineal Aplicada a Machine Learning.

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Matrices ortogonales y sus propiedades

26/28
Recursos

Aportes 24

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El profesor nunca menciona por que elige la matriz con seno y coseno. Resulta que esa matriz, se llama una “matriz de rotación”. La cual me permite rotar un vector 90 grados. Es por esta razón que es una matriz ortogonal.

Aqui les va un pequeño truco para hacer las aproximaciones a cero.

Se trata de definir un valor muy pequeño (épsilon) contra el que se comparan los elementos de la matriz y si son menores que él entonces ajustarlos a cero:

eps= 1e-17
A[np.abs(A) < eps] = 0

Matriz Ortogonal
Es la matriz cuyos vectores filas son ortonormales mutuamente (lo mismo con los vectores columnas)
Cumplen con la siguiente identidad:
A_tA = AA_t = I
A_t = inv(A)

Nota:
Cuidado con los errores que podemos propagar al operar con las aproximaciones que hace python

Una matriz es ortogonal cuando todas sus filas son mutuamente ortonormales y todas sus columnas son mutuamente ortonormales.
Así mismo, una matriz ortogonal es una matriz cuadrada cuya matriz inversa coincide con su matriz transpuesta.

Para los que estan haciendo el curso ahora(16/8/2020) no les va a dar el resultado de print(1/A_t.dot(A)) y

A_t = A.T
print(A_t.dot(A))
print(A.dot(A_t))```

como al profe ya que a traves del tiempo los lenguajes tienen actualizaciones y ahora el resultado de esos calculos es 0 e infinito ya que se entiende que el profesor no obtiene esos resultados por limitaciones de la computadora

De acuerdo al teorema no es necesario probar tanto que las filas y las columnas son ortonormales entre si, solo con las columnas basta

  • Una matriz ortogonal debe cumplir: que todas sus filas sean ortogonales mutuamente, igual que sus columnas y ademas que sean ortonormales(Que sus normas sean igual a 1)

Por si alguien al igual que yo, tiene la duda del uso de las “rebanadas” en python con matrices:

import numpy as np
matriz = np.array([[1, 0, 0],
                 [0, 1, 0],
                 [0, 0, 1]])


print(matriz[0,:]) #imprime la primera fila de la matriz
print(matriz[1,:]) #imprime la segunda fila de la matriz

print(matriz[:,0]) #imprime la primera columna de la matriz
print(matriz[:,1]) #imprime la segunda columna de la matriz

A mi me da lo que indica el profe.





Que opinan del codigo que cree para verificar si una matriz es ortogonal?

def ortogonal(matriz):
    cero = True
    for i in range(3):
        for j in range(3):
            if i != j and i < j:
                punto = matriz[:,i].dot(matriz[:,j])
                if punto != 0:
                    cero = False
    return cero

matriz = np.eye(3)

print(matriz)

if ortogonal(matriz) and ortogonal(matriz.T):
    print('Matriz Ortogonal')
else:
    print('NO es Matriz Ortogonal')

Al multiplicara A.A_t obtuve esto :
[[1. 0.]
[0. 1.]]
[[1. 0.]
[0. 1.]]

Nota.
Propiedades de las matrices ortogonales:
(A)(A.T) = (A.T)(A) = matriz_identidad
A.T = A^-1

Una matriz ortogonal es una matriz cuyas columnas (o filas) son vectores ortonormales entre sí. Para que un conjunto de vectores sea ortonormal, cada par de vectores debe ser ortogonal (es decir, su producto interno debe ser cero) y cada vector debe tener una norma (longitud) de uno. ### Propiedades de una Matriz Ortonormal 1. **Ortogonalidad**: Los vectores columna (o fila) son ortogonales entre sí. Esto significa que el producto interno de cualquier par de vectores diferentes es cero. 2. **Normalización**: Cada vector columna (o fila) tiene una longitud (norma) de uno. 3. **Inversa**: La matriz ortonormal tiene la propiedad especial de que su inversa es igual a su transpuesta. Es decir, si Q es una matriz ortonormal, entonces Q−1=QT.

Me sale difetente:


print(A[0,:].dot(A[1,:]))
print(A[:,0].dot(A[:,1]))

7.937715190675968e-18
-7.937715190675968e-18

Si redondeamos nos genera el error.

print(1/np.around(A_t.dot(A)))


Una matriz ortogonal es una matriz cuadrada en la que las filas (o columnas) son vectores ortogonales unitarios. Esto implica que el producto interno entre cualquier par de filas (o columnas) es cero y las filas (o columnas) tienen norma igual a 1. Las matrices ortogonales tienen varias propiedades importantes:

Ortogonalidad:

  • El producto interno entre cualquier par de filas (o columnas) de una matriz ortogonal es cero. Esto significa que los vectores correspondientes son ortogonales entre sí.

Norma unitaria:

  • Las filas (o columnas) de una matriz ortogonal tienen norma igual a 1. Esto implica que son vectores unitarios.

Inversa igual a la traspuesta:

  • La inversa de una matriz ortogonal es igual a su traspuesta. Esto se debe a la propiedad de que los vectores filas (o columnas) son unitarios y ortogonales entre sí. La matriz traspuesta intercambia filas por columnas, por lo que se preservan las propiedades de ortogonalidad y norma unitaria.

Preservación de la longitud y el ángulo:

  • Una matriz ortogonal preserva la longitud de los vectores y los ángulos entre ellos. Si se aplica una matriz ortogonal a un conjunto de vectores, las magnitudes y las relaciones angulares entre los vectores se mantienen.

Rotación y reflexión:

  • Las matrices ortogonales se utilizan comúnmente para representar rotaciones y reflexiones en geometría. Debido a su propiedad de preservar longitudes y ángulos, las matrices ortogonales son útiles para transformaciones lineales que conservan estas propiedades geométricas.

Producto de matrices ortogonales:

  • El producto de dos matrices ortogonales también es una matriz ortogonal. Esto se debe a que la ortogonalidad se preserva en el producto y la traspuesta del producto es igual al producto de las traspuestas.

Las matrices ortogonales son ampliamente utilizadas en aplicaciones como la geometría computacional, la compresión de imágenes, el procesamiento de señales, el reconocimiento de patrones y el aprendizaje automático, entre otros.

Para quienes no han entendido por qué el producto punto entre los vectores de la matriz (columnas) es igual a cero:

El producto punto (también conocido como producto escalar) es una operación matemática que se utiliza para calcular la relación entre dos vectores. Esta operación produce un escalar que indica la proyección de un vector sobre otro vector en un espacio euclidiano.

Cuando dos vectores son ortogonales (perpendiculares) entre sí, el producto punto entre ellos es cero, lo que significa que no hay proyección de un vector sobre el otro. En cambio, si los vectores no son ortogonales, el producto punto produce un resultado que depende de la magnitud de los vectores y el ángulo que forman entre sí.

Yo lo realicé como se muestra, y en mi caso sí marcó la diferencia entre 0, porque también se obtuvo correctamente la matriz identidad con 1 y 0, tal vez sea porque en 2022 ya se actualizaron esas funciones de numpy, aunque sólo es una suposición, tal vez alguien lo pueda confirmar.

Podemos utilizar esta ++ funcion np.linalg.norm(matrix, axis)++ para calcular la norma por columnas axis = 0 o por filas axis=1.

# ortonorm by columns
print(np.linalg.norm(A, axis=0))
# ortonorm by rows
print(np.linalg.norm(A, axis=1))

Si, hay que tener cuidado con todo eso y aproximarlo a cero

  • A.t.dot(A) == A.dot(A.T) == Identidad
  • A.T == A^-1

me gusto esta clase

Muchas gracias Johan, importante aporte.