stringtranslate.com

Refinamiento iterativo

El refinamiento iterativo es un método iterativo propuesto por James H. Wilkinson para mejorar la precisión de las soluciones numéricas de sistemas de ecuaciones lineales . [1] [2]

Al resolver un sistema lineal debido a la acumulación compuesta de errores de redondeo , la solución calculada a veces puede desviarse de la solución exacta. Comenzando con el refinamiento iterativo se calcula una secuencia que converge cuando se cumplen ciertos supuestos.

Descripción

Para la iteración m , el refinamiento iterativo consta de tres pasos:

  1. Calcular el error residual r m
  2. Resuelva el sistema para la corrección, c m , que elimina el error residual
  3. Agregue la corrección para obtener la siguiente solución revisada x m +1

El razonamiento crucial para el algoritmo de refinamiento es que, aunque la solución para c m en el paso (ii) puede de hecho estar plagada de errores similares a los de la primera solución, , el cálculo del residuo r m en el paso (i), en comparación, es numéricamente casi exacto: Puede que no conozca muy bien la respuesta correcta, pero sabe con bastante exactitud qué tan lejos está la solución que tiene en la mano de producir el resultado correcto ( b ). Si el residuo es pequeño en algún sentido, entonces la corrección también debe ser pequeña, y debería, como mínimo, acercar la estimación actual de la respuesta, x m , a la deseada.

Las iteraciones se detendrán por sí solas cuando el residuo r m sea cero, o lo suficientemente cercano a cero como para que la corrección correspondiente c m sea demasiado pequeña para cambiar la solución x m que lo produjo; alternativamente, el algoritmo se detiene cuando r m sea demasiado pequeño para convencer al algebrista lineal que monitorea el progreso de que vale la pena continuar con más refinamientos.

Obsérvese que la ecuación matricial resuelta en el paso (ii) utiliza la misma matriz para cada iteración. Si la ecuación matricial se resuelve utilizando un método directo, como la descomposición de Cholesky o LU , la factorización numéricamente costosa de se realiza una vez y se reutiliza para la sustitución hacia adelante y hacia atrás relativamente económica para resolver c m en cada iteración. [2]

Análisis de errores

Como regla general, el refinamiento iterativo para la eliminación gaussiana produce una solución correcta para la precisión de trabajo si se utiliza el doble de la precisión de trabajo en el cálculo de r , por ejemplo, utilizando precisión extendida cuádruple o doble IEEE 754 de punto flotante , y si A no está demasiado mal condicionado (y la iteración y la tasa de convergencia están determinadas por el número de condición de A ). [3]

De manera más formal, suponiendo que cada paso (ii) se puede resolver con razonable precisión, es decir, en términos matemáticos, para cada m , tenemos

donde ‖F m < 1 , el error relativo en la iteración m -ésima del refinamiento iterativo satisface

dónde

si A "no está muy mal condicionado", lo que en este contexto significa

0 < σκ (A) ε 1 ≪ 1

e implica que μ 1 y μ 2 son de orden unidad.

La distinción entre ε 1 y ε 2 tiene como finalidad permitir la evaluación de precisión mixta de r m donde los resultados intermedios se calculan con redondeo unitario ε 2 antes de que el resultado final se redondee (o trunque) con redondeo unitario ε 1 . Se supone que todos los demás cálculos se llevan a cabo con redondeo unitario ε 1 .

Referencias

  1. ^ Wilkinson, James H. (1963). Errores de redondeo en procesos algebraicos . Englewood Cliffs, Nueva Jersey: Prentice Hall .
  2. ^ ab Moler, Cleve B. (abril de 1967). "Refinamiento iterativo en coma flotante". Revista de la ACM . 14 (2). Nueva York, NY: Association for Computing Machinery : 316–321. doi : 10.1145/321386.321394 .
  3. ^ Higham, Nicholas (2002). Precisión y estabilidad de algoritmos numéricos (2.ª ed.). SIAM. pág. 232.