Вычислительная устойчивость: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
NapalmBot (обсуждение | вклад) м Удаление принудительных пробелов в формулах по ВП:РДБ. |
FeelUs (обсуждение | вклад) перевод английской преамбулы |
||
Строка 1: | Строка 1: | ||
{{Другие значения|устойчивость}} |
{{Другие значения|устойчивость}} |
||
В вычислительной математике вычислительная устойчивость является обычно желательным свойством численных алгоритмов. |
|||
Точное определение устойчивости зависит от контекста. |
|||
Один из них - численная линейная алгебра, |
|||
другой - алгоритмы решения обыкновенных уравнений и дифференциальных уравнений в частных производных с помощью дискретного приближения. |
|||
В численной линейной алгебре основной проблемой являются нестабильности, вызванные близостью к различным особенностям(singularity), |
|||
таким как очень малые или почти совпадающие собственные значения. |
|||
С другой стороны, в численных алгоритмах для дифференциальных уравнений |
|||
проблема заключается в увеличении ошибок округления и/или изначально небольших флуктуаций в исходных данных, |
|||
которые могут привести к значительному отклонению окончательного ответа от точного решения. |
|||
Некоторые численные алгоритмы могут ослаблять небольшие отклонения (ошибки) во входных данных; другие могут увеличить такие ошибки. |
|||
Расчеты, которые, как можно доказать, не увеличивают ошибки аппроксимации, называются вычислительно устойчивыми. |
|||
Одна из распространенных задач численного анализа - попытаться выбрать надежные алгоритмы, |
|||
то есть не дать сильно отличающийся результат при очень небольшом изменении входных данных. |
|||
Противоположным явлением является неустойчивость. |
|||
Как правило, алгоритм включает в себя приближенный метод, и в некоторых случаях можно доказать, |
|||
что алгоритм будет приближаться к правильному решению в некотором пределе |
|||
(при использовании на самом деле [[действительное число|действительных чисел]], а не [[Число с плавающей запятой|чисел с плавающей запятой]]). |
|||
Даже в этом случае нет гарантии, что он будет сходиться к правильному решению, |
|||
потому что ошибки округления или усечения с плавающей точкой могут расти, а не уменьшаться, |
|||
что приведет к экспоненциальному росту отклонения от точного решения.<ref>{{cite book | title=Numerical Algorithms with C | author1=Giesela Engeln-Müllges|author2= Frank Uhlig |others= M. Schon (Translator), F. Uhlig (Translator) | edition=1 |date=2 July 1996 | publisher=Springer | pages=10 | isbn=978-3-540-60530-0 | url=https://books.google.com/books?id=HurESoDQljcC&pg=PA10#v=onepage&q&f=false}}</ref> |
|||
== Определение == |
== Определение == |
Версия от 03:06, 13 декабря 2018
В вычислительной математике вычислительная устойчивость является обычно желательным свойством численных алгоритмов. Точное определение устойчивости зависит от контекста. Один из них - численная линейная алгебра, другой - алгоритмы решения обыкновенных уравнений и дифференциальных уравнений в частных производных с помощью дискретного приближения.
В численной линейной алгебре основной проблемой являются нестабильности, вызванные близостью к различным особенностям(singularity), таким как очень малые или почти совпадающие собственные значения. С другой стороны, в численных алгоритмах для дифференциальных уравнений проблема заключается в увеличении ошибок округления и/или изначально небольших флуктуаций в исходных данных, которые могут привести к значительному отклонению окончательного ответа от точного решения.
Некоторые численные алгоритмы могут ослаблять небольшие отклонения (ошибки) во входных данных; другие могут увеличить такие ошибки. Расчеты, которые, как можно доказать, не увеличивают ошибки аппроксимации, называются вычислительно устойчивыми. Одна из распространенных задач численного анализа - попытаться выбрать надежные алгоритмы, то есть не дать сильно отличающийся результат при очень небольшом изменении входных данных.
Противоположным явлением является неустойчивость. Как правило, алгоритм включает в себя приближенный метод, и в некоторых случаях можно доказать, что алгоритм будет приближаться к правильному решению в некотором пределе (при использовании на самом деле действительных чисел, а не чисел с плавающей запятой). Даже в этом случае нет гарантии, что он будет сходиться к правильному решению, потому что ошибки округления или усечения с плавающей точкой могут расти, а не уменьшаться, что приведет к экспоненциальному росту отклонения от точного решения.[1]
Определение
В вычислительной математике большое значение имеет чувствительность решения задачи тем или иным алгоритмом к малым изменениям входных данных. Задача или алгоритм решения задачи называются вычислительно неустойчивыми, если малые изменения входных данных приводят к заметным изменениям решения. Поскольку вычисления в рациональных числах осуществляются с некоторой погрешностью, вычислительная неустойчивость приводит к невозможности решения ряда задач некоторыми алгоритмами, которые при абсолютно точных вычислениях давали бы решения. Устойчивость алгоритма к множеству решаемых задач отдалённо напоминает непрерывное отображение.
Вычислительную устойчивость, например, решения системы уравнений, можно определить следующим образом: допустим мы решили систему уравнения относительно , то есть нашли решение . Если мы незначительно изменим значения на , то новое решение должно быть в некоторой метрике близким к решению .
Пример 1: система уравнений
Дана система двух линейных уравнений:
Решением является пара чисел
«Возмутим» правую часть первого уравнения на 0,01 (вместо 11 напишем 11,01) и получим новую, «возмущённую» систему, решением которой является пара чисел {11,01; 0,00}, не имеющая ничего общего с решением невозмущённой системы. Здесь изменение значения одного параметра меньше чем на привело к совсем другому решению.
См. также
![]() | В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Это заготовка статьи по математике. Помогите Википедии, дополнив её. |
- ↑ Giesela Engeln-Müllges. Numerical Algorithms with C / Giesela Engeln-Müllges, Frank Uhlig. — 1. — Springer, 2 July 1996. — P. 10. — ISBN 978-3-540-60530-0.