Методы Рунге—Кутты: от RK2 до RK4 — схема, порядок, выбор шага
Четыре наклона на шаг дают ошибку порядка h⁴: один шаг RK4 по y' = y точнее двадцати шагов Эйлера. Разбираем схему руками, сравниваем методы и учимся выбирать шаг правилом Рунге.
В уроке про метод Эйлера мы посчитали с шагом и накопили ошибку . Инженер говорит: «нужно в сто раз точнее» — и у Эйлера только один ответ: в сто раз больше шагов. Платить сотней вычислений за качество — расточительно, тем более что наклон на каждом шаге Эйлер берёт в одной-единственной точке, в самом начале отрезка. Рунге и Кутта в конце XIX века задались вопросом: а если опросить поле направлений в нескольких точках внутри шага и составить наклоны с весами? Ответ превзошёл ожидания: четыре грамотно расставленных вычисления дают ошибку порядка — шаг крупнее в 16 раз за ту же точность, а выигрыш растёт с каждым порядком.
Лестница порядков: от Эйлера до RK4#
Все методы семейства выглядят одинаково: шаг складывается из взвешенной суммы наклонов , вычисленных в специально подобранных точках внутри шага. Разница — в количестве опросов и весах. Эйлер: один наклон в начале, веса . Улучшенный Эйлер (метод Хойна): черновой шаг, затем среднее наклонов в начале и в конце — точность . Ещё один второй порядок — метод средней точки: наклон в середине отрезка, оценённый по черновому шагу. Далее RK3, и наконец классика:
Прочитаем схему как маршрут: — наклон в начале шага; — наклон в середине, куда добрались полушагом по ; — снова середина, но уже с уточнённым подъёмом по ; — наклон в конце, куда ведёт весь шаг по . Итог — средневзвешенное с весами , делённое на 6. Каждый использует предыдущий, а не следующий — перепутать порядок значений и местами — типичная ошибка программирования, которая тихо портит точность до второго порядка.
Веса не случайны: это правило Симпсона из численного интегрирования — средневзвешенное значений функции в начале, двух серединных и конце. RK4 и есть численное интегрирование равенства по Симпсону, где подынтегральная функция сама зависит от решения. Вся современная теория одностадийных методов упакована в таблицу Бутчера — компактную запись коэффициентов, из которой читается и порядок, и условия согласования; четырёхстадийная схема выше — самый знаменитый член этого семейства.
Один шаг руками: $y' = y$, $y(0) = 1$, $h = 0{,}5$#
Задача скромная, точное решение известно: в точке оно равно . Прогоним один шаг RK4 на бумажке — и сравним с конкурентами.
| Метод | Вычислений $f$ на шаг | Результат при $h = 0{,}5$ | Ошибка |
|---|---|---|---|
| Эйлер | 1 | 1,500 | 0,149 |
| Хойн (RK2) | 2 | 1,625 | 0,024 |
| RK4 | 4 | 1,6484 | 0,0003 |
| точно | — | 1,6487 | — |
Порядок точности: что даёт четвёрка#
Глобальная погрешность RK4 имеет порядок : при уменьшении шага вдвое ошибка падает в раз. Проверим на нашей задаче: один шаг дал ошибку ; два шага дают около — падение в 16 раз, закон подтверждается. Сравните с Эйлером, где шаг вдвое мельче покупает лишь вдвое меньшую ошибку: за пятнадцать порядков точности в этом споре спрос четырёхкратный, а выигрыш — шестнадцатикратный за шаг.
Откуда берётся четвёртый порядок? Разложение точного решения по Тейлору до содержит производные решения до четвёртой, а схему можно настроить так, чтобы её собственное разложение совпало с тейлоровским до включительно — условия согласования дают систему на коэффициенты метода. Гений Рунге и Кутты — в подборе таких коэффициентов, при которых совпадение достигается всего четырьмя вычислениями : наивный путь требовал бы дифференцировать по всем переменным, что на практике катастрофа. Симулятор ниже — то же поле направлений, что и в уроке Эйлера, только теперь вы знаете, что между ломаной и кривой прячется ещё и четырёхточечная схема, которая прилипает к истине на глазах.
Когда формулы нет: RK4 как стандарт#
Уравнение не решается в элементарных функциях — и таких уравнений в прикладных задачах большинство. Именно для них и придумано всё численное хозяйство. Прогоните симулятор: поле направлений искривляется, ломаная Эйлера при грубом шаге заметно «сползает» с истинного русла, а там, где решение круто меняется, мелкий шаг становится вопросом выживания.
Для систем уравнений — а системы ДУ и есть норма в приложениях — схема не меняется: все величины становятся векторами, возвращает вектор, считаются покомпонентно. Именно в векторном виде RK4 зашит в MATLAB (ode45 — на деле адаптивный Рунге—Кутта—Фельдберг), в SciPy (solve_ivp) и в половине симуляторов физики в играх.
Как выбирать шаг: правило Рунге#
Точную ошибку численник не знает — иначе был бы не численник. Но есть честная оценка. Посчитайте решение дважды: с шагом и с шагом до одной и той же конечной точки. Расхождение ответов связано с ошибкой мелкого прогона:
Логика та же, что у экстраполяции Ричардсона: ошибка метода порядка — это , и из двух прогонов константа выпаливается делением. Если много больше требуемой точности — дробите шаг; если много меньше — можно укрупнить и сэкономить время. Профессиональные солверы делают это автоматически на каждом шаге, и техника управления шагом там устроена ещё хитрее (встроенная оценка ошибки из пары методов разного порядка, как в RK45). Тот же критерий сходимости при дроблении работает и в разностных схемах для уравнений в частных производных — там о разности порядков и устойчивости разностной схемы спрашивают так же регулярно.
- RK4: четыре вычисления , веса , делённые на 6; глобальная ошибка
- Шаг вдвое мельче — ошибка в 16 раз меньше; у Эйлера только в 2, у Хойна в 4
- считаются последовательно: каждый использует предыдущий, а не черновой
- Шаг выбирает правило Рунге: два прогона, расхождение, делённое на , — оценка ошибки
Границы применимости тоже стоит знать. Жёсткие задачи — системы с сильно разными скоростями процессов (химическая кинетика, схемы с очень разными постоянными времени) — требуют шага, диктуемого самым быстрым процессом; явные методы на них разоряются, и берут неявные варианты Рунге—Кутты. Вторая тонкость — долгие расчёты механических систем: классический RK4 не сохраняет энергию и фазовый объём, накопительный дрейф лечится симплектическими методами — отдельной ветвью того же семейства, которой пользуются при интегрировании орбит на миллиарды шагов.
Сколько вычислений правой части делает один шаг классического RK4?
Во сколько раз уменьшится ошибка RK4 при уменьшении шага с до ?
Прогоны с шагами и разошлись на . Оцените ошибку мелкого прогона RK4 по правилу Рунге.
Частые вопросы
Чем RK4 отличается от метода Хойна?
Числом опросов поля и порядком. Хойн делает черновой шаг и усредняет наклон в начале и в конце — два вычисления , порядок . RK4 опрашивает поле четыре раза — начало, середина дважды, конец — и за счёт согласования коэффициентов поднимает порядок до . Веса — структура правила Симпсона.
Почему веса именно 1, 2, 2, 1?
Это коэффициенты квадратуры Симпсона: интеграл по отрезку приближается взвешенной суммой значений в начале, двух серединных точках и конце с весами , делёнными на 6. В RK4 два средних наклона считаются в одной точке, поэтому веса 4 слились в . Совпадение не случайно: метод и строится как интегрирование по Симпсону с учётом зависимости от решения.
Всегда ли лучше метод выше порядка?
Не всегда. Чем выше порядок, тем дороже шаг и тем чувствительнее метод к гладкости правой части: при разрывной высокие порядки теряют силу, и простой Эйлер с мелким шагом может быть честнее. Для жёстких систем явные методы любого порядка проигрывают неявным. RK4 — компромисс по умолчанию, но не универсальный ответ.
Как RK4 применяется к системам уравнений?
Формулы не меняются: становится вектором, возвращает вектор, все — векторы, вычисляемые покомпонентно. На каждом шаге те же четыре вычисления правой части, просто правая часть объёмнее. Так решаются и системы из теории систем ДУ, и уравнения высоких порядков после сведения к системе первых.
Готовитесь к контрольной?
Чеклист тем по «Диффуры»: что вы уже умеете, что повторить и в каком порядке.
Открыть чеклист предмета →
Проверьте себя в бою
Босс-экзамен по «Диффуры»: квизы всех уроков плюс бесконечный поток сгенерированных задач. Каждая попытка — новый расклад.
Начать босс-экзамен →