МатВектор

Command Palette

Search for a command to run...

🌊 Диффуры

Метод Рунге–Кутты 4 и метод Эйлера: что точнее и когда хватает Эйлера

РК4Эйлер

Коротко: Для обучения, грубых прикидок и ручного счёта хватает Эйлера — он прозрачен и дёшев. Любой численный эксперимент требует РК4: при сопоставимой цене он точнее на порядки. Начинать учить всё равно с Эйлера: на нём видна сама идея шагового интегрирования и происхождение ошибки.

План на семестр Вердикт: с чего начать

Лабораторная по дифференциальным уравнениям. Сосед сдал программу на методе Эйлера, вы написали РК4, а графики у обоих неотличимы от точной кривой. Преподаватель смотрит на ваш код и спрашивает: «Зачем четыре вычисления функции на шаг, если хватает одного?» Вопрос не занудство — за ним стоит вся арифметика численных методов: где именно расходуется точность и что покупается за лишние три вычисления.

Разберём оба метода на задаче, где точный ответ известен наперёд: , , решение . Пройдём отрезок от 0 до 1 шагами 0,1 и 0,05 и сравним с . Урок с основами шагового счёта — метод Эйлера, теория ошибок — в курсе численного решения ОДУ.

КритерийРК4Эйлер
Наклонов на шаг4: k1…k4, взвешенная комбинация1: наклон в начале шага
Локальная ошибка шагаO(h⁵)O(h²)
Глобальная ошибка на отрезкеO(h⁴)O(h)
Шаг вдвое мельче — ошибкаменьше примерно в 16 разменьше примерно в 2 раза
Вычислений f на шаг41
Объём кодаодин шаблон на восемь строктри строки
Типичное применениечисленный эксперимент, отчёты, моделированиеобучение, грубые прикидки, быстрый эскиз решения
РК4 и Эйлер: расклад по точности и цене

Что происходит за один шаг: одна касательная против четырёх проб?#

Эйлер поступает прямолинейно. В начале шага известны точка и наклон — и по этой касательной делается весь шаг:

метод Эйлера: один наклон, измеренный в начале шага, работает на весь отрезок длиной h

Проблема в доверии: наклон в начале шага не обязан совпадать с наклоном в середине или в конце. На выпуклой кривой касательная всё время уходит под график, и ошибка накапливается шаг за шагом. РК4 решает это разведкой: внутри шага делаются четыре пробных вычисления наклона —

четыре пробы: наклон в начале, два наклона в середине (второй — с поправкой от первого), наклон в конце шага
сборка РК4: середина шага весит вдвое больше краёв — та же расстановка весов, что в формуле Симпсона

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

O(h) против O(h⁴): что эти степени дают на практике?#

Сначала разделить два понятия. Локальная ошибка — враньё одного шага; у Эйлера она : касательная отбрасывает все члены ряда Тейлора после первого. Глобальная ошибка — накопленное вранье за шагов; она на один порядок ниже, . У РК4 аналогично: за шаг , за отрезок . Подробная таксономия погрешностей — в уроке источники погрешностей.

Практическое следствие одного абзаца. Уменьшили шаг вдвое: Эйлер станет точнее примерно вдвое, РК4 — примерно в раз. Ниже в числовом эксперименте это видно буквально: ошибки ведут себя как по расписанию.

Честная проверка по бюджету. РК4 тратит четыре вычисления на шаг, Эйлер — одно. Сравним при равном числе вычислений: Эйлер с шагом против РК4 с шагом . На гладких задачах РК4 всё равно впереди на порядки — пробы стоят денег, но покупают порядок. Граница снизу тоже существует: при слишком мелком шаге ошибки округления перестают убывать и начинают расти, поэтому «ещё мельче» не стратегия.

Числовой эксперимент: y′ = y, шаги 0,1 и 0,05#

Точное решение — , на правом конце . Эйлер с шагом 0,1 за шаг умножает на , то есть на 1,1; за десять шагов накапливается :

Эйлер, h = 0,1: ошибка 0,1245 — метод систематически занижает, касательные ползут под выпуклой кривой

Первые шаги показывают механизм: против точных и . Каждый шаг отстаёт чуть больше предыдущего — враньё накапливается.

Теперь первый шаг РК4 при руками. Здесь , поэтому пробы считаются в уме: ; ; ; . Сборка:

первый шаг РК4 против точного e^0,1 = 1,105170918: ошибка 8,5·10⁻⁸ — почти в 60 000 раз меньше ошибки шага Эйлера (0,005171)

Причина прозрачна: для каждый шаг РК4 умножает на —

РК4 для линейной задачи строит многочлен Тейлора экспоненты четвёртой степени; выброшенный остаток даёт O(h⁵) за шаг

Полная таблица на правом конце — и проверка порядков:

Метод и шагy(1)Ошибка
Эйлер, h = 0,12,5937420,1245
Эйлер, h = 0,052,6532980,0650 — меньше в 1,9 раза
РК4, h = 0,12,7182802,1·10⁻⁶
РК4, h = 0,052,71828171,4·10⁻⁷ — меньше в 15,3 раза
y′ = y на [0, 1]: вдвое мельче шаг — Эйлер улучшается ≈2 раза (порядок 1), РК4 ≈16 раз (порядок 4)

Числа подтверждают теорию до мелочей: 0,1245 против 0,0650 — множитель 1,92 вместо идеальных 2 (накинута константа высших порядков), 15,3 вместо 16. На промежуточной точке расклад тот же: Эйлер даёт 1,610510 против точного 1,648721, РК4 — 1,648721, совпадение до шестого знака.

Когда хватает Эйлера, а когда без РК4 не обойтись?#

Эйлера достаточно в трёх ситуациях. Первая — обучение: только на нём руками видна механика шагового интегрирования, поле направлений и изоклины, поведение решения на фазовой плоскости. Вторая — грубые прикидки: когда решение смотрят глазами, а шаг и так берут мелким, четырёхкратная цена РК4 не окупается. Третья — строительный блок: Эйлер сидит внутри предиктор-корректорных схем как этап прогноза, и в этом качестве везде.

РК4 нужен там, где по цифрам принимают решения. Численный эксперимент с отчётными графиками: ошибка первого порядка на длинном отрезке способна исказить вывод целиком. Дорогая правая часть: если одно вычисление стоит секунд, выгоднее взять метод, который при том же бюджете вычислений даёт больше точности. Сравнение с точным решением, проверка теории устойчивости, моделирование — везде порядок четыре окупается. Живой разбор постановок — в разборе задач по дифурам.

Оговорка, которую любят терять: на жёстких задачах бессильны оба. Если решение содержит процессы сильно разных скоростей, явные методы — и Эйлер, и РК4 — вынуждены брать шаг по самому быстрому процессу ради устойчивости, даже когда тот давно затух. Выход — неявные схемы, где шаг ограничен точностью, а не устойчивостью; это уже следующая глава теории. Мостик к ней — урок устойчивость решений.

Что сложнее и что учить сначала?#

Освоить Эйлера — вечер: три строки кода и одна картинка с касательной. РК4 требует аккуратности в индексах — каждый использует предыдущий, — но реализуется один раз по шаблону и дальше живёт в библиотеке. Настоящая ловушка другая: РК4 легко скопировать как «чёрный ящик» и не понимать, откуда берётся ошибка и почему метод внезапно ломается на негладкой правой части. Поэтому порядок изучения не обсуждается: сначала Эйлер, потом РК4.

  1. Шаг 1: посчитать y′ = y методом Эйлера вручную три шага с h = 0,1 и сверить с e^0,1, e^0,2, e^0,3 — увидеть накопление занижения.
  2. Шаг 2: выписать, откуда берётся O(h²) — ряд Тейлора и выброшенные слагаемые; без этого РК4 останется магией.
  3. Шаг 3: реализовать РК4 по шаблону k1–k4 и прогнать ту же задачу: y(1) при h = 0,1 должно выйти 2,718280 — это готовый тест вашей программы.
  4. Шаг 4: сравнить оба метода на графике при грубом шаге h = 0,5 — Эйлер заметно врёт, РК4 держится; так глазами видна цена порядка.
  5. Шаг 5: уменьшить шаг вдвое и сверить с таблицей выше: ошибки должны упасть в 2 раза у Эйлера и в ~16 раз у РК4.
  6. Дальше: жёсткие задачи и неявные схемы — следующий виток, где оба явных метода одинаково беспомощны.
Проверь себя+15 XP

Решаем y′ = y методом Эйлера с шагом h. Во сколько раз примерно уменьшится глобальная ошибка на отрезке, если шаг сделать вдвое меньше?

Проверь себя+15 XP

Что именно вычисляет величина k2 в методе Рунге–Кутты 4?

Частые вопросы

Почему РК4 настолько точнее, хотя вычислений функции всего вчетверо больше?

Точность определяется не числом проб, а тем, какая комбинация наклонов усредняется. Четыре пробы РК4 устроены так, что после сборки выброшенные члены разложения начинаются с h⁵ — против h² у Эйлера. Платой стали четыре вычисления f и восемь строк кода, а выигрыш — четыре порядка точности на гладких задачах.

Чем метод Эйлера с пересчётом (Эйлера–Коши) отличается от РК4?

Схема с пересчётом берёт наклон в начале шага, делает прогноз, измеряет наклон в прогнозной точке и усредняет два значения. Это второй порядок при двух вычислениях f — середина между Эйлером и РК4. РК4 продолжает ту же логику на два уровня дальше и добавляет пробу в конце шага.

Что такое жёсткая задача и почему на ней бессильны оба метода?

Жёсткая задача содержит процессы сильно разных скоростей — типичный пример химическая кинетика. Явные методы вынуждены выбирать шаг по самому быстрому процессу ради устойчивости, даже если тот давно затух: Эйлер и РК4 сходятся мучительно медленно при почти нулевой точности. Выход — неявные схемы, где шаг ограничен точностью, а не устойчивостью.

Как на практике выбрать шаг h?

Рабочий приём — удвоение: посчитать с шагом h и h/2, сравнить результаты. Для Эйлера разница даёт грубую оценку накопленной ошибки, для РК4 сравнение h, h/2, h/4 проверяет порядок 16. В готовых библиотеках шаг выбирает автоматика: локальная ошибка оценивается на каждом шаге, и h подстраивается — так работают адаптивные методы типа РК45.

Дальше по теме: шаговые методы с нуля — урок метод Эйлера, постановка задач — дифференциальные уравнения первого порядка; теория погрешностей и жёсткость — численное решение ОДУ и источники погрешностей. Формулы для повторения собраны в шпаргалке по дифурам.