У системі, де теоретично слід зберігати енергію, найточніше моделювання дозволило б заощадити енергію (а також надання точних позицій, швидкостей тощо). RK4 є більш точним, ніж стрибок, проте стрибок зберігає енергію, а RK4 - ні. Чому це?
У системі, де теоретично слід зберігати енергію, найточніше моделювання дозволило б заощадити енергію (а також надання точних позицій, швидкостей тощо). RK4 є більш точним, ніж стрибок, проте стрибок зберігає енергію, а RK4 - ні. Чому це?
Відповіді:
TL; DR: Це залежить від того, яка точність вам потрібна.
Збереження енергії автоматично не дорівнює точності. Припустимо, ви хочете імітувати Сонячну систему, і ви використовуєте сольвер, який - на крайній приклад - просто обертає всю систему на деякий кут щосекунди. Ці рішення, очевидно, заощаджують енергію, але вони явно неправильні.
З іншого боку, якщо ви хочете передбачити небесні рухи на досить короткий проміжок часу, то ефекти методу Рунге-Кутта, що не зберігає енергію, незначні. Скоріше, це впливає на тривалі симуляції. У коротких масштабах часу метод Runge-Kutta дасть точніші результати, ніж стрибок - принаймні для порівняльних обчислювальних зусиль.
Зараз, на тривалих масштабах часу, жоден із методів не дає дуже точних результатів у сенсі передбачення точного майбутнього деякого початкового стану (який також може ускладнитися через ефект метелика). Однак стрибковий метод, принаймні, дає певне правдоподібне рішення, оскільки енергія зберігається. Цього достатньо для багатьох моделей, коли якісна поведінка досліджуваних систем представляє інтерес.