3. Notación matricial

La notación matricial permite nombrar una matriz, expresar sus dimensiones y localizar cada elemento mediante su fila y su columna. Comprenderla es indispensable para interpretar fórmulas y convertirlas en código.

3.1 Introducción

En el tema anterior aprendimos que una matriz organiza números en filas y columnas. Ahora necesitamos una forma precisa de referirnos a la matriz completa, a su tamaño y a cada uno de sus elementos.

La notación matricial cumple ese propósito. Gracias a ella podemos describir operaciones sin escribir todos los valores y comunicar con claridad qué posición interviene en cada cálculo.

A = [[2, 5, 8],
     [1, 4, 7]]

En este ejemplo, A es el nombre de la matriz. Tiene dos filas, tres columnas y seis elementos.

3.2 Cómo se nombra una matriz

Las matrices suelen nombrarse con letras mayúsculas: A, B, C o M. Los elementos individuales suelen representarse con la misma letra en minúscula y dos subíndices.

Matriz completa: A
Elemento de A: aij

El subíndice i indica la fila.
El subíndice j indica la columna.

Esta convención no es una obligación del lenguaje de programación, pero es muy útil al traducir fórmulas matemáticas a algoritmos.

3.3 Escritura de una matriz

Una matriz se escribe encerrando sus elementos entre paréntesis o corchetes. Los números de una misma fila se colocan horizontalmente y las filas se ubican una debajo de otra.

A = [ 3   6   9 ]
    [ 2   4   8 ]

La misma matriz puede representarse en JavaScript con un arreglo por cada fila:

const A = [
  [3, 6, 9],
  [2, 4, 8]
];

console.log(A);

3.4 Dimensión u orden de una matriz

Si una matriz tiene m filas y n columnas, decimos que su dimensión u orden es m × n. Siempre se escribe primero la cantidad de filas.

A es una matriz de orden 2 × 3.

m = 2 filas
n = 3 columnas
Cantidad total de elementos = m × n = 6

También puede utilizarse la notación A ∈ ℝm×n para indicar que A es una matriz de m filas y n columnas cuyos elementos son números reales.

3.5 Calcular la dimensión en JavaScript

En una matriz rectangular representada con arreglos, la cantidad de filas es la longitud del arreglo exterior y la cantidad de columnas es la longitud de una fila.

const A = [
  [3, 6, 9],
  [2, 4, 8]
];

const filas = A.length;
const columnas = A[0].length;

console.log(`${filas} × ${columnas}`);
console.log("Cantidad de elementos:", filas * columnas);

Antes de consultar A[0].length conviene comprobar que la matriz no esté vacía.

3.6 Notación general de los elementos

Una matriz genérica A de orden m × n puede escribirse utilizando símbolos en lugar de valores concretos.

A = [ a11   a12   ...   a1n ]
    [ a21   a22   ...   a2n ]
    [  ...     ...     ...     ...  ]
    [ am1   am2   ...   amn ]

La expresión A = [aij] resume esta idea: A está formada por elementos aij, donde i recorre las filas y j recorre las columnas.

3.7 Cómo leer los subíndices

En el elemento aij, el primer subíndice siempre corresponde a la fila y el segundo a la columna.

Elemento Fila Columna Lectura
a11 1 1 Primera fila, primera columna
a13 1 3 Primera fila, tercera columna
a21 2 1 Segunda fila, primera columna
a23 2 3 Segunda fila, tercera columna

Los subíndices no forman el número veintitrés: a23 significa el elemento ubicado en la fila 2 y la columna 3.

3.8 Ejemplo de localización de elementos

Consideremos la siguiente matriz:

B = [ 10   20   30 ]
    [ 40   50   60 ]
    [ 70   80   90 ]
  • b11 = 10
  • b13 = 30
  • b22 = 50
  • b31 = 70
  • b33 = 90

Cada par de subíndices identifica una única posición dentro de la matriz.

3.9 Índices matemáticos e índices de JavaScript

En la notación matemática se comienza a contar desde 1. En los arreglos de JavaScript se comienza desde 0. Por eso debemos restar uno a cada índice matemático al acceder al arreglo.

Matemática: aij
JavaScript: A[i - 1][j - 1]
const B = [
  [10, 20, 30],
  [40, 50, 60],
  [70, 80, 90]
];

console.log("b₂₃ =", B[1][2]);
console.log("b₃₁ =", B[2][0]);

El elemento b23 se encuentra en B[1][2], y el elemento b31 se encuentra en B[2][0].

3.10 Función para obtener aij

Podemos crear una función que reciba índices con la convención matemática y realice internamente la conversión a índices de JavaScript.

function elemento(matriz, fila, columna) {
  return matriz[fila - 1][columna - 1];
}

const A = [
  [5, 8, 1],
  [2, 7, 4]
];

console.log("a₁₂ =", elemento(A, 1, 2));
console.log("a₂₃ =", elemento(A, 2, 3));

La función permite escribir elemento(A, 2, 3) para pedir el elemento de la segunda fila y la tercera columna.

3.11 Notación de las filas

Una fila de una matriz puede considerarse un vector fila. La fila i contiene todos los elementos cuyo primer subíndice es i.

Fila i de A = [ai1, ai2, ..., ain]

En JavaScript, cada elemento del arreglo exterior ya representa una fila completa.

const A = [
  [5, 8, 1],
  [2, 7, 4],
  [9, 3, 6]
];

const segundaFila = A[1];

console.log(segundaFila);

El resultado es [2, 7, 4].

3.12 Notación de las columnas

La columna j contiene todos los elementos cuyo segundo subíndice es j.

Columna j de A = [a1j, a2j, ..., amj]T

El símbolo T indica que los componentes se disponen verticalmente. Con arreglos de JavaScript debemos extraer la misma posición de cada fila.

const A = [
  [5, 8, 1],
  [2, 7, 4],
  [9, 3, 6]
];

const indiceColumna = 1;
const segundaColumna = A.map(fila => fila[indiceColumna]);

console.log(segundaColumna);

El resultado es [8, 7, 3].

3.13 Notación de vectores

Los vectores suelen nombrarse con letras minúsculas, a veces en negrita o con una flecha: v, u o w. Sus componentes pueden escribirse como v1, v2, ..., vn.

v = [v1, v2, ..., vn]

Si v = [4, 7, 2], entonces:
v1 = 4, v2 = 7 y v3 = 2.

Cuando un vector se escribe como columna, puede considerarse una matriz de orden n × 1. Cuando se escribe como fila, puede considerarse una matriz de orden 1 × n.

3.14 Diagonal principal y diagonal secundaria

En una matriz cuadrada, la diagonal principal está formada por los elementos cuyos índices son iguales: a11, a22, a33, etc.

La diagonal secundaria recorre la matriz desde la esquina superior derecha hasta la esquina inferior izquierda.

A = [ 1   2   3 ]
    [ 4   5   6 ]
    [ 7   8   9 ]

Diagonal principal: [1, 5, 9]
Diagonal secundaria: [3, 5, 7]
const A = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

const principal = A.map((fila, i) => fila[i]);
const secundaria = A.map((fila, i) => fila[A.length - 1 - i]);

console.log("Principal:", principal);
console.log("Secundaria:", secundaria);

3.15 Notación de operaciones matriciales

Las letras permiten expresar operaciones entre matrices sin mostrar todos sus elementos. Algunas notaciones que utilizaremos son:

  • A + B: suma de matrices.
  • A - B: resta de matrices.
  • kA: multiplicación de la matriz A por el escalar k.
  • AB: multiplicación de las matrices A y B.
  • AT: transpuesta de A.
  • A-1: inversa de A, cuando existe.
  • det(A): determinante de A.
const A = [
  [1, 2],
  [3, 4]
];
const k = 5;

const kA = A.map(fila =>
  fila.map(valor => k * valor)
);

console.log(kA);

La expresión matemática kA se traduce en multiplicar cada elemento aij por k.

3.16 El símbolo de sumatoria

La letra griega sigma mayúscula, Σ, representa una suma de términos que siguen un patrón. Es muy frecuente en productos escalares y multiplicaciones de matrices.

Σ desde k = 1 hasta n de akbk

Para n = 3:
a1b1 + a2b2 + a3b3
const a = [2, 4, 6];
const b = [1, 3, 5];

const sumaDeProductos = a.reduce(
  (acumulador, valor, k) => acumulador + valor * b[k],
  0
);

console.log(sumaDeProductos);

El índice k del código cumple el papel del índice de la sumatoria, con la diferencia de que JavaScript comienza a contar desde cero.

3.17 Validar la estructura de una matriz

La notación m × n supone que todas las filas tienen la misma cantidad de columnas. Podemos crear una función que compruebe esta condición y devuelva el orden.

function obtenerOrden(matriz) {
  if (matriz.length === 0) return [0, 0];

  const columnas = matriz[0].length;
  const esRectangular = matriz.every(fila => fila.length === columnas);

  if (!esRectangular) {
    throw new Error("Todas las filas deben tener igual longitud");
  }

  return [matriz.length, columnas];
}

console.log(obtenerOrden([[1, 2, 3], [4, 5, 6]]));

El resultado [2, 3] indica dos filas y tres columnas.

3.18 Errores frecuentes de notación

  • Escribir primero las columnas y después las filas al indicar el orden.
  • Confundir a23 con a32.
  • Interpretar los subíndices como un único número.
  • Olvidar que la notación matemática comienza en 1 y JavaScript en 0.
  • Llamar matriz rectangular a un arreglo con filas de distintas longitudes.
  • Confundir el producto AB con una multiplicación elemento por elemento.
  • Usar A-1 como si significara dividir cada elemento por A.
Regla práctica: al leer aij, piensa siempre “fila i, columna j”.

3.19 Qué debes recordar de este tema

  • Las matrices suelen nombrarse con letras mayúsculas.
  • El elemento aij está en la fila i y la columna j de A.
  • Una matriz de orden m × n tiene m filas y n columnas.
  • La notación matemática comienza a contar desde 1, mientras que los arreglos de JavaScript comienzan desde 0.
  • Una fila o una columna puede interpretarse como un vector.
  • Los elementos aii forman la diagonal principal.
  • La notación compacta permite describir operaciones generales y convertirlas en algoritmos.

3.20 Conclusión

Dominar esta notación facilita la lectura de fórmulas, la implementación de operaciones y la detección de errores de dimensiones o índices.

En el próximo tema estudiaremos los distintos tipos de matrices y aprenderemos a clasificarlas según su forma y sus elementos.