stringtranslate.com

Численная стабильность

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

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

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

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

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

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

Диаграмма, показывающая прямую ошибку Δ y и обратную ошибку Δ x , а также их связь с точной картой решения  f и численным решением  f * .

Рассмотрим задачу, которую необходимо решить с помощью численного алгоритма, как функцию  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 знак равно Икс k /2 + 1/ Икс k . Другой метод, называемый «методом X», определяется выражением x k +1 = ( x k 2 − 2) 2 + x k . [примечание 1] Несколько итераций каждой схемы рассчитаны в виде таблицы ниже с начальными предположениями x 0 = 1,4 и x 0 = 1,42.

Обратите внимание, что вавилонский метод сходится быстро независимо от первоначального предположения, тогда как метод X сходится чрезвычайно медленно с начальным предположением x 0 = 1,4 и расходится для начального предположения x 0 = 1,42. Следовательно, вавилонский метод численно стабилен, а метод X численно нестабилен.

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

и
Сравнивая результаты
и

Сравнивая два приведенных выше результата, становится ясно, что потеря значимости (вызванная здесь катастрофической отменой из-за вычитания приближений к близким числам и , несмотря на то, что вычитание вычисляется точно) оказывает огромное влияние на результаты, даже если обе функции эквивалентны , как показано ниже

Желаемое значение, рассчитанное с бесконечной точностью, составляет 11,174755... [примечание 2]

Смотрите также

Примечания

  1. ^ Это итерация с фиксированной точкой для уравнения , решения которого включают . Итерации всегда перемещаются вправо, поскольку . Следовательно, сходится и расходится.
  2. ^ Пример представляет собой модификацию примера, взятого из Mathews & Fink (1999). [2]

Рекомендации

  1. ^ Гизела Энгельн-Мюлльгес; Фрэнк Улиг (2 июля 1996 г.). Численные алгоритмы с К. М. Шоном (переводчик), Ф. Улигом (переводчик) (1-е изд.). Спрингер. п. 10. ISBN 978-3-540-60530-0.
  2. ^ Мэтьюз, Джон Х.; Финк, Куртис Д. (1999). «Пример 1.17». Численные методы с использованием MATLAB (3-е изд.). Прентис Холл. п. 28.