Научные стандарты для числовых ошибок


40

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

Ответы:


26

Ваш вопрос спрашивает о модели проверки. Вы можете найти многочисленные ресурсы по методам и стандартам , выполнив поиск по Проверке и валидации ( Roache 1997 , 2002 , 2004 , Oberkampf & Trucano 2002 , Salari & Knupp 2000 , Babuska & Oden 2004 ), а также по более широкой теме Количественная оценка неопределенности . Вместо того чтобы подробно останавливаться на методах, я хотел бы выделить сообщество, которое заняло твердую позицию по этому вопросу.

В 1986 году Роуч, Гия и Уайт создали Редакционную политику журнала «Жидкостная инженерия» по контролю за числовой точностью, которая начинается с

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

[...] Эта проблема, конечно же, не является уникальной для JFE и стала еще более острой на конференции AFOSRHTTM-Stanford в 1980-81 годах по сложным турбулентным потокам. Комитет по оценке этой конференции пришел к выводу, что в большинстве материалов, представленных на эту конференцию, невозможно было оценить и сравнить точность различных моделей турбулентности, поскольку нельзя было отличить физические ошибки моделирования от числовых ошибок, связанных с алгоритмом и сетка. Это особенно касается точных методов первого порядка и гибридных методов.

Они заключают с очень прямыми рекомендациями:

Журнал Fluids Engineering не принимает к публикации какие-либо документы, в которых сообщается о численном решении проблемы инженерии жидкости, которая не решает задачи систематического тестирования ошибок усечения и оценки точности.

[...] мы должны прояснить, что один расчет в фиксированной сетке не будет приемлемым , поскольку из такого расчета невозможно вывести оценку точности. Кроме того, редакторы не будут считать разумное согласие с экспериментальными данными достаточным доказательством точности, особенно если используются какие-либо настраиваемые параметры, как при моделировании турбулентности.

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


1
Последний пункт о настраиваемых параметрах напоминает мне цитату Джона фон Неймана: «С четырьмя параметрами я могу соответствовать слону, а с пятью я могу заставить его шевелить туловищем».
Джед Браун

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

Как вы думаете, точная апостериорная оценка может заменить требование независимости сетки? Как уже говорилось, это немного расплывчато, насколько вы улучшаете сетку для обеспечения независимости? Хорошая апостериорная оценка с другой стороны не должна оставлять места для двусмысленности.
Reid.Atcheson

2
@ Reid.Atcheson "Эй, черт возьми, я слышал, что вам нравятся оценки ошибок, поэтому я дал вам оценку ошибок для вашей оценки ошибок, чтобы вы могли оценить ошибку в своем ...", но, к сожалению, практические оценки ошибок, как правило, не могут быть точными границы наихудшего случая. То, что там доступно, часто бывает пессимистичным и основывается на предположениях, которые не соответствуют большинству инженерных задач. Даже с оценщиком высочайших ошибок вам необходимо убедиться, что он был реализован правильно. В любом случае, используйте оценщик ошибок, если он у вас есть, но оценщик ошибок не является отдельной проверкой.
Джед Браун

19

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

В основном существует четыре вида оценки ошибок:

(i) Теоретический анализ, доказывающий, что численный метод численно стабилен. Это на самом деле не дает панели ошибок, поскольку анализ только гарантирует, что сделанная ошибка не хуже, чем количественная ошибка во входных аргументах. Этого достаточно для большинства научных расчетов, поскольку входные данные также являются только приблизительными, поэтому ошибка, допущенная численно устойчивым методом, не хуже, чем при использовании немного другого (но неизвестного) ввода. Наиболее высоко оцененные численные методы сопровождаются числовым анализом, хотя вряд ли можно найти какую-либо реализацию, которая по запросу сообщает о так называемой обратной ошибке.

(ii) Асимптотические оценки ошибок. Они предполагают, что произведениями всех ошибок (ошибки ввода, ошибки округления или ошибки дискретизации являются наиболее распространенными источниками) можно пренебречь (сомнительно, если функции очень нелинейны), и используют анализ чувствительности для распространения ошибок ввода. Вместе с числовым анализом устойчивости это также может отражать влияние ошибок округления или ошибок дискретизации. Получающиеся в результате бары ошибок так же реальны, как и достоверность предположений, на которых они основаны. При использовании инструментов автоматического дифференцирования стоимость оценки ошибки обычно составляет 1 или 2 в дополнение к стоимости аппроксимации. Таким образом, этот вид оценки ошибки довольно часто встречается на практике.

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

(iii) Анализ стохастических ошибок: (CESTAC, http://www.sciencedirect.com/science/article/pii/0378475488900705) Это делается путем перегрузки всех операций соответствующим стохастическим вариантом, который оценивает три набора аргументов и впоследствии добавляет искусственную случайную ошибку округления. последние три результата используются для вычисления среднего значения и стандартного отклонения квадратного корня (сумма квадратов отклонений от среднего, деленная на 2 = 3-1). Это дает довольно полезную оценку точности части ошибки округления. Однако это не учитывает ошибку дискретизации, которая обычно является доминирующей ошибкой в ​​вычислениях ODE и PDE. Стоимость зависит от языка программирования из-за накладных расходов при выполнении перегруженных операций. Предполагая (что почти никогда не имеет место), перегрузка не несет никакой временной потери, стоимость для результата плюс оценка ошибки - фактор 3 по сравнению с вычислением только приближения.

(iv) Интервальный анализ: это дает строгие границы для всех источников ошибок, если все сделано правильно, но за исключением простых случаев, это требует большого опыта (или программного обеспечения, воплощающего его), чтобы сделать так, чтобы границы не сильно переоценивали истинные ошибки , Хорошее интервальное программное обеспечение доступно среди прочего для линейной алгебры (например, IntLab http://www.ti3.tu-harburg.de/rump/intlab/ ; стоимость в 6 раз больше, если размер большой) и глобальной оптимизации (например, , COCONUT http://www.mat.univie.ac.at/~coconut/coconut-environment/; может быть намного дороже или даже дешевле, чем приблизительная глобальная оптимизация, в зависимости от особенностей проблемы). Но многие другие классы проблем, которые легко приближенно решать приблизительно (например, охватывающие траектории больших планет солнечной системы за 10 лет), полностью недоступны для текущего поколения интервальных методов.


Спасибо. Я хотел бы видеть (II) на работе. Можете ли вы привести пример, где авторы объединяют анализ чувствительности и численный анализ стабильности для определения оценок глобальной ошибки.
Highsciguy

@highsciguy: см. мои правки в (ii)
Арнольд Ноймайер,

Спасибо. Якобиева матрица обратная?
Highsciguy

@highsciguy: не понимаю ваш последний вопрос. Примером было решение линейной системы уравнений, без якобианских фигур.
Арнольд Ноймайер

1
Я упустил из виду линейный. Тогда понятно. Есть ли попытки обобщить теорему Оттли-Прагера на нелинейные системы?
Highsciguy

13

Вроде. Существуют теоретические границы ошибок, которые были получены численными аналитиками, которые обычно являются завышенными и могут быть не столь полезными на практике, поскольку они могут включать информацию, которую трудно получить для практических задач. Хорошим примером могут служить оценки числовых ошибок при решении обыкновенных уравнений, которые вы можете найти в книгах Хайрера и Ваннера. В книге Ника Хайама « Точность и стабильность числовых алгоритмов» (возможно, я немного ошибаюсь в названии) также приведены некоторые границы погрешностей для общих числовых операций и алгоритмов линейной алгебры. Литература по численному анализу изобилует такими границами.

Методы анализа интервалов также использовались для расчета границ ошибок; Эти методы являются строгими и имеют тенденцию предоставлять более сильные границы ошибок, чем теоретические границы ошибок, но эти методы могут все еще сильно переоценить ошибку в численном расчете. Эти методы лучше всего использовались (насколько мне известно) в глобальной оптимизации, но также находят применение в количественном определении неопределенности. Арнольд Ноймейер написал по крайней мере одну книгу о методах интервального анализа и более квалифицирован, чтобы подробно комментировать эту тему. В дополнение к потенциальным проблемам переоценки, методы интервального анализа страдают от необходимости дополнительной вычислительной инфраструктуры, которая требует модернизации существующих больших пакетов численного моделирования (таких как PETSc, Trilinos, CLAWPACK / PyClaw и т. Д. ) включить интервальную арифметику и автоматическое дифференцирование (для методов Тейлора). Из того, что я видел, не так уж много разрешающих лицензированных интервальных арифметических и автоматических дифференцирующих пакетов, хотя они есть. Даже тогда, иногда, эти библиотеки имеют ограниченную функциональность; было трудно найти разрешающую лицензию (LGPL или BSD-подобную) интервальную арифметическую библиотеку с BLAS-подобной функциональностью.

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

В более широком смысле, методы количественной оценки неопределенности, такие как использование разложений полиномиального хаоса, методы Монте-Карло или другие методы выборки, могут использоваться для количественной оценки неопределенности в расчетах из-за изменений входных параметров. Эти методы должны быть в состоянии обеспечить своего рода эвристическую "полосу ошибок" из-за изменений в параметрах, но не дают строгих границ.

Я полагаю, что вы абсолютно правы, когда дело доходит до спецификации числовых ошибок: вычислительная наука должна быть такой же строгой в представлении своих результатов, как и физика, основанная на эксперименте. В этой области проделана большая работа (под общими терминами «количественная оценка неопределенности» и «численный анализ»), и я надеюсь, что при обсуждении большинства результатов вычислений в какой-то момент в будущем будут включены полосы ошибок ,


У вас есть хорошая ссылка на обзорную статью об этих расширениях полиномиального хаоса? Я видел термин, появляющийся регулярно, и хотел бы узнать немного больше о них. Спасибо.
GertVdE

2
Дунбинь Сю обычно пишет доступные статьи о разложениях полиномиального хаоса. Вот одна из наиболее общих обзорных статей, которые он написал: dam.brown.edu/scicomp/media/report_files/BrownSC-2003-07.pdf
Джефф Оксберри

7

В дополнение к другим ответам, есть несколько дополнительных моментов для рассмотрения.

  1. Числовые ошибки дискретизации или, по крайней мере, порядок схем могут быть определены аналитически. Обсуждение этих ошибок может быть опущено в статьях, если они используют общеизвестную схему.
  2. Исследования по уточнению сетки, где та же самая проблема, обычно что-то простое, выполняется на более тонких сетках. Они сравниваются с точным решением или решением на смехотворно мелкой сетке, чтобы найти L-норму, обычно L2. Наклон этой оценки ошибки дает порядок точности.
  3. В задачах, где доступны разные числовые схемы, но нет точных решений или точных решений, другой метод, называемый Richardson Extrapolation, даст ограничения на ошибки. Хороший обзор, описывающий эти методы, можно найти в этой статье.
  4. Наконец, каждый журнал устанавливает свои собственные стандарты для принятия. Некоторые строгие, другие нет. Например, AIAA устанавливает свои стандарты здесь . Другие журналы имеют аналогичную информацию для авторов.

Я просто хочу прокомментировать пункт 2. Я чувствую, что при численном решении проблемы реального мира гораздо вероятнее увидеть норму, сравнивающую разницу между двумя последовательными уточнениями, чем с «смехотворно тонкой сеткой». Если вы можете решить очень тонкую сетку, почему вы беспокоитесь о гораздо более грубых?
Годрик Провидец

Исследования по уточнению сетки обычно не подходят для реальных проблем. Здесь начинается точка 3, гораздо проще определить границы ошибок, изменив порядок схем, чем постепенно улучшать сетку. Например, мы проверяем наши коды, используя невязкий вихрь, который по-прежнему нелинейен, но мы можем запустить очень точные «точные» решения для проверки точности. Но на полной вихревой камере сгорания мы практически не можем этого сделать, поэтому мы используем разные схемы.
tpg2114

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

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

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