Русская Википедия:Вычислительная устойчивость

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Другие значения

В вычислительной математике вычислительная устойчивость является обычно желательным свойством численных алгоритмов.

Точное определение устойчивости зависит от контекста. Один из них — численная линейная алгебра, другой — алгоритмы решения обыкновенных уравнений и дифференциальных уравнений в частных производных с помощью дискретного приближения.

В численной линейной алгебре основной проблемой являются нестабильности, вызванные близостью к различным особенностям, таким как очень малые или почти совпадающие собственные значения.

С другой стороны, в численных алгоритмах для дифференциальных уравнений проблема заключается в увеличении ошибок округления и/или изначально небольших флуктуаций в исходных данных, которые могут привести к значительному отклонению окончательного ответа от точного решения.

Некоторые численные алгоритмы могут ослаблять небольшие отклонения (ошибки) во входных данных; другие могут увеличить такие ошибки. Расчёты, которые, как можно доказать, не увеличивают ошибки аппроксимации, называются вычислительно устойчивыми. Одна из распространённых задач численного анализа — попытаться выбрать надёжные алгоритмы, то есть не дать сильно отличающийся результат при очень небольшом изменении входных данных.

Противоположным явлением является неустойчивость. Как правило, алгоритм включает в себя приближённый метод, и в некоторых случаях можно доказать, что алгоритм будет приближаться к правильному решению в некотором пределе (при использовании на самом деле действительных чисел, а не чисел с плавающей запятой).

Даже в этом случае нет гарантии, что он будет сходиться к правильному решению, потому что ошибки округления или усечения с плавающей точкой могут расти, а не уменьшаться, что приведёт к экспоненциальному росту отклонения от точного решения.[1]

Устойчивость в численных методах линейной алгебры

Существуют разные способы формализации концепции устойчивости. Следующие определения прямой, обратной и смешанной устойчивости часто используются в численной линейной алгебре.

Файл:Forward and backward error.svg
Диаграмма, показывающая прямую ошибку Δy и обратную ошибку Δx, и их соотношение с точным решением отображения Шаблон:Mvar и численного решения Шаблон:Mvar*.

Рассмотрим задачу, решаемую численным алгоритмом, как функцию Шаблон:Mvar, отображающую данные Шаблон:Mvar в решение Шаблон:Mvar. Результат алгоритма, скажем, Шаблон:Mvar, обычно будет отклоняться от «истинного» решения Шаблон:Mvar. Основными причинами ошибки являются ошибки округления и Шаблон:Iw. Прямая ошибка алгоритма — это разница между результатом и решением; в этом случае Шаблон:Math. Обратная ошибка является наименьшей ΔШаблон:Mvar такой, что Шаблон:Math; другими словами, обратная ошибка говорит нам, какую проблему на самом деле решил алгоритм. Прямая и обратная ошибки связаны числом обусловленности: прямая ошибка не более велика по величине, чем число обусловленности, умноженное на величину обратной ошибки.

Во многих случаях более естественноШаблон:Уточнить учитывать относительную ошибку

<math> \frac{|\Delta x|}{|x|} </math>

вместо абсолютной ΔШаблон:Mvar.

  • Алгоритм называется обратно устойчивым, если обратная ошибка мала для всех входов Шаблон:Mvar.

Конечно, «малый» — это относительный термин, и его определение будет зависеть от контекста. Часто мы хотим, чтобы ошибка была того же порядка, или, возможно, на несколько порядков больше, чем единица округления.

Файл:Mixed stability diagram.svg
Смешанная устойчивость комбинирует понятия прямой и обратной ошибки.

Обычное определение вычислительной устойчивости использует более общую концепцию, называемую смешанной устойчивостью, которая объединяет прямую ошибку и обратную ошибку. Алгоритм в этом смысле устойчив, если он приблизительно решает соседнюю задачу, то есть если существует такое ΔШаблон:Mvar, что и ΔШаблон:Mvar мало, и Шаблон:Math мала. Следовательно, обратно устойчивый алгоритм всегда устойчив.

  • Алгоритм является устойчивым в прямом направлении, если его прямая ошибка, деленная на число обусловленности задачи, мала.

Это означает, что алгоритм является устойчивым в прямом направлении, если он имеет прямую ошибку величины, аналогичную обратной ошибке некоторого устойчивого алгоритма.

Устойчивость разностных схем дифференциальных уравнений

Шаблон:Переписать раздел Приведенные выше определения особенно актуальны в ситуациях, когда ошибки усечения не важны. В других контекстах, например, при решении дифференциальных уравнений, используется другое определение численной устойчивости.

В численных обыкновенных дифференциальных уравнениях существуют различные понятия численной устойчивости, например, Шаблон:Iw. При решении жесткого уравнения важно использовать устойчивый метод.

Ещё одно определение используется в численных уравнениях в частных производных. Алгоритм решения линейного эволюционного уравнения в частных производных является устойчивым, если полная вариация численного решения в фиксированное время остается ограниченной, когда размер шага приближается к нулю. Шаблон:Iw утверждает, что алгоритм сходится, если он согласован и устойчив (в этом смысле). Устойчивость иногда достигается путем включения Шаблон:Iw. Численная диффузия — это математический термин, который гарантирует, что округление и другие ошибки в вычислениях распространяются и не суммируются, чтобы привести к «взрыву» вычислений. Шаблон:Iw является широко используемой процедурой для анализа устойчивости конечно-разностных схем применительно к линейным уравнениям в частных производных. Эти результаты не выполняются для нелинейных уравнений в частных производных, где общее непротиворечивое определение устойчивости усложняется многими свойствами, отсутствующими в линейных уравнениях.

См. также

Примечания

Шаблон:Примечания

Литература