Почему интеграция Verlet лучше, чем интеграция Эйлера?
Может кто-нибудь объяснить мне, почему интеграция Verlet лучше, чем интеграция Эйлера? И почему RK4 лучше, чем Verlet? Я не понимаю, почему это лучший метод.
3 ответа
Метод Верле хорош для моделирования систем с сохранением энергии, и причина в том, что он симплектичен. Чтобы понять это утверждение, вы должны описать шаг времени в вашей симуляции как функцию f, которая отображает пространство состояний в себя. Другими словами, каждый временной шаг может быть записан в следующей форме.
(x (t + dt), v (t + dt)) = f (x (t), v (t))
Функция временного шага f метода Verlet обладает особым свойством сохранения объема пространства состояний. Мы можем написать это в математических терминах. Если у вас есть набор A состояний в пространстве состояний, то вы можете определить f(A) как
f(A) = {f(x)| для х в А}
Теперь предположим, что множества A и f(A) гладкие и красивые, поэтому мы можем определить их объем. Тогда симплектическое отображение f всегда выполнит то, что объем f(A) равен объему A. (и это будет выполнено для всех хороших и гладких выборов A). Это выполняется функцией временного шага метода Верле, и поэтому метод Верле является симплектическим методом.
Теперь последний вопрос. Почему симплектический метод хорош для моделирования систем с энергосбережением, но я боюсь, что вам придется прочитать книгу, чтобы понять это.
Метод Эйлера является схемой интегрирования первого порядка, то есть общая ошибка пропорциональна размеру шага. Тем не менее, он может быть численно нестабильным, другими словами, накопленная ошибка может перегрузить вычисления, что приведет вас к бессмысленности. Обратите внимание, что эта нестабильность может возникнуть независимо от того, насколько мал размер шага, а также от того, является ли система линейной или нет. Я не знаком с интеграцией verlet, поэтому не могу говорить о ее эффективности. Но методы Рунге-Кутты отличаются от метода Эйлера не только размером шага.
По сути, они основаны на лучшем способе численного приближения производной. Точные детали избегают меня в данный момент. В целом, метод Рунге-Кутты четвертого порядка считается рабочей лошадкой интеграционных схем, но он имеет некоторые недостатки. Это немного рассеивающее, то есть маленький зависимый член первой производной добавляется к вашему расчету, который напоминает добавленное трение. Кроме того, он имеет фиксированный размер шага, что может затруднить достижение желаемой точности. В качестве альтернативы вы можете использовать адаптивную схему пошагового расчета, например метод Рунге-Кутта-Фельберга, который дает точность пятого порядка для дополнительных 6 оценок функций. Это может значительно сократить время, необходимое для выполнения ваших расчетов при одновременном повышении точности, как показано здесь.
Если все просто идет линейно, то не имеет значения, какой метод вы использовали, но когда происходит что-то интересное (то есть нелинейное), вам нужно смотреть более внимательно, либо непосредственно рассматривая нелинейность (verlet) или принимая меньшие временные шаги (rk4).