Почему интеграция Verlet лучше, чем интеграция Эйлера? - PullRequest
20 голосов
/ 05 мая 2010

Может кто-нибудь объяснить мне, почему интеграция Verlet лучше, чем интеграция Эйлера? И почему RK4 лучше, чем Verlet? Я не понимаю, почему это лучший метод.

Ответы [ 3 ]

14 голосов
/ 05 мая 2010

Метод Верле хорош для моделирования систем с сохранением энергии, и причина в том, что он симплектичен. Чтобы понять это утверждение, вы должны описать шаг времени в вашей симуляции как функцию 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). Это выполняется функцией временного шага метода Верле, и поэтому метод Верле является симплектическим методом.

Теперь последний вопрос. Почему симплектический метод хорош для моделирования систем с энергосбережением, но я боюсь, что вам придется прочитать книгу, чтобы понять это.

12 голосов
/ 05 мая 2010

Метод Эйлера представляет собой схему интегрирования первого порядка, то есть общая ошибка пропорциональна размеру шага. Тем не менее, он может быть численно нестабильным, другими словами, накопленная ошибка может затмить вычисления, что приведет вас к бессмысленности. Обратите внимание, что эта нестабильность может возникнуть независимо от того, насколько мал размер шага, а также от того, является ли система линейной или нет. Я не знаком с интеграцией верлетов, поэтому не могу говорить о ее эффективности. Но методы Рунге-Кутты отличаются от метода Эйлера не только размером шага.

По сути, они основаны на лучшем способе численного приближения производной. Точные детали избегают меня в данный момент. В общем, метод Рунге-Кутты четвертого порядка считается рабочей лошадкой схем интегрирования, но он имеет некоторые недостатки . Это немного рассеивает, то есть маленький зависимый член первой производной добавляется в ваш расчет, который напоминает добавленное трение. Кроме того, он имеет фиксированный размер шага, что может затруднить достижение желаемой точности. В качестве альтернативы вы можете использовать адаптивную схему пошагового расчета, например метод Рунге-Кутта-Фельберга , который дает точность пятого порядка для дополнительных 6 оценок функций. Это может значительно сократить время, необходимое для выполнения ваших расчетов при одновременном повышении точности, как показано здесь .

2 голосов
/ 05 мая 2010

Если все идет линейно, то не имеет значения, какой метод вы использовали, но когда происходит что-то интересное ( т.е. нелинейное), вам нужно посмотреть более внимательно, непосредственно учитывая нелинейность (verlet) или принимая меньшие временные шаги (rk4).

...