Matrices Ortogonales y Ortogonormalidad en Python
Clase 26 de 28 • Curso de Fundamentos de Álgebra Lineal con Python
Resumen
¿Qué es una matriz ortogonal?
Una matriz es considerada ortogonal cuando todas sus filas y columnas son mutuamente ortonormales. En términos de álgebra lineal, esto significa que, si nuestras filas y columnas son tratadas como vectores, estos deben ser mutuamente ortonormales. Veamos cómo comprobar si una matriz es ortogonal utilizando Python y la biblioteca numpy.
¿Cómo construir una matriz ortogonal en Python?
Para ilustrar el concepto de matrices ortogonales, podemos hacer un ejemplo práctico usando Python y la biblioteca numpy. Python es ampliamente utilizado en la programación matemática debido a sus potentes bibliotecas como numpy para cálculos numéricos.
import numpy as np
# Definimos una matriz de ejemplo
matrix = np.array([[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
# Imprimimos la matriz
print(matrix)
La matriz definida es la matriz identidad, que es trivialmente una matriz ortogonal.
¿Cómo comprobar si una matriz es ortogonal?
Para verificar que una matriz es ortogonal, debemos:
- Comprobar ortogonalidad de las columnas: Todas las columnas deben ser ortogonales entre sí, lo cual implica que el producto interno de cualquier par de columnas distintas sea cero.
- Validar sus normas: Cada columna debe tener norma uno.
Verificación de ortogonalidad de las columnas
# Producto interno de columnas
dot_product_12 = np.dot(matrix[:, 0], matrix[:, 1])
dot_product_13 = np.dot(matrix[:, 0], matrix[:, 2])
dot_product_23 = np.dot(matrix[:, 1], matrix[:, 2])
print(dot_product_12, dot_product_13, dot_product_23) # Debería ser 0
Validación de las normas de las columnas
norm_col1 = np.linalg.norm(matrix[:, 0])
norm_col2 = np.linalg.norm(matrix[:, 1])
norm_col3 = np.linalg.norm(matrix[:, 2])
print(norm_col1, norm_col2, norm_col3) # Debería ser 1
Los vectores son ortonormales si tienen norma 1, como vemos en el ejemplo anterior.
¿Qué es una matriz ortonormal?
Aunque comunmente los términos "matriz ortogonal" y "ortonormal" se usan indistintamente, técnicamente todas las matrices ortogonales consisten en vectores ortonormales. No hay necesidad de distinguir entre los dos términos, ya que cualquier matriz ortogonal tiene por definición vectores ortonormales.
¿Cómo generar matrices ortogonales con Python y trigonometría?
Podemos usar funciones trigonométricas para generar matrices ortogonales. Veamos un ejemplo usando las funciones seno y coseno:
theta = np.pi / 4 # Ángulo de 45 grados
# Definición de la matriz
matrix = np.array([[np.cos(theta), -np.sin(theta)],
[np.sin(theta), np.cos(theta)]])
print(matrix)
Ahora, para verificar la propiedad ortogonal, podemos comprobar que la multiplicación de la matriz por su transpuesta da como resultado la matriz identidad:
# Calcular transpuesta y multiplicar
transpose = matrix.T
identity_check = np.dot(transpose, matrix)
print(identity_check) # Debería ser la matriz identidad
La práctica de construir y verificar matrices ortogonales nos ayuda a comprender y aplicar estos conceptos en problemas matemáticos reales, a la vez que desarrollamos cuidado al trabajar con cálculos numéricos en Python, evitando la amplificación de errores debido a imprecisiones computacionales. ¡Sigue explorando la magia de las matemáticas y la programación!