Алгоритм Булирша – Стоера - Bulirsch–Stoer algorithm
В числовой анализ, то Алгоритм Булирша – Стоера это метод для численное решение обыкновенных дифференциальных уравнений который сочетает в себе три мощные идеи: Экстраполяция Ричардсона, использование экстраполяция рациональной функции в приложениях типа Ричардсона, а модифицированный метод средней точки, чтобы получить численные решения обыкновенные дифференциальные уравнения (ODE) с высокой точностью и сравнительно небольшими вычислительными затратами. Он назван в честь Роланд Булирш и Йозеф Стоер. Иногда его называют Алгоритм Грэгга – Булирша – Стера (GBS) из-за важности результата о функции ошибок модифицированного метода средней точки, из-за Уильям Б. Грэгг.
Основные идеи
Идея экстраполяции Ричардсона заключается в рассмотрении численного расчета, точность которого зависит от используемого размера шага. час как (неизвестно) аналитическая функция шага час, выполняя численный расчет с различными значениями час, подгоняя (выбранную) аналитическую функцию к полученным точкам, а затем оценивая функцию подгонки для час = 0, пытаясь таким образом аппроксимировать результат расчета бесконечно малыми шагами.
Булирш и Стоер признали, что использование рациональные функции в качестве аппроксимирующих функций для экстраполяции Ричардсона при численном интегрировании превосходит использование полиномиальные функции потому что рациональные функции могут довольно хорошо аппроксимировать функции с полюсами (по сравнению с полиномиальными функциями), учитывая, что в знаменателе достаточно членов с более высокой степенью, чтобы учесть близкие полюсы. Хотя полиномиальная интерполяция или экстраполяция дает хорошие результаты только в том случае, если ближайший полюс находится довольно далеко за пределами круга вокруг известных точек данных в комплексной плоскости, интерполяция или экстраполяция рациональных функций может иметь замечательную точность даже при наличии близлежащих полюсов.
Модифицированный метод средней точки сам по себе является методом второго порядка и поэтому обычно уступает методам четвертого порядка, таким как метод Рунге – Кутты четвертого порядка. Однако он имеет то преимущество, что для каждого подшага требуется только одна производная оценка (асимптотически для большого количества подшагов), и, кроме того, как обнаружил Грэгг, ошибка модифицированного шага средней точки размером ЧАС, состоящий из п подшаги размера час = ЧАС/п каждый и выражается в виде степенного ряда в час, содержит только четные степени час. Это делает модифицированный метод средней точки чрезвычайно полезным для метода Булирша – Стоера, поскольку точность увеличивается на два порядка за раз, когда результаты отдельных попыток пересечения интервала ЧАС с увеличением количества подшагов объединяются.
Хайрер, Норсетт и Ваннер (1993, п. 228), обсуждая метод, говорят, что рациональная экстраполяция в этом случае почти никогда не является улучшением по сравнению с полиномиальной интерполяцией (Деуфльхард 1983 ). Кроме того, модифицированный метод средней точки является модификацией обычного метода средней точки, чтобы сделать его более стабильным, но из-за экстраполяции это на самом деле не имеет значения (Шампин и Бака 1983 ).
Рекомендации
- Деуфлхард, Питер (1983), "Управление порядком и шагом в методах экстраполяции", Numerische Mathematik, 41 (3): 399–422, Дои:10.1007 / BF01418332, ISSN 0029-599X.
- Хайрер, Эрнст; Норсетт, Сиверт Пол; Ваннер, Герхард (1993), Решение обыкновенных дифференциальных уравнений I: нежесткие задачи, Берлин, Нью-Йорк: Springer-Verlag, ISBN 978-3-540-56670-0.
- Нажмите, WH; Теукольский С.А.; Феттерлинг, штат Вашингтон; Фланнери, ВР (2007). «Раздел 17.3. Экстраполяция Ричардсона и метод Булирша-Штера». Числовые рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк: Издательство Кембриджского университета. ISBN 978-0-521-88068-8.
- Шампин, Лоуренс Ф .; Бака, Лоррейн С. (1983), "Сглаживание правила экстраполированной средней точки", Numerische Mathematik, 41 (2): 165–175, Дои:10.1007 / BF01390211, ISSN 0029-599X.
внешняя ссылка
- ODEX.F, реализация алгоритма Булирша – Стоера Эрнстом Хайрером и Герхардом Ваннером (другие процедуры и условия лицензии см. в их Коды Fortran и Matlab страница).
- Библиотека BOOST, реализующий алгоритм Булирша – Стоера с помощью библиотеки boost).