Precondicionamiento y efectos sobre la precisión de la solución de LSE

8

En mis cursos sobre análisis numérico, me enseñaron que la principal y principal motivación para preacondicionar sistemas lineales de ecuaciones es aumentar la tasa de convergencia de los solucionadores iterativos para ese LSE.

Pero, ¿hay algún efecto en la precisión de la solución calculada?

Puedo recordar un resultado sobre la precisión de la solución computarizada de eliminación gaussiana, que se puede encontrar en Matrix Computations de Golub y Van Loan (p. 122). El número de condición (con respecto a alguna norma particular) de hecho afecta la precisión de la solución numérica calculada por ese algoritmo.

Uno podría esperar que algo similar se mantenga para las soluciones obtenidas, por ejemplo, de Conjugate Gradients. Creo que he observado esto en un experimento computacional. Cuando hice que el método de gradiente Conjugate se ejecutara en un sistema no acondicionado por un tiempo (largo) hasta que se cumpliera algún criterio de detención, la solución calculada aún mostraba un alto residual. Entonces, me pregunto si los números de condición más bajos no solo conducen a tiempos de ejecución más bajos, sino también a un residual (o error) más bajo en la solución calculada. Tenga en cuenta que esto es necesariamente una cuestión de estabilidad numérica, que requiere que trabajemos en aritmética precisa.

(He hecho la misma pregunta sobre matemáticas. SE, pero creo que este sitio podría ser más apropiado).

shuhalo
fuente
1
κ
Te perdiste el punto de mi pregunta, que podría deberse a que no me dijiste nada. Lo corregí, vuelva a leer la pregunta nuevamente ahora. - Tenga en cuenta que no pido la tasa de convergencia, sino la "calidad" de la solución, sin embargo, uno puede definir esto.
shuhalo

Respuestas:

5

La precisión de la eliminación gaussiana no está limitada en términos de número de condición. Hay un ejemplo de una matriz bien condicionada en Trefethen y Bau (y probablemente en otros lugares) para la cual la eliminación gaussiana es exponencialmente inestable con respecto al tamaño de la matriz.

ABxκ(A)κ(B)κ(AB)

De todos modos, el preacondicionamiento hace dos cosas:

  1. Hace que la solución esté bien representada en un pequeño número de vectores que aparecen al principio de la iteración.
  2. Hace que la norma en la que evaluamos la optimización sobre un subespacio sea más cercana a la norma del error que a la norma del residual.

Depende de usted si desea que el error sea pequeño o que el residual sea pequeño.

Jed Brown
fuente