Transformaciones Lineales con Matrices: Efectos en el Círculo Unitario

Clase 7 de 18Curso de Álgebra Lineal Aplicada para Machine Learning

Resumen

¿Cómo se descomponen las matrices en transformaciones lineales?

Las matrices, cuando se piensan como transformaciones lineales, ofrecen una herramienta poderosa para manipular diferentes vectores en un espacio. Una matriz A puede descomponerse en otras tres matrices, cada una representando su propia transformación lineal. Entender sus efectos es crucial, ya que estas transformaciones repercuten de la misma manera sin importar los vectores a los que se apliquen. Vamos a sumergirnos en el mundo de las matrices y su relación con el círculo unitario.

¿Qué es el círculo unitario y por qué lo utilizamos?

El círculo unitario es una herramienta gráfica que ayuda a visualizar los efectos de estas transformaciones. Dicho de otro modo, se trata de un círculo centrado en el origen (0,0) con radio 1. Su papel es esencial en el estudio de las transformaciones lineales, ya que permite observar de forma clara los cambios que dichas transformaciones generan, tal como la rotación o el escalado de vectores dentro del espacio.

¿Cómo graficar el círculo unitario?

Para graficar el círculo unitario y aplicar transformaciones, necesitamos Python y la biblioteca numpy para cálculos y matplotlib para la visualización. El siguiente código muestra cómo lograr esto:

import numpy as np
import matplotlib.pyplot as plt

def graficar_matriz(matriz, vector_colores=['r', 'b']):
    # Definimos el círculo unitario
    x = np.linspace(-1, 1, 1000)
    y = np.sqrt(1 - x**2)
    
    # Transformación del círculo por la matriz
    x1 = matriz[0, 0] * x + matriz[0, 1] * y
    y1 = matriz[1, 0] * x + matriz[1, 1] * y
    
    x1_neg = matriz[0, 0] * x - matriz[0, 1] * y
    y1_neg = matriz[1, 0] * x - matriz[1, 1] * y
    
    # Graficamos los vectores transformados
    plt.plot(x1, y1, color='g', alpha=0.7)
    plt.plot(x1_neg, y1_neg, color='g', alpha=0.7)
    
    plt.axhline(0, color='black', lw=1)
    plt.axvline(0, color='black', lw=1)
    plt.xlim(-1.5, 1.5)
    plt.ylim(-1.5, 1.5)
    plt.gca().set_aspect('equal', adjustable='box')
    plt.show()

# Ejemplo con una matriz de identidad
matriz_identidad = np.array([[1, 0], [0, 1]])
graficar_matriz(matriz_identidad)

¿Cómo aplicar transformaciones sin modificar el gráfico original?

Al probar el efecto de diferentes matrices, es esencial luego visualizar cómo estas cambian el círculo unitario en tiempo real. Las matrices de diferentes valores cambian la forma del círculo original, visualizando el impacto de la transformación lineal aplicada. A continuación, se muestra cómo se implementa este concepto:

# Definimos una matriz
A = np.array([[3, 7], [5, 2]])

# Graficamos el círculo unitario original
graficar_matriz(np.eye(2))  # Matriz identidad

# Graficamos el círculo unitario transformado
graficar_matriz(A)

¿Qué observamos con las matrices aplicadas?

Al aplicar la matriz A, observamos cómo los vectores base del círculo unitario original (los puntos cardinales) se transforman. Por ejemplo:

  • El vector (1, 0) se desplaza de su posición original.
  • El vector (0, 1) también cambia, conforme a los componentes de A, obteniendo un nuevo espacio transformado.

Esta aplicación práctica nos permite ver cómo actúa la matriz sobre los vectores del círculo y nos ofrece una comprensión palpable de las transformaciones lineales.

Recomendaciones prácticas

Para entender y visualizar de manera efectiva las transformaciones lineales mediante matrices:

  1. Practica con diversas matrices: Cambia los valores de las matrices para observar distintos efectos en el círculo unitario.
  2. Documenta tus observaciones: Mantén un registro de cómo cambian los vectores con diferentes matrices, te ayudará a entender patrones.
  3. Explora visualmente y analíticamente: Usa las gráficas para ver el cambio y luego calcula los valores para confirmar lo que ves.
  4. Profundiza en la teoría: Revisa la teoría matemática detrás de estas transformaciones para una comprensión más sólida.

Estas recomendaciones no solo abrillantan tus habilidades matemáticas sino también potencian tu capacidad de programación aplicada a problemas matemáticos.

¡Continúa explorando y ampliando tu conocimiento en transformaciones lineales!