В классической механике движение материальной точки или системы точек описывается дифференциальными уравнениями второго порядка, вытекающими из законов Ньютона:
$$ m \frac{d^2 \mathbf{r}}{dt^2} = \mathbf{F}(\mathbf{r}, \mathbf{v}, t), $$
где r — радиус-вектор точки, v = dr/dt — скорость, m — масса, F — сила, действующая на точку.
В большинстве случаев аналитическое решение этих уравнений невозможно, поэтому прибегают к численным методам интегрирования.
Основная идея численного интегрирования состоит в разбиении временного интервала [t0, tf] на маленькие шаги Δt:
tn = t0 + nΔt, n = 0, 1, 2, …, N,
где $N = \frac{t_f - t_0}{\Delta t}$.
В каждый момент времени рассчитываются приближенные значения координат rn и скоростей vn.
Наиболее простой и наглядный метод — метод Эйлера. Он основан на аппроксимации производной разностным выражением:
$$ \mathbf{v}_{n+1} = \mathbf{v}_n + \frac{\mathbf{F}_n}{m} \Delta t, $$
rn + 1 = rn + vnΔt.
Ключевые моменты:
Метод Эйлера хорошо подходит для понимания принципов, но редко используется в профессиональных расчетах из-за низкой точности.
Для систем с консервативной силой часто используют модификацию Эйлера — метод Эйлера–Кромера. Разница в том, что координаты обновляются с использованием уже обновленных скоростей:
$$ \mathbf{v}_{n+1} = \mathbf{v}_n + \frac{\mathbf{F}_n}{m} \Delta t, $$
rn + 1 = rn + vn + 1Δt.
Это обеспечивает лучшую сохранность энергии в системах с малой потерей энергии, например, при моделировании колебаний.
Для динамических систем с консервативными силами широко применяется метод Верле, который обладает высокой точностью и устойчивостью. Существуют несколько вариантов: стандартный, симметричный, Velocity-Verlet.
Стандартный метод Верле:
$$ \mathbf{r}_{n+1} = \mathbf{r}_n + \mathbf{v}_n \Delta t + \frac{1}{2} \frac{\mathbf{F}_n}{m} (\Delta t)^2, $$
$$ \mathbf{v}_{n+1} = \mathbf{v}_n + \frac{\mathbf{F}_n + \mathbf{F}_{n+1}}{2m} \Delta t. $$
Особенности:
Для задач, где требуется высокая точность, используют метод Рунге–Кутты четвертого порядка (RK4). Он позволяет уменьшить локальную ошибку до ????((Δt)5). Для системы
$$ \frac{d\mathbf{y}}{dt} = \mathbf{f}(t, \mathbf{y}), $$
вычисляются промежуточные значения:
$$ \begin{aligned} k_1 &= \Delta t \, \mathbf{f}(t_n, \mathbf{y}_n), \\ k_2 &= \Delta t \, \mathbf{f}\left(t_n + \frac{\Delta t}{2}, \mathbf{y}_n + \frac{k_1}{2}\right), \\ k_3 &= \Delta t \, \mathbf{f}\left(t_n + \frac{\Delta t}{2}, \mathbf{y}_n + \frac{k_2}{2}\right), \\ k_4 &= \Delta t \, \mathbf{f}(t_n + \Delta t, \mathbf{y}_n + k_3), \end{aligned} $$
после чего вычисляется новое значение:
$$ \mathbf{y}_{n+1} = \mathbf{y}_n + \frac{1}{6}(k_1 + 2k_2 + 2k_3 + k_4). $$
Преимущества:
Выбор шага Δt: Малый шаг уменьшает ошибку, но увеличивает вычислительные затраты. Большой шаг может привести к численной нестабильности.
Сохранение физических величин: В консервативных системах важно следить за сохранением энергии и импульса. Методы Верле и симплектические методы лучше сохраняют эти величины.
Обработка жестких систем: Если система содержит сильно различающиеся временные масштабы (жесткая система), стандартные методы могут быть неустойчивыми. В таких случаях используют имплицитные методы или адаптивный шаг.
Адаптивные методы: Позволяют менять шаг интегрирования в зависимости от локальной ошибки, что обеспечивает баланс между точностью и скоростью расчета.
Для гамильтоновых систем (H(p, q)) разработаны симплектические интеграторы, которые сохраняют структуру фазового пространства. Основное свойство: симплектический метод сохраняет dp ∧ dq и предотвращает накопление ошибок энергии в долгих расчетах.
Пример (симплектический метод первого порядка):
$$ \mathbf{p}_{n+1} = \mathbf{p}_n + \mathbf{F}(\mathbf{q}_n) \Delta t, \quad \mathbf{q}_{n+1} = \mathbf{q}_n + \frac{\mathbf{p}_{n+1}}{m} \Delta t. $$
Особенности:
Выбор метода напрямую зависит от характера системы, требований к точности и доступных вычислительных ресурсов.