ВНИМАНИЕ! На форуме началось голосование в конкурсе - астрофотография месяца АПРЕЛЬ!
0 Пользователей и 1 Гость просматривают эту тему.
3. Период на доли процента отличается от реального: для Земли 367 дней, для Марса также около 2 дней дольше.Баг с периодом, в принципе, не критичен, но хотелось бы узнать, существует ли простой способ повысить точность.
Если не пугает JavaScript, то можно посмотреть на моей странице http://www.k-labs.ru/dms/nbody.html примеры реализаций и ссылки на другие методы.
Смотрите методы Рунге-Кутта http://en.wikipedia.org/wiki/Runge-Kutta_methods, адаптивные методы Рунге-Кутта, симплектические методы http://en.wikipedia.org/wiki/Symplectic_integrator (хороши тем, что время точно обратимо).
Способы повысить точность попроще - это либо модифицированный метод Эйлера, либо чуть посложнее метод Рунге-Кутты 4-го порядка.
Цитата: Geen от 04 Ноя 2017 [14:57:10]Если не пугает JavaScript, то можно посмотреть на моей странице http://www.k-labs.ru/dms/nbody.html примеры реализаций и ссылки на другие методы.Не удалось, говорят, получить доступ к сайту.
Я если честно просто затрудняюсь на стадии получения исходного уравнения.
Вот отсюда брал формулы - https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwjazMXJ_aTXAhWMIpoKHdASB-QQFggnMAA&url=http%3A%2F%2Fvadimchazov.narod.ru%2Ftext_pdf%2Freasint.doc&usg=AOvVaw1R4hWZYSXDlWXK8yw7yaCe
Цитата: Toth от 04 Ноя 2017 [16:13:32]Вот отсюда брал формулы - https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwjazMXJ_aTXAhWMIpoKHdASB-QQFggnMAA&url=http%3A%2F%2Fvadimchazov.narod.ru%2Ftext_pdf%2Freasint.doc&usg=AOvVaw1R4hWZYSXDlWXK8yw7yaCeСпасибо. Правильно я понимаю, что метод Эйлера на 4-й странице - это примерно то, что описано у меня в стартовом посте?
Цитата: Небесный Механик от 04 Ноя 2017 [15:59:03]Цитата: Geen от 04 Ноя 2017 [14:57:10]Если не пугает JavaScript, то можно посмотреть на моей странице http://www.k-labs.ru/dms/nbody.html примеры реализаций и ссылки на другие методы.Не удалось, говорят, получить доступ к сайту.Вроде бы поправил.
Шаг в 500 секунд мелковат, по-моему, для задачи про Марс и выбранного метода. Можно на порядок-другой увеличить. Вряд ли за 100 тысяч шагов может накопиться ошибка округления, если только Вы не используете одинарную точность. Проблема, скорее всего, в реализации метода или способе вычисления периода.
Период я беру просто как разность во времени между прохождениями перигелия.
А период при этом гуляет. Не понимаю, короче, в чем дело.
n:=Round(dT/h); if n=0 then n:=1; h:=dT/n;
Единицы у меня в системе СИ. Понимаю, что в небесной механике это - моветон, но можно перевести.