Математика / Численные методы ОДУ

BDF2: неявная формула второго порядка для жёсткого ОДУ

BDF2 аппроксимирует производную в новом узле комбинацией двух предыдущих значений и неизвестного y следующего шага. Это неявный метод второго порядка, который применяют для жёстких задач, где явные схемы требуют слишком малого шага.

Опубликовано: Обновлено:

Формула

$$\frac{3y_{n+1}-4y_n+y_{n-1}}{2h}=f(t_{n+1},y_{n+1})$$
Схема Дискретные уровни BDF2
BDF2: заданный старт и два шагаBDF2: заданный старт и два шага012300.51ty10,50,20,06

Начальные уровни y₀=1 и y₁=0,5 заданы. При h=1 дальнейшие значения равны 0,2 и 0,06. Линия между точками служит только соединением узлов.

Обозначения

$yₙ₊₁,yₙ,yₙ₋₁$
новое состояние и два предыдущих приближения, единица y
$h$
постоянный шаг сетки, единица времени
$f(t,y)$
правая часть дифференциального уравнения, единица y / время
$tₙ$
узел временной сетки, время

Условия применения

Предполагаются равноотстоящие узлы и достаточно гладкое решение; локальная ошибка аппроксимации производной имеет порядок h². Значения yₙ и yₙ₋₁ уже известны, но yₙ₊₁ входит также в правую часть, поэтому требуется решить линейное или нелинейное уравнение. Для первого шага нужен отдельный стартовый метод.

Ограничения

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

Подробное объяснение

Формула использует трёхточечную назад направленную аппроксимацию производной в tₙ₊₁. Подстановка её в y′=f(t,y) даёт равенство BDF2. Наличие yₙ₊₁ справа делает шаг неявным: нужно решить уравнение, а не просто выполнить присваивание.

На тесте y′=λy коэффициент усиления зависит от z=hλ и удовлетворяет квадратному уравнению, потому что схема использует два прошлых уровня. Анализ корней характеризует устойчивость; точность второго порядка следует из разложения производной. Для λ<0 метод допускает шаги, которые могут быть запрещены явным Эйлером, хотя точность всё равно требует разумного h.

BDF2 хранит прошлые состояния, поэтому требует известного y₁. Его часто получают методом Рунге—Кутты или методом меньшего порядка, затем многошаговая схема продолжает расчёт. При смене h нельзя механически подставить новое число в формулу с постоянным шагом: для variable-step BDF выводят другие коэффициенты.

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

Сопоставляйте BDF2 с неявным Эйлером и неявной трапецией. Эйлер имеет первый порядок; трапеция — второй, но может слабо затухать очень жёсткие моды. BDF2 даёт сильное затухание, а для постоянного шага BDF2 A-устойчив: область устойчивости включает всю левую полуплоскость комплексной плоскости. Это защищает линейные затухающие моды от численного роста, но не гарантирует малую ошибку при крупном шаге.

Как пользоваться формулой

  1. Подготовьте известные yₙ и yₙ₋₁; если задача только началась, получите стартовый шаг отдельным методом.
  2. Составьте уравнение 3z−4yₙ+yₙ₋₁=2h f(tₙ₊₁,z) относительно неизвестного z.
  3. Решите уравнение линейным способом или итерационным решателем для нелинейной правой части и оцените невязку.
  4. Примите найденное z за yₙ₊₁, сдвиньте историю на один шаг и повторите расчёт.
  5. Проверяйте локальную ошибку, влияние стартового шага и сходимость внутреннего решателя.

Историческая справка

Обратные формулы дифференцирования развивались как многошаговые схемы для численного решения ОДУ. В 1952 году Кёртис и Хиршфельдер исследовали подходы, ставшие основой семейства backward differentiation formulas, в контексте жёстких дифференциальных задач. В 1960–1970-х Уильям Гир развивал автоматические алгоритмы интегрирования и программы, которые сделали BDF практически важными для вычислений.

BDF2 — конкретная схема второго порядка, полученная из трёхточечной разностной производной. Современные решатели дополнительно оценивают ошибку, адаптируют шаг и порядок и решают внутреннюю систему. Эти части программы не входят в короткую формулу, но необходимы, чтобы применять её надёжно к реальной задаче. Историческая связь с Гиром относится к развитию адаптивных жёстких решателей, а не к авторству каждой формулы BDF.

Историческая линия формулы

BDF-семейство не сводится к одному автору: формулы следуют из многошаговой обратной аппроксимации производной. Работы Кёртиса—Хиршфельдера 1952 года и разработка Гира в 1960–1970-х связаны с анализом жёстких ОДУ и практическими решателями; формула BDF2 здесь отнесена к этой численной традиции.

Пример

Решим y′=−y одним шагом h=1, имея y₀=1 и стартовое y₁=0,5. BDF2 даёт (3y₂−4·0,5+1)/2=−y₂, то есть 3y₂−1=−2y₂ и y₂=0,2. Точное значение y(2)=e⁻²≈0,1353; ошибка около 0,0647. Если вместо грубого старта взять точное y₁=e⁻¹≈0,3679, то y₂=(4e⁻¹−1)/5≈0,0943. Большой шаг даёт заметную ошибку даже при устойчивой схеме, поэтому устойчивость нельзя считать гарантией точности. Размерность левой части — y, делённое на время, как и у f. Невязка уравнения после подстановки найденного y₂ равна нулю в точной арифметике. В реальном расчёте внутренний решатель должен довести её до заданного допуска; нельзя смешивать эту погрешность с ошибкой временной сетки.

Частая ошибка

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

Практика

Задачи с решением

Неявный шаг затухания

Условие. Для уравнения y′=−y при h=1 и известных уровнях y₀=1, y₁=0,5 найдите один следующий шаг BDF2.

Решение. Подстановка даёт (3y₂−4·0,5+1)/2=−y₂. Умножая на 2, получаем 3y₂−1=−2y₂, следовательно 5y₂=1.

Ответ. Неявное уравнение имеет решение y₂=0,2.

Точное постоянное решение

Условие. Проверьте формулу при постоянном решении yₙ₋₁=yₙ=yₙ₊₁=C для правой части f=0.

Решение. Числитель равен 3C−4C+C=0, правая часть также равна нулю.

Ответ. Нулевой числитель совпадает с f=0; постоянный уровень сохраняется точно.

Дополнительные источники

  • https://people.sc.fsu.edu/~jburkardt/classes/math2070_2019/notes/odes.pdf
  • https://ocw.mit.edu/courses/2-086-numerical-computation-for-mechanical-engineers-spring-2013/64e7bed65373841c988a0fd98e1ae16e_MIT2_086S13_Unit4_Textbook.pdf
  • https://collaborate.princeton.edu/en/publications/the-automatic-integration-of-ordinary-differential-equations/

Связанные формулы

Математика

Неявный метод Эйлера: шаг и устойчивость затухания

$y_{n+1}=y_n+h f(t_{n+1},y_{n+1})$

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

Математика

Классический метод Рунге — Кутты четвёртого порядка

$\begin{aligned}k_1&=f(t_n,y_n),&k_2&=f(t_n+h/2,y_n+hk_1/2),\\k_3&=f(t_n+h/2,y_n+hk_2/2),&k_4&=f(t_n+h,y_n+hk_3),\\y_{n+1}&=y_n+\frac h6(k_1+2k_2+2k_3+k_4).\end{aligned}$

Классический RK4 вычисляет четыре наклона за шаг и объединяет их с весами 1:2:2:1. Для гладкой задачи Коши он даёт четвёртый порядок общей ошибки без явного вычисления высших производных.

Математика

Неявная трапециевидная схема Кранка — Николсон для ОДУ

$y_{n+1}=y_n+\frac h2[f(t_n,y_n)+f(t_{n+1},y_{n+1})]$

Неявная трапециевидная схема усредняет производные на концах шага, включая неизвестный новый уровень. Она имеет второй порядок и A-устойчивость, но при крупном шаге затухание может сопровождаться сменой знака.