Плюси і мінуси обох методів:
Плюси RK4:
- точність (завдяки кращій серії наближення дає точність 4-го порядку)
- штучне / вроджене спонукання (дещо подібне до неявних методів це робить) додає стабільності (тоді як простий крок Ейлера не робить - насправді це робить навпаки, вводячи привидну енергію, яка накопичує і може занурити систему в хаос)
Мінуси RK4:
- Витрати на обчислення: хоча він не такий складний порівняно з неявними методами чи гібридними методами IMEX, RK4 в 4 рази дорожче, ніж явний Ейлер, оскільки вимагає набагато більше оцінок функцій. Це показано при націлюванні на оптимізацію кровотоку.
- все ще нестабільна: залежно від типів сил, RK4 може бути таким же нестабільним, як і Ейлер. В середньому, RK4 трохи стабільніший і прагне скористатися цією вигодою з наділених «навичок» демпфування.
- Несимплектичне: чисельне затухання постає із вартістю - ви не можете імітувати системи, де енергія / об'єм / тощо. втрата не повинна застосовувати видимий ефект з часом (наприклад, Молекулярна динаміка, сили, отримані в потенційному полі, варіаційні проблеми)
Плюси Verlet:
- один-два рази складність кроку Ейлера (залежно від вашого аромату Verlet: положення чи швидкість).
- симплектичний: зберігає внутрішню енергію
- точність другого порядку: багато ігор не вимагають високої точності результатів з плаваючою точкою, а другий порядок є більш ніж приємним для очей в ігровому сценарії (плюс: його використовували в моделюванні сценарію, що не стосується ігор, коли його «виявили», так це не так погано)
Мінуси Verlet:
- стабільний, але все-таки: мабуть, найкращий явний метод з точки зору стабільності. Він, як правило, перемагає, коли в систему додаються жорсткі обмеження, що дозволяє зменшити болі в голові при впровадженні прогнозованих обмежень у динамічних двигунах, що базуються на положенні. Він починає нескінченність, якщо система турбує великі зовнішні сили і не додається демпфірування / тертя. Незважаючи на це, існують певні числові обмеження щодо того, наскільки великі можуть бути внутрішні (пружинні) сили, але вони в середньому вище, ніж те, що може зробити RK4
- нижча точність: не корисно, якщо ви хочете оцінити високу точність
- вимагає, в середньому, менших часових кроків, ніж RK4 для деяких моделювання (RK4 виграє як від його точності, так і від внутрішнього демпфування)
Використання одного над іншим залежить від сценарію. Якщо жорсткість і великі зовнішні сили та віртуальні енергії є проблемою, то розгляньте інші методи, що мають в описі / заголовку слово "неявне".
Зауважимо, деякі автори / книги використовують термін напівпредмечений Ейлер для фактичного явного інтегратора Ейлера, який називається симплектичним методом Ейлера (або Ейлера Кромера), з якого насправді походить Верлет. Верлет також деякі люди називають "стрибковим методом". Верлейт швидкості та метод середини досить схожі з моменту оцінки на етапі часуt + 0.5*dt
необхідний для кроку, що нагадує прогноктор-коректор. Методи IMEX (неявні-явні) також використовуються для назви двох подібних, але не тотожних підходів: розділити обчислення на жорсткі та не жорсткі частини та використовувати на них різні інтегратори (явні для не жорстких, неявні для жорстких) АБО вирішити для швидкість із неявним кроком оновлення та явним чином оновити позицію (це гібридний напів неявний метод, що попадає на клас методів IMEX, оскільки жорсткі частини найбільше впливають на обчислення прискорення). Неявні методи більш громіздкі і вимагають вирішення системи одночасних нелінійних рівнянь для всієї конфігурації. Неявні методи застосовуються для деформованих тіл і зазвичай не застосовуються для з’єднаних жорстких тіл.
Як зазначено в одному з коментарів, якщо ви можете, не використовуйте Euler. Використовуйте або метод середини, напів неявний Ейлер, або, за той же рахунок, позицію-Верлет. Усі вони мають трохи більшу точність та чутливішу стабільність, ніж явний інтегратор Ейлера.
Рекомендоване читання міні-порівняння:
http://wiki.vdrift.net/Numerical_Integration