Criterios de detención para solucionadores lineales iterativos aplicados a sistemas casi singulares

16

Considere con casi singular, lo que significa que hay un valor propio de que es muy pequeño. El criterio habitual de detención de un método iterativo se basa en el valor residual y considera que las iteraciones pueden detenerse cuando con n el número de iteración. Pero en el caso que estamos considerando, podría haber un gran error v viviendo en el espacio propio asociado con el pequeño valor propio \ lambda_0 que da un pequeño Av residual \ \ lambda_0v . Supongamos que el residual inicial r_0 es grande, entonces podría ocurrir que nos detengamos enA λ 0 A r n : = b - A x nr n/r 0< t o l n v λ 0 A v = λ 0 v r 0r n/r 0< T o lAX=siUNλ0 0UNrnorte: =si-UNXnorternorte/ /r0 0<tolnortevλ0 0Av=λ0vr0rn/r0<tol pero el error sigue siendo grande. ¿Cuál es un mejor indicador de error en este caso? Esun buen candidato?xnxxnxn1

Hui Zhang
fuente
3
Es posible que desee pensar en su definición de "casi singular". La matriz (con e la matriz de identidad) tiene un valor propio muy pequeño, pero está tan lejos de ser singular como podría ser cualquier matriz. Iϵϵ1yo
David Ketcheson el
1
Además,Parece la notación incorrecta. es mas tipico, no? El | El | r n | El | / | El | r 0 | El |||rn/r0||||rn||/||r0||
Bill Barth
Sí, tienes razón, Bill! Corregiré este error.
Hui Zhang
1
¿Qué pasa con bAx/b ? ¿Y cuál es exactamente tu algoritmo?
shuhalo
2
Anexo: Creo que el siguiente artículo aborda los sistemas mal condicionados que le preocupan, al menos si está utilizando CG: Axelson, Kaporin: estimación de la norma de error y criterios de detención en iteraciones de gradiente conjugado preacondicionado. DOI: 10.1002 / nla.244
shuhalo

Respuestas:

13

Por favor, no use la diferencia entre iteraciones sucesivas para definir un criterio de parada. Esto diagnostica erróneamente el estancamiento por convergencia. La mayoría de las iteraciones de matriz no simétricas no son monótonas, e incluso GMRES en aritmética exacta sin reinicios puede estancarse por un número arbitrario de iteraciones (hasta la dimensión de la matriz) antes de converger repentinamente. Véanse ejemplos en Nachtigal, Reddy y Trefethen (1993) .

Una mejor manera de definir la convergencia.

Por lo general, estamos interesados ​​en la precisión de nuestra solución más que en el tamaño del residuo. Específicamente, nos gustaría garantizar que la diferencia entre una solución aproximada y la solución exacta x satisface | x n - x | < c para algunos especificados por el usuario c . Resulta que puede lograr esto al encontrar una x n tal que | A x n - b | < c ϵ donde ϵ es el valor singular más pequeño de A , debido axnx

|xnx|<c
cxn
|Axnb|<cϵ
ϵA

|xnx|=|A1A(xnx)|1ϵ|AxnAx|=1ϵ|Axnb|<1ϵcϵ=c

donde hemos usado que es el mayor valor singular de A - 1 (segunda línea) y que x resuelve exactamente A x = b (tercera línea).1/ϵA1xAx=b

Estimando el valor singular más pequeño ϵ

Una estimación precisa del valor singular más pequeño generalmente no está disponible directamente del problema, pero se puede estimar como un subproducto de un gradiente conjugado o una iteración GMRES. Tenga en cuenta que aunque las estimaciones de los mayores valores propios y valores singulares es por lo general bastante bueno después de sólo unas pocas iteraciones, una estimación precisa de los más pequeños Eigen / valor singular lo general sólo se obtiene una vez que se alcanza la convergencia. Antes de la convergencia, la estimación generalmente será significativamente mayor que el valor real. Esto sugiere que en realidad debe resolver las ecuaciones antes de poder definir la tolerancia correcta c ϵ . Una tolerancia de convergencia automática que toma una precisión proporcionada por el usuario cϵcϵcpara la solución y estima que el valor singular más pequeño con el estado actual del método de Krylov podría converger demasiado pronto porque la estimación de ϵ fue mucho mayor que el valor verdadero.ϵϵ

Notas

  1. La discusión anterior también funciona con reemplazado por el operador preacondicionado izquierdo P - 1 A y el residuo preacondicionado P - 1 ( A x n - b ) o con el operador preacondicionado derecho A P - 1 y el error P ( x n - x ) . Si P - 1AP1AP1(Axnb)AP1P(xnx)P1es un buen preacondicionador, el operador preacondicionado estará bien acondicionado. Para el preacondicionamiento a la izquierda, esto significa que el residuo preacondicionado puede hacerse pequeño, pero el verdadero residuo puede no serlo. Para el preacondicionamiento correcto, se hace fácilmente pequeño, pero el verdadero error | x n - x | puede no ser. Esto explica por qué el preacondicionamiento a la izquierda es mejor para hacer que el error sea pequeño, mientras que el preacondicionamiento a la derecha es mejor para hacer que el residual sea pequeño (y para depurar preacondicionadores inestables).|P(xnx)||xnx|
  2. Consulte esta respuesta para obtener más información sobre las normas minimizadas por GMRES y CG.
  3. Las estimaciones de valores singulares extremos se pueden monitorear -ksp_monitor_singular_valuecon cualquier programa PETSc. Consulte KSPComputeExtremeSingularValues ​​() para calcular valores singulares a partir del código.
  4. Cuando se usa GMRES para estimar valores singulares, es crucial que no se reinicie (por ejemplo, -ksp_gmres_restart 1000en PETSc).
Jed Brown
fuente
1
'' también funciona con A reemplazado por un operador preacondicionado ''. Sin embargo, solo se aplica al residual preacondicionado si se usa P - 1 A , resp. al error preacondicionado P - 1 δ x si se utiliza A P - 1 . P1rP1AP1δxAP1
Arnold Neumaier
1
Buen punto, edité mi respuesta. Tenga en cuenta que el caso preacondicionado derecho le da el control de , desenrollando el preacondicionador (aplicando P - 1 ) típicamente amplifica los modos de baja energía en el error. PδxP1
Jed Brown
6

Otra forma de ver este problema es considerar las herramientas de problemas inversos discretos, es decir, problemas que implican resolver o min | El | A x - b | El | 2 donde A está muy mal condicionado (es decir, la relación entre el primer y el último valor singular σ 1 / σ n es grande).Ax=bmin||Axb||2Aσ1/σn

Aquí, tenemos varios métodos para elegir el criterio de detención, y para un método iterativo, recomendaría el criterio de la curva L ya que solo involucra cantidades que ya están disponibles (DESCARGO DE RESPONSABILIDAD: mi asesor fue pionero en este método, por lo que definitivamente estoy sesgado hacia eso). He usado esto con éxito en un método iterativo.

La idea es monitorear la norma residual y la norma de solución η k = | El | x k | El | 2 , donde x k es la k 'ésima iteración. A medida que itera, esto comienza a dibujar la forma de una L en un diagrama de registro (rho, eta), y el punto en la esquina de esa L es la opción óptima.ρk=||Axkb||2ηk=||xk||2xkk

Esto le permite implementar un criterio en el que vigila cuando haya pasado la esquina (es decir, mirando el gradiente de ), y luego elija la iteración que se encuentra en la esquina.(ρk,ηk)

La forma en que lo hice implicaba almacenar los últimos 20 iteraciones, y si el gradiente abs(log(ηk)log(ηk1)log(ρk)log(ρk1))

También hay métodos más detallados para encontrar la esquina, y estos funcionan mejor pero requieren almacenar un número significativo de iteraciones. Juega un poco con eso. Si está en matlab, puede usar las herramientas de regularización de la caja de herramientas, que implementa algo de esto (específicamente la función "esquina" es aplicable).

Tenga en cuenta que este enfoque es particularmente adecuado para problemas a gran escala, ya que el tiempo de computación adicional involucrado es minúsculo.

OscarB
fuente
1
¡Muchas gracias! Entonces, en el diagrama de loglog (rho, eta) comenzamos desde la derecha de la curva L y terminamos en la parte superior de L, ¿verdad? Simplemente no conozco el principio detrás de este criterio. ¿Puedes explicar por qué siempre se comporta como una curva L y por qué elegimos la esquina?
Hui Zhang el
||Axb||2=||e||2ebexact=b+e. Para más análisis ver Hansen, PC, y O'Leary, DP (1993). El uso de la curva L en la regularización de problemas discretos mal planteados. SIAM Journal on Scientific Computing, 14. Tenga en cuenta que acabo de hacer una ligera actualización de la publicación.
OscarB
44
@HuiZhang: no siempre es una L. Si la regularización es ambigua, puede ser una doble L, lo que lleva a dos candidatos para la solución, uno con una enfermera gruesa mejor resuelta y el otro con ciertos detalles mejor resueltos. (Y, por supuesto, pueden aparecer más formas complejas).
Arnold Neumaier
¿La curva L se aplica a problemas mal condicionados donde debería haber una solución única? Es decir, estoy interesado en los problemas Ax = b, donde b se conoce "exactamente" y A es casi singular pero aún técnicamente invertible. Me parece que si usa algo como GMRES, la norma de su conjetura actual de x no cambia demasiado con el tiempo, especialmente después de las primeras pero muchas iteraciones. Me parece que la parte vertical de la curva L ocurre porque no hay una solución única / válida en un problema mal planteado; ¿Esta característica vertical estaría presente en todos los problemas mal condicionados?
nukeguy
En un punto, alcanzará una línea vertical de este tipo, típicamente porque los errores numéricos en su método de solución resultan en || Ax-b || No disminuye. Sin embargo, tiene razón en que en estos problemas sin ruido la curva no siempre se ve como una L, lo que significa que generalmente tiene algunas esquinas para elegir y elegir una sobre la otra puede ser difícil. Creo que el documento al que hice referencia en mi comentario anterior trata brevemente los escenarios sin ruido.
OscarB