Метод Рунге – Кутты 4 порядка: формулы и пример

Метод Рунге – Кутты 4 порядка: формулы коэффициентов k1–k4, алгоритм шага и два разобранных примера с таблицей. Сравнение с Эйлером и проверка ответа.

Обновлено 8 мин чтенияВысшая математика
Крупный план разноцветного программного кода на тёмном экране монитора

Что такое метод Рунге – Кутты 4 порядка?

Метод Рунге – Кутты 4 порядка — это способ приближённо решить задачу Коши y′ = f(x, y), y(x₀) = y₀ шагами длины h. На каждом шаге считаются четыре наклона k₁, k₂, k₃, k₄ в разных точках отрезка, а новое значение берётся как взвешенное среднее: yₙ₊₁ = yₙ + (h/6)·(k₁ + 2k₂ + 2k₃ + k₄). Погрешность на всём отрезке порядка h⁴, поэтому метод намного точнее Эйлера.

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

Метод обычно подают одной строкой формул: четыре коэффициента, четыре пары аргументов и дробь с шестёркой. Студент переписывает всё с доски, а дома не понимает, что подставлять в k₂ и откуда там взялось h/2. Ещё хуже, когда в контрольной нужно сделать три-четыре шага: одна арифметическая ошибка тянется по таблице дальше, и итоговое число уже никуда не годится.

Хорошая новость: в методе нет ни одной хитрой идеи, которую нужно угадывать. Это просто четыре раза посчитанная правая часть уравнения f(x, y) в строго заданных точках. Если держать в голове картинку «смотрю наклон в начале шага, дважды в середине и в конце», формулы перестают быть набором символов. Остаются аккуратность и порядок записи вычислений.

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

Откуда берутся формулы и что означают k₁, k₂, k₃, k₄?

Идея такая. На отрезке от xₙ до xₙ₊₁ = xₙ + h приращение решения yₙ₊₁ − yₙ равно интегралу от f(x, y(x)) по этому отрезку. Если считать f постоянной, как в методе Эйлера, получится грубое приближение. Метод Рунге – Кутты усредняет значения f в нескольких точках отрезка, примерно как формула Симпсона для обычного интеграла: концы получают вес 1, а середина суммарный вес 4. Отсюда числа 1, 2, 2, 1 и делитель 6. Если f зависит только от x, шаг метода в точности совпадает с формулой Симпсона.

Теперь смысл каждого коэффициента. Число k₁ — наклон в начале шага: k₁ = f(xₙ, yₙ). Число k₂ — наклон в середине, если дойти туда по k₁: k₂ = f(xₙ + h/2, yₙ + (h/2)·k₁). Число k₃ — снова наклон в середине, но уже с поправкой по k₂: k₃ = f(xₙ + h/2, yₙ + (h/2)·k₂). Число k₄ — наклон в конце шага, если дойти туда по k₃: k₄ = f(xₙ + h, yₙ + h·k₃).

Итоговая формула: yₙ₊₁ = yₙ + (h/6)·(k₁ + 2k₂ + 2k₃ + k₄). Обрати внимание: внутри скобок стоят сами k, а шаг h умножается один раз, снаружи. Это самая частая путаница. Порядок 4 означает, что при уменьшении шага вдвое ошибка падает примерно в 16 раз, а у метода Эйлера только вдвое.

Как метод Рунге – Кутты связан с методом Эйлера?

Метод Эйлера — самый короткий вариант той же идеи: берётся один наклон k₁ = f(xₙ, yₙ) в начале шага, и новое значение равно yₙ + h·k₁. Он имеет первый порядок, и его погрешность на всём отрезке пропорциональна h. Чтобы получить точность 0,001, шаг часто приходится брать очень мелким, а значит, делать сотни вычислений там, где Рунге – Кутте хватит десятка.

Если добавить второй наклон в середине шага, получится метод второго порядка, а четыре наклона с весами 1, 2, 2, 1 дают четвёртый. Поэтому «метод Рунге – Кутты» — это целое семейство. Методов 4 порядка в нём тоже несколько, но когда в задаче просто написано «4 порядка», имеют в виду классический вариант, то есть формулы из этой статьи. Метод Эйлера в этом семействе стоит первым, как частный случай с единственным коэффициентом.

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

Как сделать один шаг метода Рунге – Кутты по алгоритму?

Дано: уравнение y′ = f(x, y), начальное условие y(x₀) = y₀ и шаг h. Каждый шаг выполняется в одном и том же порядке. Сначала запиши xₙ и yₙ. Потом посчитай k₁ = f(xₙ, yₙ). Затем k₂, подставив в f точку (xₙ + h/2, yₙ + (h/2)·k₁), после этого k₃ с точкой (xₙ + h/2, yₙ + (h/2)·k₂) и, наконец, k₄ с точкой (xₙ + h, yₙ + h·k₃).

Дальше собери итог: сложи k₁, удвоенные k₂ и k₃ и k₄, умножь сумму на h/6 и прибавь к yₙ. Получится yₙ₊₁ в точке xₙ₊₁ = xₙ + h. Новая пара (xₙ₊₁, yₙ₊₁) становится началом следующего шага, и так до нужного x. Количество шагов равно длине отрезка, делённой на h. Например, чтобы дойти от x = 0 до x = 1 с шагом 0,1, понадобится ровно десять шагов, и в каждом из них четыре подстановки в f.

Два практических совета. Первый: держи в каждом k на два-три знака больше, чем нужно в ответе, иначе округления съедят точность метода. Второй: оформляй вычисления таблицей со столбцами n, xₙ, yₙ, k₁, k₂, k₃, k₄. Тогда каждую строку можно перепроверить отдельно, не пересчитывая всё с начала, и ошибка не уйдёт в следующие шаги.

Как решить пример y′ = x + y, y(0) = 1 с шагом h = 0,1?

Найдём y(0,1) и y(0,2). Здесь f(x, y) = x + y, x₀ = 0, y₀ = 1, h = 0,1. Первый шаг. Считаем k₁ = f(0; 1) = 0 + 1 = 1. Для k₂ берём x = 0,05 и y = 1 + 0,05·1 = 1,05, значит k₂ = 0,05 + 1,05 = 1,1. Для k₃ берём y = 1 + 0,05·1,1 = 1,055, значит k₃ = 0,05 + 1,055 = 1,105.

Для k₄ берём x = 0,1 и y = 1 + 0,1·1,105 = 1,1105, значит k₄ = 0,1 + 1,1105 = 1,2105. Собираем итог: k₁ + 2k₂ + 2k₃ + k₄ = 1 + 2,2 + 2,21 + 1,2105 = 6,6205. Тогда y₁ = 1 + (0,1/6)·6,6205 ≈ 1,110342. Точное решение этого линейного уравнения: y = 2eˣ − x − 1, и y(0,1) ≈ 1,110342 совпадает с нашим числом до шестого знака. Эйлер дал бы только 1,1.

Второй шаг: x₁ = 0,1, y₁ = 1,110342. Получаем k₁ = 1,210342; k₂ = 0,15 + (1,110342 + 0,05·1,210342) = 1,320859; k₃ = 0,15 + (1,110342 + 0,05·1,320859) = 1,326385; k₄ = 0,2 + (1,110342 + 0,1·1,326385) = 1,44298. Сумма k₁ + 2k₂ + 2k₃ + k₄ ≈ 7,94781, поэтому y₂ = 1,110342 + (0,1/6)·7,94781 ≈ 1,24281. Точное значение: 2·1,221403 − 1,2 ≈ 1,24281. Эйлер с тем же шагом дал бы 1,22.

Чем метод Рунге – Кутты лучше Эйлера на примере y′ = y?

Возьмём самое простое уравнение y′ = y с условием y(0) = 1. Точное решение y = eˣ, нам нужно y(1) = e ≈ 2,718282. Выберем очень грубый шаг h = 0,5 и сделаем два шага. Метод Эйлера на каждом шаге умножает y на 1 + h = 1,5, поэтому y(1) ≈ 1,5² = 2,25. Ошибка составляет около 0,47, то есть около шестой части ответа.

Теперь Рунге – Кутта. Для f = y и y₀ = 1 получаем: k₁ = 1; k₂ = 1 + 0,25·1 = 1,25; k₃ = 1 + 0,25·1,25 = 1,3125; k₄ = 1 + 0,5·1,3125 = 1,65625. Сумма k₁ + 2k₂ + 2k₃ + k₄ = 1 + 2,5 + 2,625 + 1,65625 = 7,78125. Умножаем на h/6 = 1/12: 7,78125/12 = 0,6484375. Значит, y₁ = 1 + 0,6484375 = 1,6484375.

Для этого уравнения каждый шаг просто умножает y на число 1,6484375, поэтому y(1) ≈ 1,6484375² ≈ 2,71735. Ошибка около 0,0009 при том, что шаг огромный. Эйлер ошибся на 0,47, то есть примерно в 500 раз сильнее. Видно, зачем нужны четыре вычисления f на шаг: за ту же длину отрезка точность вырастает на несколько порядков.

Как выбрать шаг h и оценить погрешность метода?

Шаг выбирают из компромисса. Чем меньше h, тем точнее ответ, но тем больше шагов и арифметики. В учебных задачах h обычно дан в условии: 0,1 или 0,2. Если выбор за тобой, начни с такого h, при котором на отрезке выходит 5–10 шагов, и посмотри, насколько меняется результат при уменьшении шага вдвое.

Простая оценка точности называется правилом Рунге. Посчитай значение в конечной точке дважды: с шагом h и с шагом h/2. Пусть Y₁ — результат с шагом h, а Y₂ — с шагом h/2. Тогда погрешность Y₂ примерно равна |Y₂ − Y₁|/15. Число 15 для метода 4 порядка равно 2⁴ − 1. Если оценка меньше нужной точности, шаг подходит.

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

Что делать, если ответ по методу Рунге – Кутты не сходится?

Типичных причин пять. Первая: подставил в k₂ и k₃ полный шаг h вместо h/2. Вторая: в k₄ взял h/2 вместо h. Третья: сдвинул y, но забыл сдвинуть x на h/2 или h, а это важно, когда f зависит от x, как в примере y′ = x + y. Четвёртая: умножил на h/6 каждое k по отдельности, а потом ещё раз всю сумму. Пятая: слишком рано округлил промежуточные числа. Пройди по этим пунктам, и ошибка обычно найдётся за пару минут.

Можно ли считать метод Рунге – Кутты без калькулятора? Зависит от преподавателя и от задачи. Два-три шага для простого уравнения, как в наших примерах, вполне решаются на бумаге. Если просят таблицу из десяти шагов, обычно разрешают вычислительную технику. Уточни формат заранее, а на практике тренируйся считать столбиком: так вырабатывается порядок записи, который не даёт путаться.

Итог. Метод Рунге – Кутты 4 порядка — это четыре наклона k₁–k₄ и одна формула с весами 1, 2, 2, 1. Реши два-три примера руками, а потом сверь таблицу с калькулятором Prepodoff: он решает дифуры пошагово и строит график. А чтобы не пропустить контрольную по численным методам, добавь её в «Мой план» в Telegram — это бесплатный планировщик студента с напоминаниями и ИИ-тренером, который составит план подготовки к экзамену.

Была полезна статья?

Читайте также

Пригодится для подготовки