Выбор интегратора: Верле, RK4, leapfrog

Как выбрать интегратор под задачу: цена, точность и сохранение.

Симплектический интегратор — метод, сохраняющий структуру фазового пространства и потому не дающий энергии систематически дрейфовать; для долгих консервативных симуляций он обязателен.

Три семейства методов

В арсенале вычислительной физики десятки интеграторов, но они делятся на несколько типов по двум осям: точность (порядок) и сохранение структуры (симплектичность).

МетодПорядокСимплектичен?Когда применять
Явный Эйлер1нетдемонстрация, очень короткие прогоны
Полунеявный Эйлер1даигры, простая физика реального времени
Скоростной Верле2дамолекулярная динамика, орбиты, N тел
Рунге-Кутта 4 (RK4)4нетвысокая точность на коротком интервале, неконсервативные задачи

Симплектичность против высокого порядка

Здесь скрыт неочевидный выбор. RK4 — метод четвёртого порядка, очень точный на коротком интервале, но не симплектичный: на длинной дистанции его энергия медленно дрейфует. Верле всего второго порядка, но симплектичен: его энергия колеблется, но не уходит. Для орбиты на миллион периодов скромный Верле побьёт «точный» RK4, потому что важен не один точный шаг, а отсутствие накопления за миллионы шагов.

Правило простое: для долгих консервативных систем (орбиты, газы, кристаллы) выбирают симплектический метод (Верле, leapfrog). Для коротких или диссипативных задач, где важна локальная точность (химическая кинетика, цепи с затуханием), берут RK4.

Цена шага

Стоимость метода измеряют числом вычислений силы за шаг — это самая дорогая операция (особенно в N тел). Эйлер и Верле считают силу один раз за шаг. RK4 — четыре раза. Значит, при равном шаге RK4 вчетверо дороже. Иногда выгоднее сделать вчетверо больше дешёвых симплектических шагов, чем один дорогой RK4.

Метод leapfrog (чехарда)

Близкий родственник Верле — leapfrog, где координаты и скорости определены в чередующихся («перепрыгивающих») моментах времени, отсюда название. Он математически эквивалентен Верле, тоже симплектичен и второго порядка. В астрофизических кодах N тел чаще встречается именно leapfrog за его простоту и устойчивость.

Как работает под капотом

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

Частые ошибки

  • Брать RK4 для долгой орбиты «потому что он точнее». На длинной дистанции несимплектичный метод проигрывает Верле по сохранению энергии.
  • Сравнивать методы по точности одного шага. Решает поведение на тысячах и миллионах шагов.
  • Игнорировать цену. Метод высокого порядка может оказаться медленнее, чем несколько дешёвых шагов симплектического метода.

Итоги

  • Методы различают по порядку (точность шага) и симплектичности (сохранение структуры).
  • Для долгих консервативных систем выбирают симплектический метод, даже невысокого порядка.
  • RK4 точен на коротком интервале, но дрейфует по энергии на длинном.
  • Цена метода — число вычислений силы за шаг; это решающий ресурс в N тел.
Проверьте себя
1. Почему для орбиты на миллион периодов Верле часто лучше, чем RK4?
ARK4 медленнее печатает
BВерле симплектичен — его энергия не дрейфует, а у несимплектичного RK4 копится ошибка
CRK4 не умеет считать гравитацию
DВерле использует больший шаг
2. Чем измеряют цену (стоимость) шага интегратора?
AЧислом строк кода
BЧислом вычислений силы за шаг
CОбъёмом памяти
DДлиной имён переменных
3. Для какой задачи симплектичность особенно важна?
AКороткий расчёт с затуханием
BДолгая консервативная система: орбиты, газы, кристаллы
CОднократное решение уравнения
DСортировка массива