Численная стабильность
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( февраль 2012 г. ) |
В математической области анализа численного численная стабильность является в целом желательным свойством численных алгоритмов . Точное определение стабильности зависит от контекста. Один из них — численная линейная алгебра , а другой — алгоритмы решения обыкновенных уравнений и уравнений в частных производных методом дискретной аппроксимации.
В числовой линейной алгебре основной проблемой являются нестабильности, вызванные близостью к особенностям различного типа, например, очень малым или почти сталкивающимся собственным значениям . С другой стороны, в численных алгоритмах для дифференциальных уравнений проблемой является рост ошибок округления и/или небольшие колебания исходных данных, которые могут вызвать большое отклонение окончательного ответа от точного решения. [ нужна ссылка ]
Некоторые численные алгоритмы могут подавлять небольшие колебания (ошибки) входных данных; другие могут преувеличивать такие ошибки. Расчеты, которые, как можно доказать, не увеличивают ошибки аппроксимации, называются численно устойчивыми . Одна из распространенных задач численного анализа — попытаться выбрать устойчивые алгоритмы , то есть не давать сильно отличающихся результатов при очень небольших изменениях входных данных.
явление Противоположное – нестабильность . Обычно алгоритм использует аппроксимативный метод, и в некоторых случаях можно доказать, что алгоритм приближается к правильному решению в некотором пределе (при использовании реальных действительных чисел, а не чисел с плавающей запятой). Даже в этом случае нет никакой гарантии, что оно сходится к правильному решению, поскольку ошибки округления или усечения с плавающей запятой могут увеличиваться, а не затухать, что приводит к экспоненциальному росту отклонения от точного решения. [1]
Устойчивость в числовой линейной алгебре
[ редактировать ]Существуют разные способы формализовать понятие стабильности. Следующие определения прямой, обратной и смешанной устойчивости часто используются в числовой линейной алгебре .
Рассмотрим задачу, которую необходимо решить с помощью численного алгоритма, как функцию f, отображающую данные x в решение y . Результат алгоритма, скажем y *, обычно будет отклоняться от «истинного» решения y . Основными причинами ошибок являются ошибка округления и ошибка усечения . Прямая ошибка алгоритма — это разница между результатом и решением; в этом случае Δ y знак равно y * - y . — Обратная ошибка это наименьшее Δ x такое, что f ( x + Δ x ) = y * ; другими словами, обратная ошибка говорит нам, какую проблему на самом деле решил алгоритм. Прямая и обратная ошибка связаны числом обусловленности : прямая ошибка не превышает величины числа обусловленности, умноженного на величину обратной ошибки.
Во многих случаях более естественно рассматривать относительную погрешность вместо абсолютной ошибки Δ x .
Алгоритм называется обратно устойчивым, если обратная ошибка мала для всех входных данных x . Конечно, «маленький» — понятие относительное, и его определение будет зависеть от контекста. Часто мы хотим, чтобы ошибка была того же порядка или, возможно, всего на несколько порядков больше, чем единичное округление .
Обычное определение числовой устойчивости использует более общую концепцию, называемую смешанной стабильностью , которая объединяет прямую ошибку и обратную ошибку. Алгоритм стабилен в этом смысле, если он решает ближайшую задачу приближенно, т. е. если существует ∆ x такое, что и ∆ x мало, и f ( x + ∆ x ) − y * мало. Следовательно, обратно устойчивый алгоритм всегда стабилен.
Алгоритм является устойчивым в прямом направлении, если его прямая ошибка, деленная на число обусловленности задачи, мала. Это означает, что алгоритм является устойчивым в прямом направлении, если он имеет прямую ошибку по величине, аналогичную некоторому обратно стабильному алгоритму.
Устойчивость в числовых дифференциальных уравнениях
[ редактировать ]Приведенные выше определения особенно актуальны в ситуациях, когда ошибки усечения не важны. В других контекстах, например, при решении дифференциальных уравнений , используется другое определение числовой устойчивости.
В числовых обыкновенных дифференциальных уравнениях существуют различные концепции числовой устойчивости, например A-стабильность . Они связаны с некоторой концепцией устойчивости в смысле динамических систем , часто с устойчивостью по Ляпунову . важно использовать устойчивый метод При решении жесткого уравнения .
Еще одно определение используется в числовых уравнениях в частных производных . Алгоритм решения линейного эволюционного уравнения в частных производных устойчив, если полная вариация численного решения в фиксированный момент времени остается ограниченной при стремлении размера шага к нулю. Теорема Лакса об эквивалентности утверждает, что алгоритм сходится, если он непротиворечив и стабилен (в этом смысле). Стабильность иногда достигается за счет численной диффузии . Численная диффузия — это математический термин, который гарантирует, что округление и другие ошибки в расчете распределяются и не складываются, что приведет к «взрыву» расчета. Анализ устойчивости фон Неймана - это широко используемая процедура анализа устойчивости конечно-разностных схем применительно к линейным уравнениям в частных производных. Эти результаты не справедливы для нелинейных УЧП, где общее и последовательное определение устойчивости осложняется многими свойствами, отсутствующими в линейных уравнениях.
Пример
[ редактировать ]Вычисление квадратного корня из 2 (что примерно равно 1,41421) является корректной задачей . Многие алгоритмы решают эту проблему, начиная с начального приближения x 0 до , например x 0 = 1,4, а затем вычисление улучшенных предположений x 1 , x 2 и т. д. Одним из таких методов является знаменитый вавилонский метод , который задается формулой x k +1 = ( x k + 2/ x k )/2 . Другой метод, называемый «методом X», определяется выражением x k +1 = ( x k 2 − 2) 2 + х к . [примечание 1] Несколько итераций каждой схемы рассчитаны в виде таблицы ниже с начальными предположениями x 0 = 1,4 и x 0 = 1,42.
вавилонский | вавилонский | Метод Х | Метод Х |
---|---|---|---|
х 0 = 1,4 | х 0 = 1,42 | х 0 = 1,4 | х 0 = 1,42 |
х 1 = 1,4142857... | х 1 = 1,41422535... | х 1 = 1,4016 | х 1 = 1,42026896 |
х 2 = 1,414213564... | х 2 = 1,41421356242... | х 2 = 1,4028614... | х 2 = 1,42056... |
... | ... | ||
х 1000000 = 1,41421... | х 27 = 7280,2284... |
Обратите внимание, что вавилонский метод сходится быстро независимо от первоначального предположения, тогда как метод X сходится чрезвычайно медленно с начальным предположением x 0 = 1,4 и расходится для начального предположения x 0 = 1,42. Следовательно, вавилонский метод численно стабилен, а метод X численно нестабилен.
На числовую стабильность влияет количество значащих цифр, которые сохраняет машина. Если используется машина, которая сохраняет только четыре старшие десятичные цифры, хорошим примером потери значимости могут служить две эквивалентные функции:
- и
- Сравнивая результаты
- и
Сравнивая два приведенных выше результата, становится ясно, что потеря значимости (вызванная здесь катастрофической отменой из-за вычитания приближений к близлежащим числам) и , несмотря на то, что вычитание вычисляется точно) оказывает огромное влияние на результаты, хотя обе функции эквивалентны, как показано ниже.
Желаемое значение, вычисленное с бесконечной точностью, составляет 11,174755... [примечание 2]
См. также
[ редактировать ]Примечания
[ редактировать ]- ^ Это итерация с фиксированной точкой для уравнения , решения которого включают . Итерации всегда перемещаются вправо, поскольку . Следовательно сходится и расходится.
- ^ Пример представляет собой модификацию примера, взятого из Mathews & Fink (1999) . [2]
Ссылки
[ редактировать ]- ^ Гизела Энгельн-Мюлльгес; Фрэнк Улиг (2 июля 1996 г.). Численные алгоритмы с C. М. Шон (переводчик), Ф. Улиг (переводчик) (1-е изд.). Спрингер. п. 10. ISBN 978-3-540-60530-0 .
- ^ Мэтьюз, Джон Х.; Финк, Куртис Д. (1999). «Пример 1.17». Численные методы с использованием MATLAB (3-е изд.). Прентис Холл. п. 28.
- Николас Дж. Хайэм (1996). Точность и устойчивость численных алгоритмов . Филадельфия: Общество промышленной и прикладной математики. ISBN 0-89871-355-2 .
- Ричард Л. Берден; Дж. Дуглас Фейрес (2005). Численный анализ (8-е изд.). США: Томсон Брукс/Коул. ISBN 0-534-39200-8 .
- Меснар, Оливье; Барба, Лорена А. (2017). «Воспроизводимая и воспроизводимая вычислительная гидродинамика: это сложнее, чем вы думаете». Вычисления в науке и технике . 19 (4): 44–55. arXiv : 1605.04339 . Бибкод : 2017CSE....19d..44M . дои : 10.1109/MCSE.2017.3151254 . S2CID 11288122 .