МатВектор

Command Palette

Search for a command to run...

🔢 Численные методы35 минСложность 3/5+65 XP

Численное решение ОДУ: методы Эйлера, Хойна и Рунге–Кутта

Задача Коши численно: схема Эйлера, предиктор-корректор Хойна и классический РК4 с весами 1:2:2:1. Сравнение на y′ = y при h = 0,5 и 0,25, жёсткие уравнения и метод стрельбы.

3 интерактива3 квизаУрок 9 из 11Обновлено 04.10.2026Обычный

Спутник вошёл в верхние слои атмосферы. Известны его координаты и скорость сейчас, известно уравнение движения — а аналитического решения нет и не будет: сопротивление атмосферы зависит от плотности, плотность — от высоты, высота — от решения. Спрашивать у природы формулу бесполезно. Спрашивать нужно по-другому: известна точка и наклон траектории в ней — куда мы попадём через малую долю секунды? Ответив на этот вопрос многократно, получим траекторию по кусочкам. Так работают все численные решатели дифференциальных уравнений — от калькулятора до аэродинамического пакета.

Задача Коши и идея шагов#

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

Методы различаются лишь одним: сколько раз и где спросить наклон внутри шага. Один запрос — Эйлер. Два — Хойн. Четыре — классический Рунге–Кутта. Больше запросов — дороже шаг, но точнее результат; вся классификация методов умещается в этот торг.

Метод Эйлера: ломаная и её цена#

новое значение = старое + наклон в начале шага, умноженный на длину шага

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

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

Улучшенный Эйлер (Хойн): предиктор-корректор#

Ошибка Эйлера — от устаревшего наклона. Логично сначала спрогнозировать конец шага грубо (методом Эйлера), посчитать наклон там, а затем пересчитать шаг по среднему из двух наклонов. Это схема Хойна (она же — улучшенный или модифицированный Эйлер):

предиктор (грубый прогноз) и корректор (пересчёт по среднему наклону)

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

  1. Предиктор: — грубый эйлеровский прогноз на конец шага
  2. Наклон на конце шага:
  3. Корректор: — шаг пересчитан по среднему наклону
  4. Точное : ошибка против эйлеровской — в шесть раз лучше

Классический РК4: четыре наклона#

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

классический метод Рунге–Кутты: веса 1 : 2 : 2 : 1, точность O(h⁴)

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

Кто точнее: сравнение на y′ = y#

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

Метод$y(2)$ при $h = 0{,}5$Ошибка$y(2)$ при $h = 0{,}25$Ошибка
Эйлер5,06252,335,96051,43
Хойн6,97290,4167,26220,127
РК47,38400,00517,38870,00039
Точное решение7,3891—7,3891—
Одинаковый отрезок [0; 2], одинаковые условия — разница в четыре порядка точности
  • Эйлер: ошибка упала в раза при удвоении числа шагов — первый порядок только разгоняется
  • Хойн: падение в раза — второй порядок приближается к своему теоретическому
  • РК4: падение в раз — четвёртый порядок идёт к своему пределу
  • При малых соотношения выравниваются ровно до , и : так на практике проверяют порядок метода

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

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

Жёсткие уравнения: когда явные методы взрываются#

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

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

Практический стандарт для нежёстких задач — адаптивные схемы: пара методов разных порядков (обычно РК4 и РК5, схема Дормана–Принса) считается одновременно, и их разность даёт локальную оценку ошибки без обращения к точному решению — тот же дух, что правило Рунге в численном интегрировании. Шаг автоматически сжимается там, где решение крутое, и растёт на спокойных участках. Именно так работает ode45 в MATLAB и почти любой современный солвер по умолчанию.

Краевые задачи и метод стрельбы: краткий обзор#

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

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

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

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

Один шаг метода Эйлера для , при . Чему равно ?

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

Шаг метода РК4 уменьшили вдвое. Примерно во сколько раз упадёт ошибка?

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

Задача , решается явным Эйлером с шагом . Что произойдёт?

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

Чем улучшенный метод Эйлера отличается от обычного?

Обычный метод Эйлера берёт наклон только в начале шага и имеет точность O(h). Улучшенный (Хойн) делает два прохода: сначала грубо прогнозирует конец шага, потом пересчитывает приращение по среднему из начального и конечного наклонов. Это схема «предиктор-корректор» второго порядка: при удвоении числа шагов ошибка падает примерно вчетверо, цена — два вычисления функции на шаг.

Почему метод Рунге–Кутты четвёртого порядка называют классическим?

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

Что такое жёсткое дифференциальное уравнение простыми словами?

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

Как численно решить краевую задачу для ОДУ?

Два основных пути. Метод стрельбы: угадать недостающее условие в начале (например, наклон), решить задачу Коши методом Рунге–Кутты и подбором угаданного параметра попасть в заданное значение на другом конце. Конечные разности: заменить производные разностями на сетке и свести задачу к системе линейных уравнений. Первый прост и хорош для гладких задач, второй устойчивее для сложных случаев.

Готовитесь к контрольной?

Чеклист тем по «Численные методы»: что вы уже умеете, что повторить и в каком порядке.

Открыть чеклист предмета →

Проверьте себя в бою

Босс-экзамен по «Численные методы»: квизы всех уроков плюс бесконечный поток сгенерированных задач. Каждая попытка — новый расклад.

Начать босс-экзамен →