bilim.techО проекте

Метод Эйлера

Как компьютер решает уравнение, для которого нет формулы? Шагай по касательной, смотри, как копится ошибка, и сравни с методом Рунге-Кутта.

01 Что это такое

Метод Эйлера строит решение шагами: из известной точки идем по касательной на шаг h и повторяем.

У большинства уравнений, которые встречаются в технике, нет готовой формулы решения. Зато уравнение всегда говорит наклон в любой точке. Встанем в начальную точку, узнаем наклон, пройдем по нему маленький шаг. В новой точке узнаем новый наклон и снова шагнем. Получится ломаная, которая идет почти по решению. Каждый шаг немного промахивается, ошибки копятся, но чем мельче шаг, тем ближе ломаная к кривой. Так считают все программы расчета: от тепловой модели двигателя до симулятора гидросистемы.

ty′ = y, y(0) = 1y₁ = 1,51,65y₂ = 2,252,72y₃ = 3,384,48точноЭйлер, h = 0,5
Каждый шаг идет по касательной из своей точки. Экспонента загибается вверх, поэтому касательная всегда проходит под ней, и отставание растет.
h
Шаг. На сколько продвигаемся по t за один раз. Меньше шаг: точнее, но больше вычислений.
yₙ
Приближенное значение решения в узле tₙ = t₀ + n · h. Это не точное y(tₙ), а то, что насчитал метод.
f
Правая часть уравнения y′ = f(t, y). Дает наклон в любой точке, это все, что методу нужно знать.
02 Опыт
Меняй шаг и смотри, как ломаная прижимается к кривой. В жесткой задаче попробуй шаг побольше. ПОШАГОВЫЙ РАСЧЕТ
ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ

Сколько ошибки набирается шаг за шагом?

Рис. 5.4
ЗАДАЧА
Ошибка Эйлера в конце
Ошибка улучшенного метода
Предел устойчивости шага

ⓘ Ошибка считается как разница с точной формулой решения в конце отрезка. Все четыре задачи выбраны так, чтобы точный ответ был известен. Откуда берется уравнение остывания, показано в теме «Рост и распад».

03 Формулы по буквам

Шаг Эйлера, порядок ошибки и идея Рунге-Кутта

Одна строка формулы и есть весь метод. Вторая карточка говорит, как быстро он становится точнее. Третья показывает, как получить гораздо больше точности за те же шаги. Под каждой формулой числа из опыта.

Как сделать один шаг?

yₙ₊₁ = yₙ + h · f(tₙ, yₙ)

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

yₙ
значение в текущем узле
f(tₙ, yₙ)
наклон в текущем узле, берем из уравнения
h · f
прирост за шаг по касательной

Насколько точен ответ?

ошибка ≈ C · h

На одном шаге касательная промахивается примерно на h², потому что кривая загибается. Шагов на отрезке (b − a) / h. Перемножаем и получаем ошибку в конце порядка h. Это метод первого порядка: шаг вдвое меньше, ошибка вдвое меньше, а работы вдвое больше.

C
число, зависит от задачи и длины отрезка
h²
ошибка одного шага
h · λ < 2
условие устойчивости для затухающих задач, λ это скорость затухания

Как точнее при тех же шагах?

yₙ₊₁ = yₙ + h6(k₁ + 2k₂ + 2k₃ + k₄)

Рунге-Кутта 4 на каждом шаге пробует наклон четыре раза: в начале, дважды в середине и в конце, и берет взвешенное среднее. Ошибка становится порядка h⁴: шаг вдвое меньше, ошибка в 16 раз меньше. Метод Хойна проще: среднее двух наклонов, в начале и в конце, ошибка ~ h².

k₁
наклон в начале шага: f(tₙ, yₙ)
k₂, k₃
наклоны в середине шага, каждый уточняет предыдущий
k₄
наклон в конце шага

Откуда берутся формулы и порядок ошибки

По определению производной при малом h верно y(t + h) ≈ y(t) + h · y′(t). Это уравнение касательной из той же темы. А y′ мы знаем из уравнения: y′ = f(t, y). Подставляем и получаем шаг Эйлера. Точнее, y(t + h) = y(t) + h · y′ + (h² / 2) · y″ + ..., и Эйлер отбрасывает слагаемое с h². Это и есть ошибка одного шага.

Если f зависит только от t, шаг Эйлера это прямоугольник под графиком f, а вся ломаная это сумма левых прямоугольников из темы «Интеграл». Метод Хойна в этом случае превращается в формулу трапеций, а Рунге-Кутта 4 в формулу Симпсона. Их сравнение показано в теме «Численное интегрирование».

Неустойчивость видна на уравнении y′ = −λ · y. Шаг Эйлера дает yₙ₊₁ = (1 − h · λ) · yₙ. Если h · λ > 2, множитель по модулю больше 1, и каждая ошибка на шаге растет с переменой знака. Решение затухает, а ломаная раскачивается. Задачи, где есть очень быстрое затухание рядом с медленным процессом, называют жесткими. Для них берут неявные методы, у которых такого предела нет.

Эйлер: 2Хойн: 2,5точно e ≈ 2,72k₁ = 1k₂ = 2h = 1
Один шаг для y′ = y. Хойн берет среднее наклонов в начале (k₁) и в конце шага Эйлера (k₂) и попадает гораздо ближе.
04 Где и зачем это применяют

В каждой программе, которая считает процесс во времени

Допущения модели+

Шаг постоянный на всем отрезке, вычисления идут с двойной точностью, около 16 значащих цифр. Поэтому у Рунге-Кутта 4 при очень мелком шаге ошибка перестает падать: начинает мешать округление. Порядок ошибки h, h², h⁴ проявляется, когда шаг достаточно мал по сравнению с характерным временем задачи. Для жесткой задачи предел устойчивости 2 / λ точный только для линейного уравнения; для нелинейных он оценочный. Настоящие программы выбирают шаг сами, сравнивая два метода разного порядка на каждом шаге.

Еще в направлении «Математика»

Все темы направления «Математика» →