
En matemáticas , el método del gradiente conjugado es un algoritmo para la solución numérica de sistemas de ecuaciones lineales específicos , concretamente aquellos cuya matriz es semidefinida positiva . Este método se suele implementar como un algoritmo iterativo , aplicable a sistemas dispersos demasiado grandes para ser resueltos mediante una implementación directa u otros métodos directos como la descomposición de Cholesky . Los sistemas dispersos de gran tamaño suelen surgir al resolver numéricamente ecuaciones diferenciales parciales o problemas de optimización.
El método del gradiente conjugado también puede utilizarse para resolver problemas de optimización sin restricciones , como la minimización de energía . Se atribuye comúnmente a Magnus Hestenes y Eduard Stiefel , [ 1 ] [ 2 ] quienes lo programaron en el Z4 , [ 3 ] y lo investigaron exhaustivamente. [ 4 ] [ 5 ]
El método del gradiente biconjugado proporciona una generalización a matrices no simétricas. Diversos métodos de gradiente conjugado no lineal buscan mínimos en problemas de optimización no lineal.
Descripción del problema abordado por los gradientes conjugados
Supongamos que queremos resolver el sistema de ecuaciones lineales
para el vectordonde el conocidomatrizes simétrico (es decir,), definido positivo (es decir,para todos los vectores distintos de ceroen), y real , yTambién se conoce. Denotamos la solución única de este sistema por.
La derivación como método directo
El método del gradiente conjugado puede derivarse desde diversas perspectivas, incluyendo la especialización del método de la dirección conjugada para la optimización y la variación de la iteración de Arnoldi / Lanczos para problemas de valores propios . A pesar de las diferencias en sus enfoques, estas derivaciones comparten un tema común: demostrar la ortogonalidad de los residuos y la conjugación de las direcciones de búsqueda. Estas dos propiedades son cruciales para desarrollar la conocida formulación concisa del método.
Decimos que dos vectores no nulosyson conjugados (con respecto a) si
Desdees simétrica y definida positiva, el lado izquierdo define un producto interno
Dos vectores son conjugados si y solo si son ortogonales con respecto a este producto interno. Ser conjugado es una relación simétrica: sies conjugado de, entonceses conjugado de. Supongamos que
es un conjunto devectores mutuamente conjugados con respecto a, es decira pesar de. Entoncesconstituye una base paray podemos expresar la solucióndesobre esta base:
Multiplicando el problema por la izquierdacon el vectorrendimientos
y entonces
Esto da como resultado el siguiente método [ 4 ] para resolver la ecuación.: encontrar una secuencia dedirecciones conjugadas y luego calcular los coeficientes.
Como método iterativo
Si elegimos los vectores conjugadosSi lo hacemos con cuidado, es posible que no necesitemos todos ellos para obtener una buena aproximación a la solución.. Por lo tanto, queremos considerar el método del gradiente conjugado como un método iterativo. Esto también nos permite resolver aproximadamente sistemas dondees tan grande que el método directo llevaría demasiado tiempo.
Denotamos la estimación inicial porpor(podemos asumir sin pérdida de generalidad que, de lo contrario considere el sistemaen su lugar). Empezando porBuscamos la solución y en cada iteración necesitamos una métrica que nos indique si estamos más cerca de la solución.(que desconocemos). Esta métrica proviene del hecho de que la soluciónes también el único minimizador de la siguiente función cuadrática.
La existencia de un minimizador único es evidente ya que su matriz hessiana de segundas derivadas es simétrica definida positiva.
y que el minimizador (usar) resuelve el problema inicial que se deduce de su primera derivada
Esto sugiere tomar el primer vector base.ser el negativo del gradiente deen. El gradiente deigualComenzando con una suposición inicial, esto significa que tomamos. Los demás vectores de la base serán conjugados al gradiente, de ahí el nombre de método del gradiente conjugado . Tenga en cuenta quees también el residuo proporcionado por este paso inicial del algoritmo.
Dejarser el residuo en elº paso:
Como se observó anteriormente,es el gradiente negativo deen, por lo que el método de descenso de gradiente requeriría moverse en la dirección r k . Aquí, sin embargo, insistimos en que las direccionesDeben ser conjugadas entre sí. Una forma práctica de imponer esto es exigiendo que la siguiente dirección de búsqueda se construya a partir del residuo actual y todas las direcciones de búsqueda anteriores. La restricción de conjugación es una restricción de tipo ortonormal y, por lo tanto, el algoritmo puede considerarse un ejemplo de ortonormalización de Gram-Schmidt . Esto da como resultado la siguiente expresión:
(véase la imagen en la parte superior del artículo para observar el efecto de la restricción de conjugación en la convergencia). Siguiendo esta dirección, la siguiente ubicación óptima viene dada por
con
donde la última igualdad se deduce de la definición de. La expresión parase puede derivar si se sustituye la expresión para x k +1 en f y se minimiza con respecto a
El algoritmo resultante
El algoritmo anterior ofrece la explicación más sencilla del método del gradiente conjugado. Aparentemente, el algoritmo, tal como se describe, requiere el almacenamiento de todas las direcciones de búsqueda anteriores y los vectores de residuos, así como muchas multiplicaciones matriz-vector, y por lo tanto puede ser computacionalmente costoso. Sin embargo, un análisis más detallado [ 6 ] : pág. 558 del algoritmo muestra quees ortogonal a, es decir, para. Yes-ortogonal a, es decir, para. Esto puede considerarse que a medida que el algoritmo avanza,yabarcan el mismo subespacio de Krylov , dondeforman la base ortogonal con respecto al producto interno estándar, yformen la base ortogonal con respecto al producto interno inducido por. Por lo tanto,puede considerarse como la proyección deen el subespacio de Krylov.
Es decir, si el método CG comienza con, entonces [ 7 ]dóndees la solución a.
El algoritmo se detalla a continuación para resolverdóndees una matriz real, simétrica y definida positiva. El vector de entradapuede ser una solución inicial aproximada oSe trata de una formulación diferente del procedimiento exacto descrito anteriormente.
Este es el algoritmo más utilizado. La misma fórmula paraTambién se utiliza en el método de gradiente conjugado no lineal de Fletcher-Reeves .
Reinicios
Observamos quese calcula mediante el método de descenso de gradiente aplicado a. Configuraciónharía de manera similarcalculado mediante el método de descenso de gradiente desde, es decir, puede utilizarse como una implementación simple de un reinicio de las iteraciones del gradiente conjugado. [ 4 ] Los reinicios podrían ralentizar la convergencia, pero pueden mejorar la estabilidad si el método del gradiente conjugado se comporta mal, por ejemplo, debido a un error de redondeo .
Cálculo explícito de residuos
Las fórmulasy, que ambas se cumplen en aritmética exacta, hacen que las fórmulasymatemáticamente equivalentes. El primero se utiliza en el algoritmo para evitar una multiplicación adicional porya que el vectorya se calcula para evaluar. Este último puede ser más preciso, sustituyendo el cálculo explícito.para la implícita por la recursión sujeta a acumulación de errores de redondeo , y por lo tanto se recomienda para una evaluación ocasional. [ 8 ]
La norma del residuo se utiliza normalmente como criterio de parada. La norma del residuo explícitoproporciona un nivel de precisión garantizado tanto en aritmética exacta como en presencia de errores de redondeo , donde la convergencia se estanca naturalmente. En contraste, el residuo implícitoSe sabe que su amplitud sigue disminuyendo muy por debajo del nivel de los errores de redondeo y, por lo tanto, no se puede utilizar para determinar el estancamiento de la convergencia.
Cálculo de alfa y beta
En el algoritmo,se elige de tal manera quees ortogonal a. El denominador se simplifica a partir de
desde. Else elige de tal manera quees conjugado de. Inicialmente,es
usando
y equivalentemente
el numerador dese reescribe como
porqueyson ortogonales por diseño. El denominador se reescribe como
utilizando esas direcciones de búsquedason conjugados y nuevamente que los residuos son ortogonales. Esto da como resultado elen el algoritmo después de cancelar.
Código de ejemplo en Julia (lenguaje de programación)
utilizando álgebra lineal""" x = gradiente_conjugado(A, b, x0 = cero(b); atol=longitud(b)*eps(norma(b))Devuelve la solución de `A * x = b` utilizando el método del gradiente conjugado.`A` debe ser una matriz definida positiva u otro operador lineal.`x0` es la estimación inicial para la solución (por defecto es el vector cero).`atol` es la tolerancia absoluta en la magnitud del residuo `b - A * x`.para convergencia (el valor predeterminado es épsilon de máquina).Devuelve el vector de solución aproximada `x`."""función gradiente_conjugado (A , b :: AbstractVector , x0 :: AbstractVector = zero ( b ); atol = length ( b ) * eps ( norm ( b )))x = copiar ( x0 ) # inicializar la soluciónr = b - A * x0 # residuo inicialp = copiar ( r ) # dirección de búsqueda inicialr²old = r ' * r # norma al cuadrado del residuok = 0mientras r²old > atol ^ 2 # iterar hasta la convergenciaAp = A * p # dirección de búsquedaα = r²old / ( p ' * Ap ) # tamaño del paso@. x += α * p # actualizar solución# Actualizar residuo:Si ( k + 1 ) % 16 == 0 # cada 16 iteraciones, recalcular el residuo desde ceror .= b .- A * x # para evitar la acumulación de errores numéricosdemás@. r -= α * Ap # utiliza la fórmula de actualización que ahorra un producto matriz-vectorfinr²nuevo = r ' * r@. p = r + ( r²nuevo / r²antiguo ) * p # actualizar la dirección de búsquedar²old = r²new # actualiza la norma residual al cuadradok += 1findevolver xfinCódigo de ejemplo en MATLAB
función x = gradiente_conjugado ( A, b, x0, tol )% Devuelve la solución de `A * x = b` utilizando el método del gradiente conjugado.% Recordatorio: A debe ser simétrica y definida positiva.si nargin < 4tol = eps ;finr = b - A * x0 ;p = r ;rsold = r ' * r ;x = x0 ;mientras sqrt ( rsold ) > tolAp = A * p ;alfa = rsold / ( p ' * Ap );x = x + alfa * p ;r = r - alfa * Ap ;rsnew = r ' * r ;p = r + ( rsnew / rsold ) * p ;rsold = rsnew ;finfinEjemplo numérico
Consideremos el sistema lineal Ax = b dado por
Realizaremos dos pasos del método del gradiente conjugado comenzando con la estimación inicial.
para encontrar una solución aproximada al sistema.
Solución
Para referencia, la solución exacta es
Nuestro primer paso es calcular el vector residual r 0 asociado con x 0 . Este residuo se calcula a partir de la fórmula r 0 = b - Ax 0 , y en nuestro caso es igual a
Dado que esta es la primera iteración, utilizaremos el vector residual r 0 como nuestra dirección de búsqueda inicial p 0 ; el método de selección de p k cambiará en iteraciones posteriores.
Ahora calculamos el escalar α 0 usando la relación
Ahora podemos calcular x 1 usando la fórmula
Este resultado completa la primera iteración, siendo el resultado una solución aproximada "mejorada" para el sistema, x 1 . Ahora podemos continuar y calcular el siguiente vector residual r 1 usando la fórmula
Nuestro siguiente paso en el proceso es calcular el escalar β 0 que eventualmente se utilizará para determinar la siguiente dirección de búsqueda p 1 .
Ahora, usando este escalar β 0 , podemos calcular la siguiente dirección de búsqueda p 1 usando la relación
Ahora calculamos el escalar α 1 usando nuestro p 1 recién adquirido usando el mismo método que se usó para α 0 .
Finalmente, encontramos x 2 usando el mismo método que se usó para encontrar x 1 .
El resultado, x 2 , es una aproximación "mejor" a la solución del sistema que x 1 y x 0 . Si en este ejemplo se utilizara aritmética exacta en lugar de precisión limitada, teóricamente se habría alcanzado la solución exacta después de n = 2 iteraciones ( siendo n el orden del sistema).
Propiedad de terminación finita
Con aritmética exacta, el número de iteraciones necesarias no supera el orden de la matriz. Este comportamiento se conoce como la propiedad de terminación finita del método del gradiente conjugado. Se refiere a la capacidad del método para alcanzar la solución exacta de un sistema lineal en un número finito de pasos —como máximo igual a la dimensión del sistema— cuando se utiliza aritmética exacta. Esta propiedad surge del hecho de que, en cada iteración, el método genera un vector residual ortogonal a todos los residuos anteriores. Estos residuos forman un conjunto mutuamente ortogonal.
En un espacio n -dimensional, es imposible construir más de n vectores linealmente independientes y mutuamente ortogonales, a menos que uno de ellos sea el vector cero. Por lo tanto, una vez que aparece un residuo cero, el método ha alcanzado la solución y debe finalizar. Esto garantiza que el método del gradiente conjugado converja en un máximo de n pasos.
Para demostrar esto, consideremos el sistema:
Partimos de una suposición inicial.. DesdeSi la ecuación es simétrica definida positiva y el sistema es bidimensional, el método del gradiente conjugado debería encontrar la solución exacta en no más de dos pasos. El siguiente código de MATLAB demuestra este comportamiento:
A = [ 3 , - 2 ; - 2 , 4 ]; x_true = [ 1 ; 1 ]; b = A * x_true ;x = [ 1 ; 2 ]; % estimación inicial r = b - A * x ; p = r ;para k = 1 : 2 Ap = A * p ; alpha = ( r ' * r ) / ( p ' * Ap ); x = x + alpha * p ; r_new = r - alpha * Ap ; beta = ( r_new ' * r_new ) / ( r ' * r ); p = r_new + beta * p ; r = r_new ; findisp ( 'Solución exacta:' ); disp ( x );La salida confirma que el método alcanzaTras dos iteraciones, se obtuvo un resultado consistente con la predicción teórica. Este ejemplo ilustra cómo el método del gradiente conjugado se comporta como un método directo en condiciones idealizadas.
Aplicación a sistemas dispersos
La propiedad de terminación finita también tiene implicaciones prácticas en la resolución de grandes sistemas dispersos, que surgen con frecuencia en aplicaciones científicas y de ingeniería. Por ejemplo, la discretización de la ecuación de Laplace bidimensional.El uso de diferencias finitas en una cuadrícula uniforme conduce a un sistema lineal disperso., dóndees simétrica y definida positiva.
Usando unLa cuadrícula interior produce unasistema y la matriz de coeficientestiene un patrón de plantilla de cinco puntos. Cada fila deContiene como máximo cinco entradas distintas de cero que corresponden al punto central y sus vecinos inmediatos. Por ejemplo, la matriz generada a partir de dicha cuadrícula podría tener el siguiente aspecto:
Aunque la dimensión del sistema es 25, el método del gradiente conjugado garantiza teóricamente la finalización en un máximo de 25 iteraciones con aritmética exacta. En la práctica, la convergencia suele producirse en muchos menos pasos debido a las propiedades espectrales de la matriz. Esta eficiencia hace que el método del gradiente conjugado sea particularmente atractivo para resolver sistemas a gran escala derivados de ecuaciones diferenciales parciales, como las que se encuentran en la conducción del calor, la dinámica de fluidos y la electrostática.
Propiedades de convergencia
En teoría, el método del gradiente conjugado puede considerarse un método directo, ya que, en ausencia de errores de redondeo, produce la solución exacta tras un número finito de iteraciones, que no supera el tamaño de la matriz. En la práctica, nunca se obtiene la solución exacta, puesto que el método del gradiente conjugado es inestable incluso ante pequeñas perturbaciones; por ejemplo, la mayoría de las direcciones no son conjugadas en la práctica, debido a la naturaleza degenerativa de la generación de los subespacios de Krylov.
Como método iterativo , el método del gradiente conjugado mejora monótonamente (en la norma de energía) las aproximaciones.a la solución exacta y puede alcanzar la tolerancia requerida después de un número relativamente pequeño (en comparación con el tamaño del problema) de iteraciones. La mejora suele ser lineal y su velocidad está determinada por el número de condición.de la matriz del sistema: el más grandees, cuanto más lenta sea la mejora. [ 9 ]
Sin embargo, surge un caso interesante cuando los valores propios están espaciados logarítmicamente para una matriz simétrica grande. Por ejemplo, seadóndees una matriz ortogonal aleatoria yes una matriz diagonal con valores propios que van desdea, espaciados logarítmicamente. A pesar de la propiedad de terminación finita de CGM, donde teóricamente se debería alcanzar la solución exacta en como máximopasos, el método puede mostrar estancamiento en la convergencia. En tal escenario, incluso después de muchas más iteraciones, por ejemplo, diez veces el tamaño de la matriz, el error puede disminuir solo modestamente (por ejemplo, a). Además, el error iterativo puede oscilar significativamente, lo que lo hace poco fiable como condición de parada. Esta mala convergencia no se explica solo por el número de condición (por ejemplo,), sino más bien por la propia distribución de los valores propios. Cuando los valores propios están más uniformemente espaciados o distribuidos aleatoriamente, estos problemas de convergencia suelen estar ausentes, lo que pone de relieve que el rendimiento de CGM no solo depende depero también sobre cómo se distribuyen los valores propios. [ 10 ]
Sies grande, el preacondicionamiento se usa comúnmente para reemplazar el sistema originalconde tal manera quees más pequeño que, vea abajo.
Teorema de convergencia
Definir un subconjunto de polinomios como
- :\ p(0)=1\ \right\rbrace \,,}
dóndees el conjunto de polinomios de grado máximo.
Dejarsean las aproximaciones iterativas de la solución exactay definir los errores comoAhora, la tasa de convergencia se puede aproximar como [ 4 ] [ 11 ]
dóndedenota el espectro ydenota el número de condición .
Esto muestraLas iteraciones son suficientes para reducir el error apara cualquier.
Tenga en cuenta el límite importante cuandotiende a
Este límite muestra una tasa de convergencia más rápida en comparación con los métodos iterativos de Jacobi o Gauss-Seidel que escalan como.
En el teorema de convergencia no se asume ningún error de redondeo , pero la cota de convergencia suele ser válida en la práctica como lo explica teóricamente [ 5 ] Anne Greenbaum .
Convergencia práctica
Si se inicializa aleatoriamente, la primera etapa de iteraciones suele ser la más rápida, ya que el error se elimina dentro del subespacio de Krylov que inicialmente refleja un número de condición efectivo menor. La segunda etapa de convergencia suele estar bien definida por el límite de convergencia teórico con, pero puede ser superlineal, dependiendo de una distribución del espectro de la matrizy la distribución espectral del error. [ 5 ] En la última etapa, se alcanza la precisión mínima alcanzable y la convergencia se detiene o el método puede incluso comenzar a divergir. En aplicaciones típicas de computación científica en formato de punto flotante de doble precisión para matrices de gran tamaño, el método del gradiente conjugado utiliza un criterio de parada con una tolerancia que finaliza las iteraciones durante la primera o segunda etapa.
El método del gradiente conjugado preacondicionado
En la mayoría de los casos, el preacondicionamiento es necesario para asegurar una convergencia rápida del método del gradiente conjugado. Sies simétrica definida positiva ytiene un mejor número de condición queSe puede utilizar un método de gradiente conjugado precondicionado. Tiene la siguiente forma: [ 12 ]
- repetir
- Si r k +1 es suficientemente pequeño, entonces salir del bucle. Fin del bucle.
- fin de repetición
- El resultado es x k +1
La formulación anterior es equivalente a aplicar el método del gradiente conjugado regular al sistema preacondicionado [ 13 ].
dónde
La descomposición de Cholesky del precondicionador debe utilizarse para mantener la simetría (y la positividad definida) del sistema. Sin embargo, no es necesario calcular esta descomposición, y basta con saberSe puede demostrar quetiene el mismo espectro que.
La matriz de preacondicionamientoDebe ser simétrica, definida positiva y fija, es decir, no puede cambiar de una iteración a otra. Si se incumple alguna de estas condiciones sobre el precondicionador, el comportamiento del método del gradiente conjugado precondicionado puede volverse impredecible.
Un ejemplo de precondicionador comúnmente utilizado es la factorización de Cholesky incompleta . [ 14 ]
Uso práctico del preacondicionador
Es importante tener en cuenta que no queremos invertir la matriz.explícitamente para obtenerpara su uso en el proceso, ya que la inversiónrequeriría más tiempo/recursos computacionales que resolver el algoritmo del gradiente conjugado en sí. Como ejemplo, supongamos que estamos utilizando un precondicionador proveniente de la factorización de Cholesky incompleta. La matriz resultante es la matriz triangular inferior.y la matriz de preacondicionamiento es:
Entonces tenemos que resolver:
Pero:
Entonces:
Tomemos un vector intermedio.:
Desdeyy conocido, yes triangular inferior, resolviendo paraes fácil y computacionalmente económico mediante la sustitución hacia adelante . Luego, sustituimosen la ecuación original:
Desdeyson conocidos yes triangular superior, resolviendo paraes fácil y computacionalmente económico mediante el uso de sustitución hacia atrás .
Utilizando este método, no es necesario invertir.oexplícitamente en absoluto, y aún así obtenemos.
El método de gradiente conjugado preacondicionado flexible
En aplicaciones numéricamente complejas, se utilizan precondicionadores sofisticados, lo que puede dar lugar a un precondicionamiento variable, que cambia entre iteraciones. Incluso si el precondicionador es simétrico definido positivo en cada iteración, el hecho de que pueda cambiar invalida los argumentos anteriores y, en pruebas prácticas, provoca una ralentización significativa de la convergencia del algoritmo presentado anteriormente. Utilizando la fórmula de Polak-Ribière
en lugar de la fórmula de Fletcher-Reeves
puede mejorar drásticamente la convergencia en este caso. [ 15 ] Esta versión del método del gradiente conjugado precondicionado puede llamarse [ 16 ] flexible , ya que permite un precondicionamiento variable. También se ha demostrado [ 17 ] que la versión flexible es robusta incluso si el precondicionador no es simétrico definido positivo (SPD).
La implementación de la versión flexible requiere almacenar un vector adicional. Para un precondicionador SPD fijo,por lo tanto, ambas fórmulas para β k son equivalentes en aritmética exacta, es decir, sin el error de redondeo .
La explicación matemática del mejor comportamiento de convergencia del método con la fórmula de Polak-Ribière es que el método es localmente óptimo en este caso; en particular, no converge más lentamente que el método de descenso más pronunciado localmente óptimo. [ 18 ]
Frente al método de descenso más pronunciado localmente óptimo
En ambos métodos de gradiente conjugado, el original y el precondicionado, solo es necesario establecer Para optimizarlos localmente, se utilizan métodos de búsqueda lineal y descenso más pronunciado . Con esta sustitución, los vectores p son siempre iguales a los vectores z , por lo que no es necesario almacenar los vectores p . Por lo tanto, cada iteración de estos métodos de descenso más pronunciado es un poco más económica que la de los métodos de gradiente conjugado. Sin embargo, estos últimos convergen más rápido, a menos que se utilice un precondicionador (altamente) variable y/o que no sea SPD ( véase más arriba).
Método del gradiente conjugado como controlador de retroalimentación óptimo para integrador doble.
El método del gradiente conjugado también se puede derivar utilizando la teoría de control óptimo . [ 19 ] En este enfoque, el método del gradiente conjugado resulta ser un controlador de retroalimentación óptimo .para el sistema de doble integrador ,Las cantidadesyson ganancias de retroalimentación variables. [ 19 ]
Gradiente conjugado en las ecuaciones normales
El método del gradiente conjugado se puede aplicar a una matriz arbitraria de n por m aplicándolo a las ecuaciones normales A T A y al vector del lado derecho A T b , ya que A T A es una matriz simétrica semidefinida positiva para cualquier A . El resultado es el gradiente conjugado en las ecuaciones normales ( CGN o CGNR ).
- A T Ax = A T b
Como método iterativo, no es necesario formar A T A explícitamente en memoria, sino solo realizar las multiplicaciones matriz-vector y transpuesta matriz-vector. Por lo tanto, CGNR es particularmente útil cuando A es una matriz dispersa, ya que estas operaciones suelen ser extremadamente eficientes. Sin embargo, la desventaja de formar las ecuaciones normales es que el número de condición κ( A T A ) es igual a κ 2 ( A ), por lo que la tasa de convergencia de CGNR puede ser lenta y la calidad de la solución aproximada puede ser sensible a errores de redondeo. Encontrar un buen precondicionador suele ser una parte importante del uso del método CGNR.
Se han propuesto varios algoritmos (por ejemplo, CGLS, LSQR). Se dice que el algoritmo LSQR tiene la mejor estabilidad numérica cuando A está mal condicionado, es decir, A tiene un número de condición grande .
Método del gradiente conjugado para matrices hermíticas complejas
El método del gradiente conjugado, con una modificación trivial, se puede extender para resolver, dada una matriz de valores complejos A y un vector b, el sistema de ecuaciones lineales.para el vector de valores complejos x, donde A es una matriz hermitiana (es decir, A' = A) y definida positiva , y el símbolo ' denota la transpuesta conjugada . La modificación trivial consiste simplemente en sustituir la transpuesta real por la transpuesta conjugada en todas partes.
Ventajas y desventajas
Las ventajas y desventajas de los métodos de gradiente conjugado se resumen en las notas de clase de Nemirovsky y BenTal. [ 20 ] : Sec.7.3
Un ejemplo patológico
Este ejemplo proviene de [ 21 ] Lety definirDesdees invertible, existe una solución única paraResolverlo mediante descenso de gradiente conjugado nos da una convergencia bastante mala:En otras palabras, durante el proceso de CG, el error crece exponencialmente hasta que, de repente, se vuelve cero cuando se encuentra la solución única.
Véase también
- Método del gradiente biconjugado (BiCG)
- Método del gradiente conjugado al cuadrado (CGS)
- Método del residuo conjugado
- propagación de creencias gaussiana
- Método iterativo: Sistemas lineales
- subespacio de Krylov
- método de gradiente conjugado no lineal
- Preacondicionamiento
- Multiplicación matriz-vector dispersa
Referencias
- ↑ Hestenes, Magnus R. ; Stiefel, Eduard (diciembre de 1952). "Métodos de gradientes conjugados para resolver sistemas lineales" (PDF) . Journal of Research of the National Bureau of Standards . 49 (6): 409. doi : 10.6028/jres.049.044 .
- ↑ Straeter, TA (1971). Sobre la extensión de la clase de Davidon-Broyden de rango uno, métodos de minimización cuasi-Newton a un espacio de Hilbert de dimensión infinita con aplicaciones a problemas de control óptimo (tesis doctoral). Universidad Estatal de Carolina del Norte. hdl : 2060/19710026200 – vía NASA Technical Reports Server.
- ^ Speiser, Ambros (2004). "Konrad Zuse und die ERMETH: Ein weltweiter Architektur-Vergleich" [ Konrad Zuse y ERMETH: una comparación mundial de arquitecturas ] . En Hellige, Hans Dieter (ed.). Geschichten der Informatik. Visionen, Paradigmen, Leitmotive (en alemán). Berlín: Springer. pag. 185.ISBN 3-540-00217-0.
- 1 2 3 4 Polyak, Boris (1987). Introducción a la optimización .
- 1 2 3 Greenbaum, Anne (1997). Métodos iterativos para resolver sistemas lineales . doi : 10.1137/1.9781611970937 . ISBN 978-0-89871-396-1.
- ↑ Botev, Zdravko I.; Kroese, Dirk P.; Taimre, Thomas (2025). Ciencia de datos y aprendizaje automático: métodos matemáticos y estadísticos (2.ª ed.). Boca Raton ; Londres: CRC Press. pp. 558–559 . ISBN 978-1-032-48868-4.
- ↑ Paquette, Elliot; Trogdon, Thomas (marzo de 2023). "Universalidad para los algoritmos de gradiente conjugado y MINRES en matrices de covarianza de muestra" . Communications on Pure and Applied Mathematics . 76 (5): 1085– 1136. arXiv : 2007.00640 . doi : 10.1002/cpa.22081 . ISSN 0010-3640 .
- ↑ Shewchuk, Jonathan R (1994). Una introducción al método del gradiente conjugado sin el dolor agonizante (PDF) .
- ↑ Saad, Yousef (2003). Métodos iterativos para sistemas lineales dispersos (2.ª ed.). Filadelfia, Pensilvania: Society for Industrial and Applied Mathematics. 195 págs . ISBN 978-0-89871-534-7.
- ↑ Holmes, M. (2023). Introducción a la computación científica y al análisis de datos, 2.ª ed . Springer. ISBN 978-3-031-22429-4.
- ↑ Hackbusch, W. (21 de junio de 2016). Solución iterativa de grandes sistemas de ecuaciones dispersos (2.ª ed.). Suiza: Springer. ISBN 978-3-319-28483-5OCLC 952572240
- ↑ Barrett, Richard; Berry, Michael; Chan, Tony F.; Demmel, James; Donato, June; Dongarra, Jack; Eijkhout, Victor; Pozo, Roldan; Romine, Charles; van der Vorst, Henk. Plantillas para la solución de sistemas lineales: bloques de construcción para métodos iterativos (PDF) (2.ª ed.). Filadelfia, PA: SIAM. pág. 13. Consultado el 31 de marzo de 2020 .
- ↑ Golub, Gene H.; Van Loan, Charles F. (2013). Computación matricial (4.ª ed.). Johns Hopkins University Press. sec. 11.5.2. ISBN 978-1-4214-0794-4.
- ↑ Concus, P.; Golub, GH; Meurant, G. (1985). "Preacondicionamiento por bloques para el método del gradiente conjugado" . SIAM Journal on Scientific and Statistical Computing . 6 (1): 220– 252. doi : 10.1137/0906018 .
- ↑ Golub, Gene H.; Ye, Qiang (1999). "Método de gradiente conjugado precondicionado inexacto con iteración interna-externa". SIAM Journal on Scientific Computing . 21 (4): 1305. CiteSeerX 10.1.1.56.1755 . doi : 10.1137/S1064827597323415 .
- ↑ Notay, Yvan (2000). "Flexible Conjugate Gradients". SIAM Journal on Scientific Computing . 22 (4): 1444– 1460. CiteSeerX 10.1.1.35.7473 . doi : 10.1137/S1064827599362314 .
- ↑ Bouwmeester, Henricus; Dougherty, Andrew; Knyazev, Andrew V. (2015). "Preacondicionamiento no simétrico para métodos de gradiente conjugado y descenso más pronunciado 1" . Procedia Computer Science . 51 : 276–285 . arXiv : 1212.6680 . doi : 10.1016/j.procs.2015.05.241 . S2CID 51978658 .
- ↑ Knyazev, Andrew V.; Lashuk, Ilya (2008). "Métodos de descenso más pronunciado y gradiente conjugado con precondicionamiento variable". SIAM Journal on Matrix Analysis and Applications . 29 (4): 1267. arXiv : math/0605767 . doi : 10.1137/060675290 . S2CID 17614913 .
- 1 2 Ross, IM , "Una teoría de control óptimo para la optimización acelerada," arXiv : 1902.09004 , 2019.
- ↑ Nemirovsky y Ben-Tal (2023). "Optimización III: Optimización convexa" (PDF) .
- ↑ Pennington, Fabian Pedregosa, Courtney Paquette, Tom Trogdon, Jeffrey. "Tutorial sobre teoría de matrices aleatorias y aprendizaje automático" . random-matrix-learning.github.io . Consultado el 5 de diciembre de 2023 .
{{cite web}}: CS1 maint: varios nombres: lista de autores ( enlace )
Lecturas adicionales
- Atkinson, Kendell A. (1988). «Sección 8.9». Introducción al análisis numérico (2.ª ed.). John Wiley and Sons. ISBN 978-0-471-50023-0.
- Avriel, Mordecai (2003). Programación no lineal: análisis y métodos . Dover Publishing. ISBN 978-0-486-43227-4.
- Golub, Gene H.; Van Loan, Charles F. (2013). «Capítulo 11». Cálculos matriciales (4.ª ed.). Johns Hopkins University Press. ISBN 978-1-4214-0794-4.
- Saad, Yousef (1 de abril de 2003). «Capítulo 6» . Métodos iterativos para sistemas lineales dispersos (2.ª ed.). SIAM. ISBN 978-0-89871-534-7.
- Gérard Meurant: "Detección y corrección de errores silenciosos en el algoritmo del gradiente conjugado", Numerical Algorithms, vol. 92 (2023), pp. 869-891. url= https://doi.org/10.1007/s11075-022-01380-1
- Meurant, Gerard; Tichy, Petr (2024). Estimación de la norma del error en el algoritmo del gradiente conjugado . SIAM. ISBN 978-1-61197-785-1.
Enlaces externos
- "Gradientes conjugados, método de" , Enciclopedia de Matemáticas , EMS Press , 2001 [1994]
- Álgebra lineal numérica
- Métodos de gradiente