Методы Рунге — Кутты
Методы Рунге — Кутты — это семейство численных алгоритмов для решения задачи Коши для обыкновенных дифференциальных уравнений (ОДУ). Они относятся к классу одношаговых методов, то есть для вычисления приближённого значения решения в следующей точке сетки используется информация только о текущей точке, без обращения к предыдущим. Методы получили широкое распространение благодаря хорошему сочетанию точности, устойчивости и простоты реализации, особенно в виде классического метода Рунге — Кутты четвёртого порядка (часто обозначаемого RK4).
История
Основы методов были заложены в конце XIX — начале XX века. В 1895 году немецкий математик Карл Рунге опубликовал работу, в которой предложил первые явные схемы численного интегрирования ОДУ, основанные на разложении в ряд Тейлора и аппроксимации производных с помощью взвешенных сумм значений функции в нескольких промежуточных точках. В 1901 году другой немецкий математик, Мартин Вильгельм Кутта, существенно обобщил и систематизировал подход Рунге, разработав методы более высоких порядков точности, включая классический метод четвёртого порядка. Впоследствии, в середине XX века, норвежские математики Карл Хейн и Эрнст Рунге (не путать с Карлом Рунге) внесли вклад в развитие методов с контролем шага, а также в теорию устойчивости. В 1960-е годы были разработаны неявные методы Рунге — Кутты, которые обладают лучшей устойчивостью для жёстких систем уравнений.
Основная идея и общая формулировка
Пусть требуется решить задачу Коши:
\[ \frac{dy}{dt} = f(t, y), \quad y(t_0) = y_0, \]
где \(y(t)\) — искомая функция, \(f(t, y)\) — известная функция, \(t\) — независимая переменная (время), \(y_0\) — начальное условие.
Метод Рунге — Кутты строит приближённое решение \(y_{n+1}\) в точке \(t_{n+1} = t_n + h\) (где \(h\) — шаг интегрирования) по формуле:
\[ y_{n+1} = y_n + h \sum_{i=1}^{s} b_i k_i, \]
где \(s\) — число стадий (этапов) метода, \(b_i\) — весовые коэффициенты, а \(k_i\) — приращения, вычисляемые последовательно:
\[ k_i = f\left(t_n + c_i h, \; y_n + h \sum_{j=1}^{i-1} a_{ij} k_j\right), \quad i = 1, \dots, s. \]
Здесь \(c_i\) — узлы (точки внутри шага), \(a_{ij}\) — коэффициенты, определяющие взаимосвязь между стадиями. Совокупность коэффициентов \(a_{ij}\), \(b_i\) и \(c_i\) задаётся так называемой таблицей Бутчера (Butcher tableau), которая однозначно описывает конкретный метод.
Классификация
Явные и неявные методы
- Явные методы (Explicit Runge-Kutta, ERK) — в них матрица коэффициентов \(a_{ij}\) является строго нижнетреугольной (\(a_{ij} = 0\) при \(j \ge i\)). Это означает, что каждая следующая стадия \(k_i\) вычисляется только через уже известные предыдущие. Явные методы просты в реализации, но имеют ограниченную область устойчивости, что накладывает ограничения на величину шага \(h\) для жёстких систем.
- Неявные методы (Implicit Runge-Kutta, IRK) — в них матрица \(a_{ij}\) не является нижнетреугольной, и для нахождения \(k_i\) требуется решать систему алгебраических (или трансцендентных) уравнений на каждом шаге. Неявные методы, как правило, обладают лучшей устойчивостью и могут использовать большие шаги для жёстких задач, но требуют больше вычислительных ресурсов на один шаг.
По порядку точности
Порядок точности метода \(p\) означает, что локальная погрешность на одном шаге пропорциональна \(h^{p+1}\). Наиболее распространённые порядки:
- Первый порядок: метод Эйлера (частный случай Рунге — Кутты с одной стадией, \(s=1\)).
- Второй порядок: например, метод Хойна (Heun's method) или метод средней точки.
- Третий порядок: методы, использующие три стадии.
- Четвёртый порядок: классический метод RK4 (четыре стадии) — самый популярный на практике.
- Пятый и выше: методы более высоких порядков (например, RK5, RK6, RK8) требуют большего числа стадий и используются для задач, требующих высокой точности.
Методы с переменным шагом
Для автоматического контроля погрешности разработаны вложенные методы (embedded methods), в которых на одном наборе стадий вычисляются два приближения разного порядка (например, 4-го и 5-го). Разность между ними используется для оценки локальной погрешности и адаптивного изменения шага \(h\). Наиболее известны методы Рунге — Кутты — Фельберга (RKF45) и Дорманда — Принса (DOPRI5, DOPRI8).
Классический метод Рунге — Кутты четвёртого порядка (RK4)
Это наиболее часто используемый представитель семейства. Для шага \(h\) вычисления проводятся в четыре этапа:
- \(k_1 = f(t_n, y_n)\)
- \(k_2 = f\left(t_n + \frac{h}{2}, y_n + \frac{h}{2} k_1\right)\)
- \(k_3 = f\left(t_n + \frac{h}{2}, y_n + \frac{h}{2} k_2\right)\)
- \(k_4 = f\left(t_n + h, y_n + h k_3\right)\)
Затем:
\[ y_{n+1} = y_n + \frac{h}{6} (k_1 + 2k_2 + 2k_3 + k_4). \]
Метод имеет локальную погрешность \(O(h^5)\) и глобальную — \(O(h^4)\). Он устойчив для нежёстких задач и широко применяется в физике, инженерии, экономике и других областях.
Устойчивость
Устойчивость методов Рунге — Кутты анализируется с помощью тестового уравнения \(y' = \lambda y\), где \(\lambda\) — комплексное число. Область устойчивости — множество значений \(z = h\lambda\), при которых численное решение не расходится. Для явных методов область устойчивости ограничена, что делает их непригодными для жёстких систем (где \(\lambda\) имеет большую отрицательную действительную часть). Неявные методы, особенно с диагонально-неявной структурой (SDIRK, ESDIRK), могут быть A-устойчивыми или L-устойчивыми, то есть сохранять устойчивость при любом шаге для жёстких задач.
Применение
Методы Рунге — Кутты используются в самых разных областях:
- Физика и механика: моделирование движения тел, колебаний, электрических цепей, теплопередачи.
- Астрономия и космонавтика: расчёт траекторий небесных тел, орбитальных манёвров.
- Химическая кинетика: решение систем дифференциальных уравнений, описывающих скорости химических реакций.
- Биология и экология: моделирование популяционной динамики (уравнения Лотки — Вольтерры), распространения эпидемий.
- Экономика и финансы: модели роста, динамики цен, стохастические дифференциальные уравнения (в сочетании с методами Монте-Карло).
- Техника и инженерия: системы управления, робототехника, аэродинамика.
Ограничения и критика
- Затраты на вычисление: для высоких порядков требуется много вычислений функции \(f\) на каждом шаге, что может быть дорого для сложных систем.
- Чувствительность к жёсткости: явные методы непригодны для жёстких задач без специальной адаптации шага. Для таких задач предпочтительны неявные методы или методы, специально разработанные для жёстких систем (например, методы Гира, BDF).
- Отсутствие строгой оценки глобальной погрешности: методы с контролем шага дают оценку локальной, но не глобальной ошибки, что может приводить к накоплению погрешности на длинных интервалах интегрирования.
- Необходимость выбора шага: слишком большой шаг ведёт к потере точности, слишком малый — к избыточным вычислениям и накоплению ошибок округления.
Интересные факты
- Метод RK4 настолько популярен, что часто по умолчанию подразумевается под термином «метод Рунге — Кутты», хотя семейство включает сотни различных схем.
- В 1990-е годы были разработаны симплектические методы Рунге — Кутты, которые сохраняют геометрические свойства (например, фазовый объём) гамильтоновых систем, что важно для долговременного моделирования в небесной механике.
- Современные численные библиотеки (например, SciPy, MATLAB, GNU Octave) содержат встроенные реализации методов Рунге — Кутты с адаптивным шагом, такие как
ode45(Dormand-Prince 5(4)) иode23(Bogacki-Shampine 3(2)).
Источники
- Hairer, E., Nørsett, S. P., Wanner, G. Solving Ordinary Differential Equations I: Nonstiff Problems. — Springer, 1993.
- Butcher, J. C. Numerical Methods for Ordinary Differential Equations. — Wiley, 2008.
- Press, W. H., Teukolsky, S. A., Vetterling, W. T., Flannery, B. P. Numerical Recipes: The Art of Scientific Computing. — Cambridge University Press, 2007.
- Калиткин, Н. Н. Численные методы. — М.: Наука, 1978.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →