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.
Para la iteración m , el refinamiento iterativo consta de tres pasos:
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]
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
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 .