La descomposición LU reescribe una matriz cuadrada A como el producto de una matriz triangular inferior L y una matriz triangular superior U, de modo que A = LU. Es la misma aritmética que la eliminación gaussiana ordinaria, solo empaquetada para que el trabajo de eliminación pueda reutilizarse — que es exactamente por qué es el método predeterminado que la mayoría de las bibliotecas numéricas usan para resolver sistemas lineales, invertir matrices y calcular determinantes.
¿Por qué molestarse en factorizar A?
Si solo necesitas resolver Ax = b una vez, la eliminación gaussiana simple en la matriz aumentada funciona bien. La descomposición LU vale la pena cuando necesitas resolver Ax = b para la misma A contra muchos vectores b diferentes — una situación común en simulaciones, análisis de circuitos y solucionadores iterativos. Una vez que se calcula A = LU, cada nueva b solo cuesta una sustitución hacia adelante barata (resolver Ly = b) seguida de una sustitución hacia atrás barata (resolver Ux = y), en lugar de volver a ejecutar la eliminación completa O(n³) desde cero cada vez.
Cómo el pivoteo parcial mantiene la corrección
La eliminación gaussiana falla en el momento en que un pivote (la entrada diagonal entre la cual estás a punto de dividir) es cero — no puedes dividir entre cero, y dividir entre un número muy pequeño amplifica el error de redondeo. El pivoteo parcial soluciona esto escaneando las filas restantes en la columna actual e intercambiando la que tenga el mayor valor absoluto antes de eliminar. Cada intercambio se registra en una matriz de permutación P, por lo que la identidad que se mantiene después es P·A = L·U en lugar de A = L·U. La pestaña de Pasos de esta calculadora muestra exactamente cuándo y por qué ocurre cada intercambio.
El determinante es un subproducto gratuito
Debido a que L es triangular con 1s en su diagonal, det(L) = 1 siempre. Debido a que U es triangular, su determinante es simplemente el producto de su diagonal. Y debido a que cada intercambio de filas invierte el signo de un determinante, det(A) resulta ser (−1)^(número de intercambios) × (producto de la diagonal de U) — sin necesidad de una expansión por cofactores separada. Esta es también la razón por la que un cero en cualquier lugar de la diagonal de U señala una matriz singular: el producto se vuelve cero, por lo que det(A) = 0 sin importar qué haya hecho el pivoteo a lo largo del camino.