1. ¿Qué es el álgebra lineal y por qué es importante en programación?

El álgebra lineal permite representar datos, posiciones y transformaciones mediante vectores y matrices. Es una herramienta esencial para gráficos, videojuegos, procesamiento de imágenes, ciencia de datos e inteligencia artificial.

1.1 Introducción

El álgebra lineal es la rama de la matemática que estudia vectores, matrices, sistemas de ecuaciones lineales, espacios vectoriales y transformaciones lineales. Estos conceptos permiten describir muchos valores relacionados y operar con ellos de una manera ordenada.

En programación es frecuente trabajar con conjuntos de números: las coordenadas de un objeto, los colores de una imagen, las características de una persona o los parámetros de un modelo. El álgebra lineal ofrece estructuras y operaciones adecuadas para representar y transformar esos datos.

En este curso combinaremos las ideas matemáticas con ejemplos prácticos en JavaScript. El objetivo no es memorizar fórmulas, sino comprender qué representan y cómo pueden convertirse en algoritmos.

1.2 ¿Qué significa que algo sea lineal?

De manera intuitiva, una relación lineal conserva la suma y la multiplicación por un número. Si duplicamos una entrada, su efecto también se duplica; si sumamos dos entradas, podemos estudiar el resultado sumando sus efectos.

Una función sencilla como f(x) = 3x es lineal: multiplica cualquier valor por 3.

f(2) = 6
f(5) = 15
f(2 + 5) = 21 = f(2) + f(5)

Esta regularidad hace posible combinar, analizar y calcular transformaciones de forma eficiente. Más adelante veremos una definición precisa al estudiar las transformaciones lineales.

1.3 Los elementos fundamentales

El curso se apoya en tres objetos básicos: escalares, vectores y matrices.

Elemento Idea básica Ejemplo en programación
Escalar Un único número Temperatura, precio o factor de escala
Vector Lista ordenada de números Posición, velocidad o características de un dato
Matriz Conjunto rectangular de números Imagen, tabla de datos o transformación geométrica
Escalar: 3
Vector: [4, 2]
Matriz: [[1, 0], [0, 1]]

En el próximo tema estudiaremos con detalle cómo se representan y en qué se diferencian.

1.4 De los números aislados a los datos relacionados

Una variable puede guardar un número, pero muchos problemas necesitan varios valores relacionados. La posición de un personaje en un plano, por ejemplo, requiere una coordenada horizontal y otra vertical.

const posicion = [120, 80];

console.log("Coordenada x:", posicion[0]);
console.log("Coordenada y:", posicion[1]);

El arreglo representa el vector de posición [120, 80]. En lugar de tratar cada coordenada como un dato independiente, podemos pensar la posición como una sola entidad compuesta por dos valores.

1.5 Representación de vectores y matrices en JavaScript

JavaScript no incluye un tipo nativo llamado matriz, pero podemos representar vectores con arreglos y matrices con arreglos de arreglos.

const vector = [3, 5, 2];

const matriz = [
  [1, 2, 3],
  [4, 5, 6]
];

console.log(vector);
console.log(matriz);
console.log("Elemento de la fila 2, columna 3:", matriz[1][2]);

Los índices de los arreglos comienzan en cero. Por eso el elemento matemáticamente ubicado en la fila 2 y la columna 3 se obtiene con matriz[1][2].

1.6 Transformar datos con matrices

Una matriz no sirve solamente para almacenar números. También puede representar una operación que transforma un vector en otro. Por ejemplo, la siguiente matriz duplica la coordenada horizontal y triplica la vertical:

Matriz de escala: [[2, 0], [0, 3]]
Vector original: [4, 5]
Vector transformado: [8, 15]
const matrizEscala = [
  [2, 0],
  [0, 3]
];
const punto = [4, 5];

const transformado = [
  matrizEscala[0][0] * punto[0] + matrizEscala[0][1] * punto[1],
  matrizEscala[1][0] * punto[0] + matrizEscala[1][1] * punto[1]
];

console.log(transformado);

La multiplicación entre la matriz y el vector produce un nuevo vector. Esta idea es fundamental en gráficos por computadora y será desarrollada a lo largo del curso.

1.7 Resolver varias ecuaciones al mismo tiempo

El álgebra lineal también permite resolver sistemas de ecuaciones. Supongamos que dos productos cuestan en total 1100 pesos y que el primero cuesta 100 pesos más que el segundo:

x + y = 1100
x - y = 100

La solución es x = 600 e y = 500. Los coeficientes del sistema pueden organizarse en una matriz, y las incógnitas y los resultados pueden representarse mediante vectores.

Matriz de coeficientes: [[1, 1], [1, -1]]
Vector de incógnitas: [x, y]
Vector de resultados: [1100, 100]

Esta forma de representación permite aplicar métodos generales como eliminación de Gauss, Gauss-Jordan o la regla de Cramer.

1.8 ¿Por qué es importante para un programador?

El álgebra lineal ayuda a pasar de un problema concreto a una representación que la computadora puede procesar. Su importancia no se limita a realizar cálculos: también aporta una manera de organizar y razonar sobre los datos.

  • Permite agrupar valores relacionados mediante vectores y matrices.
  • Describe movimientos, rotaciones, escalados y proyecciones.
  • Proporciona métodos sistemáticos para resolver ecuaciones.
  • Facilita el procesamiento simultáneo de grandes cantidades de datos.
  • Es la base matemática de numerosas bibliotecas gráficas y científicas.
  • Ayuda a comprender cómo funcionan muchos algoritmos de aprendizaje automático.

1.9 Aplicaciones en distintas áreas

Área Uso del álgebra lineal Ejemplo
Gráficos 2D y 3D Transformar coordenadas Rotar y escalar un modelo
Videojuegos Trabajar con posiciones y direcciones Mover personajes y cámaras
Procesamiento de imágenes Representar y modificar píxeles Aplicar filtros o ajustar colores
Visión por computadora Proyectar y analizar información visual Reconocer objetos en una imagen
Ciencia de datos Organizar observaciones y variables Analizar relaciones entre datos
Inteligencia artificial Realizar operaciones con parámetros y datos Calcular las capas de una red neuronal

1.10 Gráficos, videojuegos y transformaciones

Un objeto gráfico puede describirse mediante una colección de puntos. Cada punto es un vector y una matriz puede transformar todos esos vectores siguiendo la misma regla.

Así se implementan operaciones habituales:

  • Traslación: desplazar un objeto de una posición a otra.
  • Rotación: girar un objeto alrededor de un punto o de un eje.
  • Escalado: aumentar o reducir su tamaño.
  • Proyección: representar una escena tridimensional sobre una pantalla plana.
Un modelo 3D puede contener miles de vértices. Las mismas operaciones matriciales se aplican a todos ellos para colocarlos correctamente en pantalla.

1.11 Imágenes como matrices

Una imagen digital puede interpretarse como una matriz de píxeles. En una imagen en escala de grises, cada posición guarda un valor de intensidad. En una imagen a color, cada píxel suele tener varios componentes, como rojo, verde y azul.

Ejemplo de imagen de 3 × 3 en escala de grises:

[[0, 80, 160],
 [40, 120, 200],
 [80, 160, 255]]
const imagen = [
  [0, 80, 160],
  [40, 120, 200],
  [80, 160, 255]
];

const masBrillante = imagen.map(fila =>
  fila.map(pixel => Math.min(pixel + 30, 255))
);

console.log(masBrillante);

Modificar estos números cambia la imagen. Operaciones como aumentar el brillo, detectar bordes, desenfocar o comprimir información se apoyan en conceptos matriciales.

1.12 Datos e inteligencia artificial

En ciencia de datos es habitual organizar un conjunto de observaciones en una matriz. Cada fila puede representar una observación y cada columna una característica.

Filas: personas
Columnas: edad, altura y peso

[[25, 1.72, 68],
 [31, 1.80, 82],
 [22, 1.65, 59]]

Los modelos de aprendizaje automático reciben y transforman grandes conjuntos de números. Vectores y matrices permiten expresar esas operaciones de forma compacta y aprovechar bibliotecas optimizadas para ejecutarlas con rapidez.

1.13 Bibliotecas que utilizan álgebra lineal

En proyectos reales no siempre se programan todas las operaciones desde cero. Existen bibliotecas especializadas que ofrecen estructuras eficientes para trabajar con vectores, matrices y tensores.

Entorno Biblioteca o API Uso habitual
JavaScript Math.js Cálculos matemáticos y matriciales
JavaScript Three.js Gráficos y escenas 3D
Python NumPy Computación numérica con arreglos
Python PyTorch Aprendizaje automático y tensores
Gráficos web WebGL Transformaciones y renderizado acelerado

Comprender el fundamento matemático permite utilizar estas herramientas con mayor criterio, interpretar sus resultados y detectar errores en dimensiones, datos u operaciones.

1.14 Un primer algoritmo con vectores

Para sumar dos vectores se suman los componentes que ocupan la misma posición. Aunque estudiaremos esta operación más adelante, el siguiente ejemplo muestra cómo una definición matemática se convierte en un algoritmo.

[2, 4, 6] + [1, 3, 5] = [3, 7, 11]
function sumarVectores(a, b) {
  if (a.length !== b.length) {
    throw new Error("Los vectores deben tener la misma dimensión");
  }

  return a.map((valor, indice) => valor + b[indice]);
}

const resultado = sumarVectores([2, 4, 6], [1, 3, 5]);
console.log(resultado);

La condición comprueba una regla matemática importante: solo podemos sumar vectores que tengan la misma cantidad de componentes.

1.15 Álgebra lineal y eficiencia

Las operaciones matriciales permiten expresar muchos cálculos mediante patrones regulares. Las bibliotecas numéricas pueden ejecutar esos patrones en paralelo y aprovechar procesadores especializados, como las unidades de procesamiento gráfico.

Sin embargo, escribir una expresión más compacta no garantiza por sí solo un programa más rápido. La eficiencia también depende del tamaño de los datos, el algoritmo elegido, la memoria utilizada y la implementación de la biblioteca.

El álgebra lineal aporta el modelo matemático. Los algoritmos y las bibliotecas aportan una implementación eficiente de ese modelo.

1.16 Cómo estudiaremos el curso

Avanzaremos desde la representación básica de escalares, vectores y matrices hasta operaciones y aplicaciones más complejas.

  1. Aprenderemos la notación y los tipos de matrices.
  2. Practicaremos operaciones con matrices y vectores.
  3. Estudiaremos determinantes, inversas, rango y sistemas lineales.
  4. Trabajaremos con espacios vectoriales y transformaciones.
  5. Introduciremos valores propios, vectores propios y diagonalización.
  6. Aplicaremos los conceptos a problemas de programación.

Cada tema combinará explicaciones, ejemplos numéricos y código para relacionar la teoría con situaciones concretas.

1.17 Qué debes recordar de este tema

  • El álgebra lineal estudia vectores, matrices, sistemas lineales, espacios vectoriales y transformaciones.
  • Un vector agrupa valores relacionados y una matriz organiza valores en filas y columnas.
  • Las matrices pueden almacenar datos y también representar transformaciones.
  • El álgebra lineal se aplica en gráficos, videojuegos, imágenes, visión por computadora, ciencia de datos e inteligencia artificial.
  • En JavaScript podemos representar vectores y matrices mediante arreglos.
  • Comprender la teoría ayuda a utilizar correctamente las bibliotecas matemáticas y gráficas.

1.18 Conclusión

El álgebra lineal proporciona un lenguaje para representar muchos datos y transformarlos mediante reglas precisas. Su utilidad en programación aparece cada vez que trabajamos con posiciones, imágenes, características, ecuaciones o modelos numéricos.

En el próximo tema estudiaremos las diferencias entre escalares, vectores y matrices, y aprenderemos a reconocer cada uno de estos elementos.