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.
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.
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.
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.
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 |
En el próximo tema estudiaremos con detalle cómo se representan y en qué se diferencian.
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.
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].
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:
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.
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:
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.
Esta forma de representación permite aplicar métodos generales como eliminación de Gauss, Gauss-Jordan o la regla de Cramer.
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.
| Á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 |
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:
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.
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.
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.
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.
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.
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.
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.
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.
Avanzaremos desde la representación básica de escalares, vectores y matrices hasta operaciones y aplicaciones más complejas.
Cada tema combinará explicaciones, ejemplos numéricos y código para relacionar la teoría con situaciones concretas.
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.