Definición
Conjunto de transformaciones lineales o no lineales aplicadas a un problema numérico —comúnmente un sistema lineal o un problema eigen— para cambiar sus propiedades algebraicas (distribución espectral, condicionamiento) de modo que los solucionadores iterativos converjan más rápido o con mayor estabilidad.
Principio
Principio
Introducir un precondicionador M (o transformar variables) de modo que el operador transformado M^{-1}A (o M^{-1}AM^{-T}, o equivalente) tenga un espectro o número de condición más favorable, reduciendo el número de iteraciones o mejorando la estabilidad numérica de los métodos iterativos.
Demostración
Demostración
Resolver Ax = b con Conjugate Gradient usando una precondicionación de Cholesky incompleta: construir una factorización aproximada M ≈ A reduce el número de condición de M^{-1}A y normalmente reduce drásticamente el número de iteraciones de CG frente a no usar precondicionador.
Aplicación incorrecta
Aplicación incorrecta
Emplear un precondicionador caro o mal adaptado cuyo coste de construcción y almacenamiento supere las ganancias en iteraciones, o aplicar un precondicionador no simétrico a un método que requiere simetría, provocando fallos o convergencia incorrecta.
Consecuencia
Consecuencia
El precondicionamiento adecuado reduce el tiempo real y el uso de memoria al disminuir las iteraciones y mejorar la robustez numérica; puede introducir costes de puesta en marcha, error de aproximación o complejidad de implementación que deben justificar el beneficio neto.
Inversión
Inversión
No aplicar precondicionamiento (precondicionador identidad) deja el espectro y el condicionamiento originales, lo que en problemas mal condicionados produce convergencia lenta o nula; un precondicionamiento excesivo puede introducir sesgos o inestabilidad.
Límite
Límite
Se aplica principalmente a solucionadores iterativos para sistemas lineales, problemas de valores propios y subproblemas de optimización; no reemplaza factorización directa cuando se requieren soluciones exactas, y su beneficio depende de la estructura del problema y la compatibilidad con el solucionador.
Tensión semántica
Tensión semántica
Tensión con técnicas de escalado y deflación: el escalado cambia magnitudes de variables para mejorar el condicionamiento, la deflación elimina subespacios invariantes problemáticos, mientras que el precondicionamiento abarca y combina a veces estas ideas pero difiere en implementación y objetivos.
Síntesis
Síntesis
El precondicionamiento altera sistemáticamente la forma algebraica de un problema numérico para producir un operador transformado con mejores propiedades espectrales, haciendo que los solucionadores iterativos sean más rápidos y fiables cuando el precondicionador está bien adaptado al problema.