Предположим, я хочу ответить на вопрос: пролетит ли Starman/Roadster особенно близко к каким-либо астероидам в ближайшие несколько лет? или попытаться предсказать соединения спутников вокруг Земли (например, SOCRATES Celestrak ), и у меня были эфемериды, TLE или интерполируемые таблицы векторов состояния.
Я мог бы распространять их небольшими временными шагами, вычислять все должности и все расстояния и поиск любого меньшего расстояния , но это может быть не самый эффективный способ сделать это.
Вопрос: Какие существуют алгоритмические методы или приемы для более эффективного поиска такого рода? Предположим, что пропагаторы возвращают шестивектор (положение и скорость). Мне нужно объяснение или авторитетная ссылка, а не просто имя.
Этот вопрос отличается от алгоритмических методов или методов поиска соединений в ансамблях с высоким N кеплеровских элементов? потому что он специально спрашивает о методах, которые работают с векторами состояния (либо в таблице, либо распространяются по запросу), которые могут включать эффекты n тел (например, Солнце движется, Юпитер делает свое дело и т. д.)
Допустим, вы хотите сделать что-то «разумное», например, собрать посекундные соединения за столетний период для всех объектов, для которых вы можете получить векторы состояния (сотни тысяч или около того?)
У вас есть подход, так что... о
Да, я вижу, что есть проблема.
В Солнечной системе все движется с ограниченной скоростью. Затем мы можем воспользоваться тем фактом, что объекты могут перемещаться только на определенное расстояние за каждый временной шаг.
Вы получите крайний случай, например скорость перигелия Икара 1566 года , порядка ~ 100 км / с. Таким образом, для наихудшего случая относительной скорости, когда объекты движутся прямо навстречу друг другу, мы можем принять верхний предел около 200 км/с.
Делайте «грубые» временные шаги, проверяя расстояние до всех остальных объектов. Скажем, 10 дней. Это на шесть порядков меньше работы, чем необходимая вам степень детализации.
За эти 10 дней расстояния могут сократиться не более чем на ~1 а.е., если относительные скорости могут быть не более 200 км/с.
Теперь для 10 «менее грубых» временных шагов между 1 днем учитывайте только те объекты в пределах 1 а.е. в «грубом» временном шаге. Во многих случаях это будет более короткий список.
Между ними снова вставьте 10 «еще менее грубых» временных шагов по 2,4 часа. Здесь нам нужно учитывать только те, которые находятся в пределах 0,1 а.е. на «менее грубом» временном шаге. Это должно быть небольшое меньшинство в вашей базе данных векторов состояний.
При детализации временного шага ~ 15 минут мы свелись к прогону короткого списка 0,01 AU. Через 1,5 мин 0,001 а.е.
Если вы остановите разбиение здесь, будет только пара объектов (или ни одного!) для проверки на каждом временном шаге.
Для объектов, распределенных в объеме или даже сгруппированных вдоль одной двумерной плоскости, это асимптотически . То есть вам не нужно беспокоиться об ограничении степени детализации ваших временных шагов.
Даже для очень неприятной линейной кластеризации (которая, кстати, не относится к объектам Солнечной системы) это все еще в худшем случае
Таким образом, вы сможете просмотреть кучу за пару минут на ноутбуке.
ооо
Космонавт на каждый день
Космонавт на каждый день
ооо
Космонавт на каждый день
ооо
Космонавт на каждый день
ооо