∫Atlas Matemáticas Aplicadas

Inicio › Temas › Álgebra lineal

🧮 Álgebra lineal nivel básico

Matrices como transformaciones

Una matriz 2×2 es una función que dobla el plano: rota, estira, cizalla o refleja.

🕹️ Ábrelo en el curso interactivo (simulador y código ejecutable)

La idea

Una matriz de 2×2 no es solo una tabla de cuatro números: es una función que toma cada vector del plano y lo lleva a otro vector. La regla es el producto matriz-vector, y lo que la hace especial es que respeta la estructura del plano: la imagen de una suma es la suma de las imágenes y la imagen de un múltiplo es el mismo múltiplo de la imagen. Esas dos propiedades definen una transformación lineal.

Para saber qué hace una matriz basta mirar sus columnas: la primera es la imagen del vector e₁ = (1, 0) y la segunda la del vector e₂ = (0, 1). Como cualquier vector se escribe v = v₁e₁ + v₂e₂, su imagen queda determinada por esas dos flechas. De ahí salen las familias clásicas: la rotación de ángulo θ, el escalado que estira cada eje por separado, la cizalla que desliza las filas horizontales y la reflexión que invierte un eje. Aplicar dos transformaciones seguidas equivale a multiplicar sus matrices, y como el producto de matrices no es conmutativo, el orden importa: girar y luego estirar no da el mismo resultado que estirar y luego girar.

Geométricamente, la transformación convierte la cuadrícula de cuadrados unitarios en una red de paralelogramos: las rectas siguen siendo rectas, el origen no se mueve y el paralelismo se conserva. El determinante mide cuánto se multiplica el área en el proceso, y su signo indica si la orientación se conserva o se invierte. Cuando el determinante vale cero el plano entero se aplasta sobre una recta y la información se pierde de forma irreversible.

Fórmulas clave

  • Acción sobre un vectorA·v = (a v₁ + b v₂, c v₁ + d v₂)
  • Rotación de ángulo θR(θ) = [[cos θ, −sen θ], [sen θ, cos θ]]
  • EscaladoS(sₓ, s_y) = [[sₓ, 0], [0, s_y]]
  • Cizalla horizontalH(k) = [[1, k], [0, 1]]
  • Reflexión en el eje XF = [[1, 0], [0, −1]]
  • Composición(A ∘ B)(v) = (A·B)·v, en general A·B ≠ B·A

Dónde se aplica

Todo motor gráfico —de un videojuego a un programa de diseño— mueve, gira y escala objetos multiplicando sus vértices por matrices, y encadena varias en una sola antes de enviarla a la tarjeta gráfica. En robótica, la posición de cada eslabón de un brazo articulado se obtiene componiendo rotaciones y traslaciones. En procesamiento de imágenes, corregir la perspectiva de una foto escaneada o alinear dos radiografías consiste en estimar la matriz que mejor superpone una sobre la otra. Y en ciencia de datos, cada capa lineal de una red neuronal es exactamente una multiplicación por una matriz.

Con programación (Python)

import math

def mat_vec(A, v):
    return [A[0][0]*v[0] + A[0][1]*v[1], A[1][0]*v[0] + A[1][1]*v[1]]

def mat_mul(A, B):
    return [[sum(A[i][k]*B[k][j] for k in range(2)) for j in range(2)] for i in range(2)]

def det(A):
    return A[0][0]*A[1][1] - A[0][1]*A[1][0]

ang = math.radians(30)
R = [[math.cos(ang), -math.sin(ang)], [math.sin(ang), math.cos(ang)]]
S = [[2, 0], [0, 1.5]]
H = [[1, 1], [0, 1]]

cuadrado = [(0, 0), (1, 0), (1, 1), (0, 1)]
for nombre, M in [("rotacion 30", R), ("escala 2 y 1.5", S), ("cizalla k=1", H)]:
    print(nombre, "-> det =", round(det(M), 4))
    for p in cuadrado:
        q = mat_vec(M, p)
        print("   ", p, "->", (round(q[0], 3), round(q[1], 3)))

print("R*S =", [[round(v, 4) for v in f] for f in mat_mul(R, S)])
print("S*R =", [[round(v, 4) for v in f] for f in mat_mul(S, R)])
print("El producto no conmuta, pero los determinantes coinciden:", round(det(mat_mul(R, S)), 6))

La versión en JavaScript, editable y ejecutable en el navegador, está en la página interactiva del tema.

Temas relacionados

El determinante · La matriz inversa · Vectores en el plano

← Todos los temas