Метод Эйлера: численное решение ДУ шаг за шагом
Когда формулы нет, ломаная Эйлера выручает. Разбираем алгоритм y(k+1) = y(k) + h·f(x(k), y(k)) руками и на живом симуляторе поля направлений.
Разделяющиеся переменные, Бернулли, полные дифференциалы, характеристические уравнения — впечатляющий арсенал. А теперь неприятная правда: уравнение , выглядящее скромнее всех своих решённых собратьев, не решается в элементарных функциях вообще. Ни один из изученных приёмов не берёт его. Тем не менее инженеры просчитывают подобные уравнения каждую секунду — в автопилотах, прогнозах погоды, расчёте мостов. Их секрет прост: если формулы нет, решение строят по шагам. Первый и самый наглядный численный метод предложил ещё Эйлер.
Идея: идти вдоль поля направлений#
Вспомните картину из первого урока: уравнение задаёт в каждой точке плоскости наклон решения. Точное решение «стекает» вдоль этих чёрточек плавной кривой. Эйлер предложил двигаться грубо, но честно: в текущей точке спросить поле о направлении, сделать шаг прямой линией в этом направлении, снова спросить — и так далее. Получается ломаная, которая имитирует кривую.
Формула до неприличия проста. Наклон в текущей точке умножаем на длину шага — это приращение по вертикали (наклон × пробег). Геометрически: на каждом отрезке ломаная идёт по касательной, проведённой в его начале. Касательная — хорошее приближение недалеко от точки, поэтому ошибка накапливается медленно, если шаг мелкий.
Считаем руками: $y' = x + y$, $y(0) = 1$#
Это уравнение на самом деле линейное и решается точно: (проверьте подстановкой). Нам это на руку — будет с чем сравнивать. Берём шаг и делаем три шага до точки .
| $k$ | $x_k$ | $y_k$ (Эйлер) | $f(x_k, y_k)$ | $y_{k+1} = y_k + 0{,}2f$ |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1,2 |
| 1 | 0,2 | 1,2 | 1,4 | 1,48 |
| 2 | 0,4 | 1,48 | 1,88 | 1,856 |
| — | 0,6 | 1,856 | — | точно: 2,044 |
Погрешность: что происходит при уменьшении шага#
Посчитаем тем же методом то же уравнение с шагом до : получится против точного . Ошибка . Сравните с ошибкой при : шаг уменьшили вдвое — ошибка упала примерно вдвое. Это не совпадение, а закон природы метода Эйлера: его глобальная погрешность имеет первый порядок по шагу, . Хотите точность в 10 раз выше — делайте в 10 раз больше шагов и в 10 раз больше вычислений.
| Метод | Порядок точности | Ошибка в нашем примере ($x = 0{,}6$) |
|---|---|---|
| Эйлер, | ||
| Эйлер, | ||
| улучшенный Эйлер (Хойн), | ||
| точное решение | — |
Строчка про Хойн — это Эйлер с одним хитрым уточнением: сначала сделать черновой шаг по Эйлеру, потом усреднить наклон в начале и в конце отрезка:
Цена — один дополнительный подсчёт на шаг; выигрыш — второй порядок точности : при уменьшении шага вдвое ошибка падает вчетверо. Дальше по этой лестнице стоит классический метод Рунге — Кутты четвёртого порядка () — рабочая лошадка всех инженерных расчётов. Идея у всей лестницы одна: не доверять наклону только в начале шага, а опрашивать поле в нескольких точках внутри него.
Как на практике выбрать шаг
Точного ответа нет, но есть рабочий приём, который называют правилом Рунге: посчитайте решение дважды — с шагом и с шагом — и сравните в общей конечной точке. Большое расхождение означает, что шаг ещё грубый; уменьшайте, пока ответ не перестанет заметно меняться. Если расхождение крошечное — можно, наоборот, укрупнить шаг и сэкономить время счёта. Именно так поступают настоящие солверы: они дробят шаг автоматически там, где решение крутое, и растягивают его на гладких участках.
- Плюсы Эйлера: одна формула, один подсчёт на шаг, работает для любых систем первого порядка, легко программируется даже в таблице
- Минусы: первый порядок точности — много шагов ради точности; на длинных интервалах ошибка накапливается; на жёстких задачах требует запретно малый шаг
- Куда расти: Хойн (порядок 2), Рунге — Кутта 4 (порядок 4), неявные методы для жёстких задач
Два симулятора: линейный и логистический#
Линейный пример выше ведёт себя прилично: чем мельче шаг, тем лучше прилегание. Но у метода Эйлера есть тёмная сторона, которую удобно рассмотреть на нелинейном уравнении. Возьмём логистическое уравнение — модель популяции с пределом роста. Его точное решение при известно: — плавная S-образная кривая, стремящаяся к единице.
Что вы должны были заметить: при грубых шагах ломаная не просто отстаёт — она начинает дрожать вокруг истинного решения, а при совсем грубых улетает. Это вопрос устойчивости численного метода: шаг слишком велик не только неточен, но и меняет качественное поведение решения. Устойчивость — отдельная глава численного анализа, и она же объясняет, почему продвинутые симуляторы не дают вам крутить шаг до бесконечности.
- Эйлер = «иди по касательной в начале шага»: наклон, умноженный на шаг, — приращение
- Ошибка первого порядка : шаг вдвое мельче — ошибка вдвое меньше
- Хойн — Эйлер с усреднением наклона, порядок ; Рунге — Кутта —
- Шаг выбирает правило Рунге: считаем дважды, сравниваем ответы в конце
Мини-прогон для самопроверки: уравнение , , шаг . Первый шаг: . Второй: . Точное значение — ошибка почти пол-единицы всего на двух шагах. Сделайте восемь шагов на бумажке: выйдет , ошибка сжалась почти втрое. Вот вам первый порядок точности вживую.
Формула метода Эйлера для — это...
Методом Эйлера с шагом решают , . Чему равно после первого шага?
Порядок точности метода Эйлера (глобальная погрешность) — это...
Метод Эйлера замыкает курс: от «что такое производная» до симуляций, на которых летают самолёты. Путь был такой: базовые понятия и задача Коши → разделяющиеся переменные → линейные уравнения и Бернулли → полные дифференциалы → высшие порядки → линейная теория с характеристическим уравнением → системы. Каждый тип решался формулой; когда формулы нет, работает Эйлер. Настоятельный совет: вернитесь к симуляторам этого урока и поиграйте с шагом — в методах Эйлера интуиция ценится не меньше формул. А интегралы, из которых всё это выросло, качайте на тренажёре интегралов — там же живёт таблица интегралов.
Частые вопросы
Что такое метод Эйлера простыми словами?
Способ строить приближённое решение ДУ по шагам: в текущей точке вычисляем наклон правой части , делаем небольшой шаг по прямой с этим наклоном и повторяем. Вместо плавной кривой получается ломаная, которая при уменьшении шага прижимается к точному решению.
Почему метод Эйлера даёт ошибку первого порядка?
На каждом шаге ломаная идёт по касательной, а кривая от неё отклоняется на величину порядка (локальная ошибка). За шагов локальные ошибки складываются в глобальную ошибку порядка . Отсюда первый порядок: вдвое мельче шаг — вдвое меньше ошибка.
Чем улучшенный метод Эйлера отличается от обычного?
Он опрашивает поле направлений дважды: сначала делает черновой шаг, потом усредняет наклон в начале и в конце отрезка. Формула Хойна: . Дополнительный подсчёт покупает второй порядок точности .
Может ли метод Эйлера «взорваться» на устойчивой задаче?
Да, если шаг слишком велик. Для уравнения с метод Эйлера устойчив лишь при ; при большем шаге численное решение начинает осциллировать и растёт, хотя точное затухает. Поэтому для жёстких задач используют неявные схемы или методы с контролем шага.
Готовитесь к контрольной?
Чеклист тем по «Диффуры»: что вы уже умеете, что повторить и в каком порядке.
Открыть чеклист предмета →
Проверьте себя в бою
Босс-экзамен по «Диффуры»: квизы всех уроков плюс бесконечный поток сгенерированных задач. Каждая попытка — новый расклад.
Начать босс-экзамен →