Итеративное уточнение

Метод повышения точности численных решений систем линейных уравнений

Итеративное уточнениеитерационный метод, предложенный Джеймсом Х. Уилкинсоном для повышения точности численных решений систем линейных уравнений . [1] [2]

При решении линейной системы из-за накопления ошибок округления вычисленное решение может иногда отклоняться от точного решения. Начиная с итеративного уточнения, вычисляется последовательность , которая сходится к , когда выполняются определенные предположения. А х = б , {\displaystyle A\mathbf {x} =\mathbf {b} \,,} х ^ {\displaystyle {\hat {\mathbf {x} }}} х . {\displaystyle \mathbf {x} _{\star }\,.} х 1 = х ^ , {\displaystyle \mathbf {x} _{1} = {\hat {\mathbf {x} }}\,,} { х 1 , х 2 , х 3 , } {\displaystyle \{\mathbf {x} _{1},\,\mathbf {x} _{2},\,\mathbf {x} _{3},\точки \}} х , {\displaystyle \mathbf {x} _{\star }\,,}

Описание

Для m -й итерации итеративное уточнение состоит из трех шагов: м = 1 , 2 , 3 , , {\displaystyle m=1,2,3,\точки \,,}

  1. Вычислить остаточную ошибку r m г м = б А х м . {\displaystyle \mathbf {r} _{m}=\mathbf {b} -A\mathbf {x} _{m}\,.}
  2. Решите систему для поправки, c m , которая устраняет остаточную ошибку А с м = г м . {\displaystyle A\mathbf {c} _{m} = \mathbf {r} _{m}\,.}
  3. Добавьте исправление, чтобы получить следующее исправленное решение x m +1 х м + 1 = х м + с м . {\displaystyle \mathbf {x} _{m+1}=\mathbf {x} _{m}+\mathbf {c} _{m}\,.}

Решающее обоснование алгоритма уточнения заключается в том, что хотя решение для c m на шаге (ii) действительно может быть озадачено такими же ошибками, как и первое решение, , вычисление остатка r m на шаге (i), в сравнении, численно почти точно: Вы можете не очень хорошо знать правильный ответ, но вы довольно точно знаете, насколько далеко решение, которое у вас есть, от получения правильного результата ( b ). Если остаток мал в каком-то смысле, то исправление также должно быть небольшим и должно, по крайней мере, направить текущую оценку ответа x m ближе к желаемому, х ^ {\displaystyle {\hat {\mathbf {x} }}} х . {\displaystyle \mathbf {x} _{\star }\,.}

Итерации остановятся сами по себе, когда остаток r m станет равным нулю или достаточно близким к нулю, так что соответствующая поправка c m будет слишком мала, чтобы изменить решение x m , которое его создало; в качестве альтернативы алгоритм остановится, когда r m станет слишком малым, чтобы убедить специалиста по линейной алгебре, следящего за ходом работы, в необходимости продолжения дальнейших уточнений.

Обратите внимание, что матричное уравнение, решенное на шаге (ii), использует одну и ту же матрицу для каждой итерации. Если матричное уравнение решается с использованием прямого метода, такого как разложение Холецкого или LU , численная затратная факторизация выполняется один раз и повторно используется для относительно недорогой прямой и обратной подстановки для решения для c m на каждой итерации. [2] А {\displaystyle А} А {\displaystyle А}

Анализ ошибок

Как правило, итеративное уточнение для метода Гаусса дает решение с рабочей точностью, если при вычислении r используется двойная рабочая точность , например, с использованием четверной или двойной расширенной точности IEEE 754 с плавающей точкой , и если A не слишком плохо обусловлено (а итерация и скорость сходимости определяются числом обусловленности A ). [3]

Более формально, предполагая, что каждый шаг (ii) может быть решен достаточно точно, т.е. в математических терминах, для каждого m , мы имеем А ( я + Ф м ) с м = г м {\displaystyle A\left(I+F_{m}\right)\mathbf {c} _{m}=\mathbf {r} _{m}}

где ‖F m < 1 , относительная ошибка в m -й итерации итеративного уточнения удовлетворяет условию х м х х ( σ к ( А ) ε 1 ) м + μ 1 ε 1 + н к ( А ) μ 2 ε 2 {\displaystyle {\frac {\lVert \mathbf {x} _{m}-\mathbf {x} _{\star } \rVert _ {\infty }}{\lVert \mathbf {x} _{\star } \rVert _{\infty }}}\leq {\bigl (}\sigma \,\kappa (A)\,\varepsilon _{1}{\bigr )}^{m}+\mu _{1}\,\varepsilon _{1}+n\,\kappa (A)\,\mu _{ 2}\,\варепсилон _{2}}

где

если А «не слишком плохо обусловлен», что в данном контексте означает

0 < σκ (A) ε 1 ≪ 1

и подразумевает, что μ 1 и μ 2 имеют порядок единицы.

Различие ε 1 и ε 2 призвано обеспечить смешанную точность оценки r m , где промежуточные результаты вычисляются с округлением до единицы ε 2 до того, как окончательный результат округляется (или усекается) с округлением до единицы ε 1. Предполагается, что все остальные вычисления выполняются с округлением до единицы ε 1 .

Ссылки

  1. ^ Уилкинсон, Джеймс Х. (1963). Ошибки округления в алгебраических процессах . Энглвуд Клиффс, Нью-Джерси: Prentice Hall .
  2. ^ ab Moler, Cleve B. (апрель 1967 г.). «Итеративное уточнение в числах с плавающей точкой». Журнал ACM . 14 (2). Нью-Йорк, Нью-Йорк: Ассоциация вычислительной техники : 316– 321. doi : 10.1145/321386.321394 .
  3. ^ Хайэм, Николас (2002). Точность и устойчивость численных алгоритмов (2-е изд.). SIAM. стр. 232.
Взято с "https://en.wikipedia.org/w/index.php?title=Итеративное_уточнение&oldid=1202374259"