En matemáticas , el preacondicionamiento consiste en la aplicación de una transformación, denominada preacondicionador , que adapta un problema dado a una forma más adecuada para la resolución numérica . El preacondicionamiento suele estar relacionado con la reducción del número de condición del problema. El problema preacondicionado se resuelve posteriormente mediante un método iterativo .
Preacondicionamiento para sistemas lineales
En álgebra lineal y análisis numérico , un precondicionadorde una matrizes una matriz tal quetiene un número de condición menor queTambién es común llamarel preacondicionador, en lugar de, desdeEn sí mismo rara vez está disponible explícitamente. En el preacondicionamiento moderno, la aplicación de , es decir, la multiplicación de un vector columna, o un bloque de vectores columna, por, se realiza comúnmente de forma no matricial , es decir, donde ni, ni (y a menudo ni siquiera) están disponibles explícitamente en forma de matriz.
Los precondicionadores son útiles en métodos iterativos para resolver un sistema lineal. paraDado que la tasa de convergencia para la mayoría de los solucionadores lineales iterativos aumenta porque el número de condición de una matriz disminuye como resultado del preacondicionamiento. Los solucionadores iterativos preacondicionados suelen superar a los solucionadores directos, por ejemplo, la eliminación gaussiana , para matrices grandes, especialmente para matrices dispersas . Los solucionadores iterativos pueden utilizarse como métodos sin matriz , es decir, se convierten en la única opción si la matriz de coeficientesNo se almacena explícitamente, sino que se accede a él evaluando productos matriz-vector.
Descripción
En lugar de resolver el sistema lineal originalpara, uno puede considerar el sistema preacondicionado adecuado y resolver paray para.
Alternativamente, se puede resolver el sistema precondicionado de la izquierda.
Ambos sistemas dan la misma solución que el sistema original siempre que la matriz de preacondicionamiento seaes no singular . El preacondicionamiento izquierdo es más tradicional.
El sistema preacondicionado de doble cara puede ser beneficioso, por ejemplo, para preservar la simetría de la matriz: si la matriz originales real simétrico y precondicionadores realesysatisfacer luego la matriz precondicionadaTambién es simétrico. El preacondicionamiento bilateral es común para el escalado diagonal donde los preacondicionadoresyson diagonales y el escalado se aplica tanto a las columnas como a las filas de la matriz original., por ejemplo, para disminuir el rango dinámico de las entradas de la matriz.
El objetivo del preacondicionamiento es reducir el número de condición , por ejemplo, de la matriz del sistema preacondicionado izquierdo o derecho.oLos números de condición pequeños favorecen la convergencia rápida de los solucionadores iterativos y mejoran la estabilidad de la solución con respecto a las perturbaciones en la matriz del sistema y el lado derecho, por ejemplo, permitiendo una cuantización más agresiva de las entradas de la matriz utilizando una precisión de computadora menor .
La matriz preacondicionadaoRara vez se forma explícitamente. Solo la acción de aplicar el precondicionador resuelve la operación. Puede que sea necesario calcularlo para un vector dado.
Por lo general, existe una compensación en la elección deDado que el operadordebe aplicarse en cada paso del solucionador lineal iterativo, debe tener un pequeño costo (tiempo de cálculo) de aplicación. operación. Por lo tanto, el preacondicionador más barato seríaDesde entoncesClaramente, esto da como resultado el sistema lineal original y el precondicionador no hace nada. En el otro extremo, la elección daque tiene un número de condición óptimo de 1, que requiere una sola iteración para la convergencia; sin embargo, en este casoy aplicar el preacondicionador es tan difícil como resolver el sistema original. Por lo tanto, se elige como en algún punto intermedio entre estos dos extremos, en un intento de lograr un número mínimo de iteraciones lineales manteniendo el operador lo más sencillo posible. A continuación se detallan algunos ejemplos de enfoques típicos de preacondicionamiento.
Métodos iterativos precondicionados
Métodos iterativos precondicionados parason, en la mayoría de los casos, matemáticamente equivalentes a los métodos iterativos estándar aplicados al sistema precondicionado.Por ejemplo, la iteración estándar de Richardson para resolveres
Aplicado al sistema preacondicionadose convierte en un método precondicionado
Ejemplos de métodos iterativos precondicionados populares para sistemas lineales incluyen el método del gradiente conjugado precondicionado , el método del gradiente biconjugado y el método generalizado de residuos mínimos . Los métodos iterativos, que utilizan productos escalares para calcular los parámetros iterativos, requieren cambios correspondientes en el producto escalar junto con la sustitución.para
División de matrices
Un método iterativo estacionario se determina mediante la división de la matriz.y la matriz de iteración. Suponiendo que
- la matriz del sistemaes simétrica definida positiva ,
- la matriz de divisiónes simétrica definida positiva ,
- El método iterativo estacionario es convergente, según lo determinado por,
el número de condiciónestá delimitado superiormente por
Interpretación geométrica
Para una matriz simétrica definida positivael preacondicionadorTambién se suele elegir que sea simétrica definida positiva. El operador precondicionadoes entonces también simétrica definida positiva, pero con respecto a laproducto escalar basado en . En este caso, el efecto deseado al aplicar un precondicionador es hacer que la forma cuadrática del operador precondicionado seacon respecto a laProducto escalar basado en para ser casi esférico. [ 1 ]
Preacondicionamiento variable y no lineal
Denotando, destacamos que el preacondicionamiento se implementa prácticamente como multiplicar algún vectorpor, es decir, calcular el productoEn muchas aplicaciones,no se da como una matriz, sino como un operadoractuando sobre el vectorSin embargo, algunos preacondicionadores populares cambian cony la dependencia dePuede que no sea lineal. Ejemplos típicos implican el uso de métodos iterativos no lineales , como el método del gradiente conjugado , como parte de la construcción del precondicionador. Dichos precondicionadores pueden ser muy eficientes en la práctica; sin embargo, su comportamiento es difícil de predecir teóricamente.
Preacondicionamiento aleatorio
Un caso particular interesante de precondicionamiento variable es el precondicionamiento aleatorio, por ejemplo, el precondicionamiento multigrid en cuadrículas gruesas aleatorias. [ 2 ] Si se utiliza en métodos de descenso de gradiente , el precondicionamiento aleatorio puede verse como una implementación del descenso de gradiente estocástico y puede conducir a una convergencia más rápida, en comparación con el precondicionamiento fijo, ya que rompe el patrón asintótico de "zig-zag" del descenso de gradiente .
Preacondicionamiento espectralmente equivalente
El uso más común del precondicionamiento es para la solución iterativa de sistemas lineales resultantes de aproximaciones de ecuaciones diferenciales parciales . Cuanto mejor sea la calidad de la aproximación, mayor será el tamaño de la matriz. En tal caso, el objetivo del precondicionamiento óptimo es, por un lado, hacer que el número de condición espectral deestar acotado superiormente por una constante independiente del tamaño de la matriz, lo que D'yakonov denomina precondicionamiento espectralmente equivalente . Por otro lado, el coste de aplicación del Idealmente debería ser proporcional (también independiente del tamaño de la matriz) al costo de multiplicación demediante un vector.
Ejemplos
Preacondicionador Jacobi (o diagonal)
El precondicionador de Jacobi es una de las formas más simples de precondicionamiento, en la que el precondicionador se elige como la diagonal de la matriz.Arrogante, obtenemosEs eficiente para matrices diagonalmente dominantes.Se utiliza en software de análisis para problemas de vigas o problemas unidimensionales (por ejemplo, STAAD.Pro ) .
ESPACIO
El precondicionador inverso aproximado disperso minimizadóndees la norma de Frobenius yproviene de un conjunto de matrices dispersas adecuadamente restringidas . Bajo la norma de Frobenius, esto se reduce a resolver numerosos problemas de mínimos cuadrados independientes (uno por cada columna). Las entradas endebe restringirse a algún patrón de escasez o el problema sigue siendo tan difícil y laborioso como encontrar el inverso exacto de. El método fue introducido por MJ Grote y T. Huckle junto con un enfoque para seleccionar patrones de escasez. [ 3 ]
Otros preacondicionadores
Enlaces externos
- Gradiente conjugado precondicionado – math-linux.com
- Plantillas para la solución de sistemas lineales: bloques de construcción para métodos iterativos
Preacondicionamiento para problemas de valores propios
Los problemas de valores propios pueden plantearse de diversas maneras, cada una con su propio precondicionamiento. El precondicionamiento tradicional se basa en las denominadas transformaciones espectrales. Conociendo (aproximadamente) el valor propio objetivo, se puede calcular el vector propio correspondiente resolviendo el sistema lineal homogéneo relacionado, lo que permite utilizar el precondicionamiento para sistemas lineales. Finalmente, formular el problema de valores propios como una optimización del cociente de Rayleigh introduce técnicas de optimización precondicionada. [ 4 ]
Transformaciones espectrales
Por analogía con los sistemas lineales, para un problema de valores propiosuno puede verse tentado a reemplazar la matrizcon la matrizutilizando un preacondicionadorSin embargo, esto solo tiene sentido si los autovectores de búsqueda de yson lo mismo. Este es el caso de las transformaciones espectrales.
La transformación espectral más popular es la llamada transformación de desplazamiento e inversión , donde para un escalar dado, llamado el desplazamiento , el problema de valores propios originalse reemplaza con el problema de desplazamiento e inversiónLos autovectores se conservan y se puede resolver el problema de desplazamiento e inversión mediante un solucionador iterativo, por ejemplo, la iteración de potencia . Esto da como resultado la iteración inversa , que normalmente converge al autovector correspondiente al autovalor más cercano al desplazamiento.La iteración del cociente de Rayleigh es un método de desplazamiento e inversión con un desplazamiento variable.
Las transformaciones espectrales son específicas para problemas de valores propios y no tienen análogos para sistemas lineales. Requieren un cálculo numérico preciso de la transformación involucrada, lo que se convierte en el principal obstáculo para problemas de gran tamaño.
Preacondicionamiento general
Para establecer una conexión estrecha con los sistemas lineales, supongamos que el valor propio objetivo esse conoce (aproximadamente). Entonces se puede calcular el vector propio correspondiente a partir del sistema lineal homogéneo.. Utilizando el concepto de precondicionamiento izquierdo para sistemas lineales, obtenemos, dónde es el precondicionador, que podemos intentar resolver utilizando la iteración de Richardson.
El preacondicionamiento ideal
La pseudoinversa de Moore-Penrosees el precondicionador, que hace que la iteración de Richardson anterior converja en un paso con, desde, denotado por, es el proyector ortogonal en el espacio propio, correspondiente aLa elección es poco práctico por tres razones independientes. Primero,En realidad no se sabe, aunque se puede reemplazar con su aproximación.En segundo lugar, la pseudoinversa exacta de Moore-Penrose requiere el conocimiento del vector propio, que es lo que estamos tratando de encontrar. Esto se puede sortear en cierta medida mediante el uso del precondicionador de Jacobi-Davidson., dóndeaproximacionesPor último, pero no menos importante, este enfoque requiere una solución numérica precisa del sistema lineal con la matriz del sistema., que resulta tan costoso para problemas grandes como el método de desplazamiento e inversión mencionado anteriormente. Si la solución no es lo suficientemente precisa, el paso dos puede ser redundante. [ 4 ]
Preacondicionamiento práctico
Primero sustituyamos el valor teórico.en la iteración de Richardson anterior con su aproximación actualpara obtener un algoritmo práctico
Una opción popular esutilizando la función de cociente de Rayleigh. El preacondicionamiento práctico puede ser tan trivial como simplemente usaroPara algunas clases de problemas de valores propios, la eficiencia deSe ha demostrado, tanto numérica como teóricamente. La elecciónpermite utilizar fácilmente, para problemas de valores propios, la gran variedad de precondicionadores desarrollados para sistemas lineales.
Debido al valor cambianteUn análisis de convergencia teórica exhaustivo es mucho más difícil, en comparación con el caso de los sistemas lineales, incluso para los métodos más simples, como la iteración de Richardson .
Enlaces externos
- Plantillas para la solución de problemas algebraicos de valores propios: una guía práctica
Preacondicionamiento en la optimización

En optimización , el preacondicionamiento se utiliza normalmente para acelerar los algoritmos de optimización de primer orden .
Descripción
Por ejemplo, para encontrar un mínimo local de una función de valor real.Utilizando el descenso de gradiente , se dan pasos proporcionales al negativo del gradiente. (o del gradiente aproximado) de la función en el punto actual:
El preacondicionador se aplica al gradiente:
El preacondicionamiento aquí puede verse como un cambio en la geometría del espacio vectorial con el objetivo de que los conjuntos de nivel se asemejen a círculos. [ 5 ] En este caso, el gradiente preacondicionado apunta más cerca del punto de los extremos, como se muestra en la figura, lo que acelera la convergencia.
Conexión a sistemas lineales
El mínimo de una función cuadrática dóndeyson vectores columna reales yes una matriz real simétrica definida positiva , es exactamente la solución de la ecuación lineal. Desde, el método de descenso de gradiente precondicionado de minimización es
Esta es la iteración de Richardson precondicionada para resolver un sistema de ecuaciones lineales .
Relación con problemas de valores propios
El mínimo del cociente de Rayleigh dóndees un vector columna real distinto de cero yes una matriz real simétrica definida positiva , es el valor propio más pequeño de, mientras que el minimizador es el vector propio correspondiente . Dado quees proporcional a, el método de descenso de gradiente precondicionado de minimización es
Este método es análogo a la iteración de Richardson precondicionada para resolver problemas de valores propios.
preacondicionamiento variable
En muchos casos, puede ser beneficioso cambiar el precondicionador en algún paso o incluso en cada paso de un algoritmo iterativo para adaptarse a una forma cambiante de los conjuntos de nivel, como en
Sin embargo, hay que tener en cuenta que construir un precondicionador eficiente suele ser computacionalmente costoso. El mayor coste de actualizar el precondicionador puede fácilmente anular el efecto positivo de una convergencia más rápida. Si, una aproximación BFGS de la matriz hessiana inversa, este método se conoce como método cuasi-Newton .
Referencias
- ↑ Shewchuk, Jonathan Richard (4 de agosto de 1994). "Una introducción al método del gradiente conjugado sin el dolor agonizante" (PDF) .
- ↑ Henricus Bouwmeester, Andrew Dougherty, Andrew V Knyazev. Preacondicionamiento no simétrico para métodos de gradiente conjugado y descenso más pronunciado. Procedia Computer Science, Volumen 51, Páginas 276-285, Elsevier, 2015. https://doi.org/10.1016/j.procs.2015.05.241
- ↑ Grote, MJ y Huckle, T. (1997). "Preacondicionamiento paralelo con inversas aproximadas dispersas". SIAM Journal on Scientific Computing . 18 (3): 838– 53. doi : 10.1137/S1064827594276552 .
- 1 2 Knyazev, Andrew V. (1998). "Solucionadores de valores propios precondicionados: ¿un oxímoron?" . Electronic Transactions on Numerical Analysis . 7 : 104– 123.
- ^ Himmelblau, David M. (1972). Programación no lineal aplicada . Nueva York: McGraw-Hill. págs. 78 a 83. ISBN 0-07-028921-2.
Fuentes
- Axelsson, Owe (1996). Métodos de solución iterativos . Cambridge University Press. pág. 6722. ISBN 978-0-521-55569-2.
- D'yakonov, EG (1996). Optimización en la resolución de problemas elípticos . CRC-Press. pág. 592. ISBN 978-0-8493-2872-5.
- Saad, Yousef y van der Vorst, Henk (2001). «Solución iterativa de sistemas lineales en el siglo XX». En Brezinski, C. y Wuytack, L. (eds.). Análisis numérico: desarrollos históricos en el siglo XX . Elsevier Science Publishers . §8 Métodos de precondicionamiento, pp. 193-198. ISBN 0-444-50617-9.
- van der Vorst, HA (2003). Métodos iterativos de Krylov para grandes sistemas lineales . Cambridge University Press, Cambridge. ISBN 0-521-81828-1.
- Chen, Ke (2005). Técnicas y aplicaciones del preacondicionamiento de matrices . Cambridge: Cambridge University Press. ISBN 978-0521838283OCLC 61410324
- Álgebra lineal numérica