Relacionar la descomposición en valores singulares (SVD) con las transformaciones del círculo unitario es una de las formas más potentes de entender visualmente cómo una matriz transforma el espacio.
🧮 ¿Qué es la Descomposición SVD?
La descomposición SVD (Singular Value Decomposition) de una matriz A∈Rm×nA \in \mathbb{R}^{m \times n} se define como:
A=UΣVTA = U \Sigma V^T
Donde:
- UU es una matriz ortogonal de m×mm \times m
- Σ\Sigma es una matriz diagonal (o rectangular) con valores singulares no negativos
- VTV^T es la transpuesta de una matriz ortogonal V∈Rn×nV \in \mathbb{R}^{n \times n}
🔵 ¿Cómo transforma el círculo unitario?
Supón que partes de un círculo unitario x∈R2x \in \mathbb{R}^2. La transformación A=UΣVTA = U \Sigma V^T actúa en tres pasos:
- VTV^T: Rota (o refleja) el círculo.
- Σ\Sigma: Estira o comprime a lo largo de los ejes.
- UU: Vuelve a rotar (o reflejar) el resultado.
🐍 Ejemplo visual en Python
import numpy as np
import matplotlib.pyplot as plt
# 1. Generar círculo unitario
theta = np.linspace(0, 2 * np.pi, 200)
circle = np.array([np.cos(theta), np.sin(theta)])
# 2. Matriz A
A = np.array([[2, 1],
[1, 3]])
# 3. SVD
U, S, VT = np.linalg.svd(A)
# 4. Aplicar cada paso del SVD
circle_VT = VT @ circle
circle_S = np.diag(S) @ circle_VT
circle_USV = U @ circle_S
# 5. Graficar
fig, axs = plt.subplots(1, 4, figsize=(16, 4))
titles = ['Círculo Unitario', 'Aplicar Vᵗ', 'Aplicar Σ', 'Aplicar U (Transformación Final)']
steps = [circle, circle_VT, circle_S, circle_USV]
colors = ['blue', 'orange', 'green', 'red']
for i in range(4):
axs[i].plot(steps[i][0], steps[i][1], color=colors[i])
axs[i].set_title(titles[i])
axs[i].axhline(0, color='gray', linestyle='--', linewidth=0.5)
axs[i].axvline(0, color='gray', linestyle='--', linewidth=0.5)
axs[i].axis('equal')
axs[i].grid(True)
plt.tight_layout()
plt.show()
🧠 Interpretación:
- La forma final (elipse) muestra el efecto completo de la transformación AA.
- Los ejes de la elipse son las direcciones principales (columnas de UU), y sus longitudes son los valores singulares σ1,σ2\sigma_1, \sigma_2.
- Este análisis es útil para entender la compresión de imágenes, reducción de dimensionalidad, y rangos de matrices.