В системе, где теоретически должна сохраняться энергия, наиболее точное моделирование будет экономить энергию (а также давать точные координаты, скорости и т. Д.). RK4 более точен, чем чехарда, но чехарда экономит энергию, а RK4 нет. Почему это?
В системе, где теоретически должна сохраняться энергия, наиболее точное моделирование будет экономить энергию (а также давать точные координаты, скорости и т. Д.). RK4 более точен, чем чехарда, но чехарда экономит энергию, а RK4 нет. Почему это?
TL; DR: Это зависит от того, какая точность вам нужна.
Энергосбережение не автоматически равно точности. Предположим, вы хотите смоделировать солнечную систему, и вы используете решатель, который - если использовать крайний пример - просто поворачивает всю систему на некоторый угол каждую секунду. Эти решения, очевидно, экономят энергию, но они явно неверны.
С другой стороны, если вы хотите предсказать небесные движения на достаточно короткий промежуток времени, то эффекты метода Рунге-Кутты, не сохраняющего энергию, ничтожны. Скорее, это сказывается на долгосрочном моделировании. В коротких временных масштабах метод Рунге – Кутты даст вам более точные результаты, чем прыжковая лягушка - по крайней мере для сопоставимых вычислительных усилий.
Теперь, в долгосрочных масштабах, ни один из методов не дает очень точных результатов в смысле предсказания точного будущего некоторого начального состояния (что также может стать затруднительным из-за эффекта бабочки). Тем не менее, метод скачка лягушки, по крайней мере, дает какое-то правдоподобное решение, так как энергия сохраняется. Этого достаточно для многих моделей, где интерес представляет качественное поведение исследуемых систем.