Эвристическая проверка числовой устойчивости


12

Предположим, у меня есть вещественная функция некоторых переменных x i, которую я хочу оценить численно. В общем случае формула для f может содержать произведения, рациональные числа, трансцендентные функции и т. Д. И будет достаточно долго исследовать ее числовую устойчивость аналитически. Или, по крайней мере, потребуется много времени, чтобы сделать это на практике. Предположим, у меня нет более короткого эквивалента с гарантированной стабильностью. Существует ли методическая методика анализа численной устойчивости ff(x1,,xN)xiff, Я думаю о том, чтобы сравнить его с результатами произвольной точности, полученными с использованием системы компьютерной алгебры. Скажем, функция будет реализована в C с использованием функций stdlib и одинарной или двойной точности. Какие величины следует сравнить, чтобы количественно оценить качество аппроксимации при конечной точности? Как определить критические значения переменных? Как выбрать оптимизацию компилятора и компилятора, чтобы другие люди могли легко воспроизвести результаты? ... Я знаю, что проблема, вероятно, заключается в том, чтобы дать общие ответы, чтобы дать хорошие ответы. Но я все еще думаю, что это распространенная проблема в информатике, и удивляюсь, есть ли ссылки, которые предлагают стандарты для проведения такого анализа.

Ответы:


7

То, что вы ищете, это то, что называется «Автоматический анализ ошибок» и является предметом главы 26 книги Хайама «Точность и стабильность численных алгоритмов», 2-е изд., SIAM Publishers.

Одна из техник, которые он описывает, использует прямую поисковую оптимизацию: попытайтесь сформулировать свою проблему как проблему оптимизации и используйте алгоритм оптимизации, чтобы найти коэффициенты или значения параметров, которые максимизируют или минимизируют величину, связанную с точностью вашего алгоритма / формулы. Он использует пример фактора роста в методе исключения Гаусса (какая матрица максимизирует этот фактор роста) или корни кубики (как я ответил в одном из ваших предыдущих вопросов).

Я хотел бы предложить вам получить копию этой книги, прочитать вступительные главы и эту главу 26 и ссылки в ней.



0

|f(x+ε)f(x)|C|ε|
Cfx,ϵ

И что можно сделать, если функции действительно сильно различаются по своей области или если нет доступных выполнимых производных? Существуют ли другие методы или мы в конечном итоге применили подход Монте-Карло?
Андре

1
-1: Вы объясняете понятие условия, а не числовой устойчивости.
Арнольд Ноймайер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.