Этот вопрос больше о том, как решить проблему численно.
В небольшом проекте я хотел имитировать движение Януса и Эпиметея. Это в основном проблема трех тел. Я выбираю Сатурн, чтобы он был зафиксирован в начале координат, пусть и будут векторами местоположения Януса и Эпиметея, соответственно. Поскольку эффект возникает, когда Янус и Эпиметей находятся очень близко друг к другу, я выбрал относительные координаты для лучшего разрешения, то есть и . Теперь я получаю следующие уравнения движения:
где соответствует массе лун, - масса Сатурна, а - гравитационная постоянная. Проблема возникает, когда я пытаюсь решить это численно. Нужно иметь дело со значениями совершенно разных величин, то есть и . А , находятся в регионах от 0 до 150 000.
Честно говоря, я не уверен, является ли это форумом для обсуждения таких количественных проблем.
Больше информации:
Код написан на Matlab, и я использую стандартный решатель ODE для получения результата. Однако это ломается, потому что размер шага не может быть уменьшен при точности станка. (Я нахожу это не удивительным, потому что приходится иметь дело с уже упомянутыми порядками величин).
Ответы:
Ваш текущий подход разрушает числовую стабильность; на самом деле вы, вероятно, потеряете разрешение таким образом.
Возьмем в качестве координат для каждого спутника его переменные Кеплера и угол плоскости, содержащей положение спутника, скорость и начало координат. Дифференциальные уравнения при отсутствии взаимодействия между спутниками тогда тривиально просты, и только взаимодействие становится несколько сложным. Поскольку взаимодействие незначительно, если спутники находятся далеко, результирующая динамика должна быть численно устойчивой.
источник
Вместо использования «классического» (жесткого) решателя ODE вы можете использовать специальные алгоритмы для геометрического численного интегрирования. Посмотрите, например, эту книгу и коды ВНД, которые вы можете найти на сайте Эрнста Хайрера .
источник
Как насчет, если у вас есть три шага в вашей симуляции:
Возможно, используя более мелкие временные шаги для # 3.
Я не уверен, поможет ли это. Я предполагаю, что реальная проблема заключается в том, что величина силы отличается в случае Луны - Луны и Луны - Сатурна, кроме случаев, когда спутники находятся близко?
В качестве альтернативы:
Удачи!
источник