Физика и математика за полетом через Солнечную систему: с чего начать?

Я написал первую программу, моделирующую солнечную систему. Я мог рассчитать местоположение каждой планеты на ее эллиптическом маршруте в любое заданное время.
Во второй программе мне удалось смоделировать ньютоновское гравитационное поведение (задача n тел, подход с временным шагом).

Но мне интересно, как можно:
(1) найти маршруты (различные возможности) из данного места/планеты в другую
(2) выбрать лучший маршрут в зависимости от продолжительности или расхода топлива

Итак, с чего начать?

Чтобы быть более точным: речь идет не о написании еще одной симуляции, а о понимании лежащей в ее основе физики!

До сих пор я не мог найти никаких хороших ресурсов в Интернете.

(недостаточно для полного ответа, но...) Вы должны хорошо понимать энергию (например, эффект Оберта) и различные типы переходных орбит. Оттуда вы можете построить достаточно эффективный путь по частям. (Есть несколько хороших статей на эту тему, основанных на популярной видеоигре «Kerbal Space Program»). А еще есть волшебные вещи, о которых я мало что знаю: lh6.googleusercontent.com/-Pz-3360uNoA/UTthQF-SdQI/AAAAAAAAdnM/… и maths.manchester.ac.uk/~jm/Choreographies
Связанный с этим вопрос, который может вас заинтересовать: physics.stackexchange.com/q/26148/16660 .
Похоже, это хорошее место для начала: en.wikipedia.org/wiki/Interplanetary_spaceflight .
Джо, первое, что нужно знать в реальном космическом полете, это то, что траектории планет не эллиптические. Вторая и третья остановки на вашем пути — это проблема Ламберта и залатанные коники. Четвертое: какой двигатель вы используете? Пятое: в сети и в библиотеках полно ресурсов...
И что касается пункта (2), вы хотите изучить теорию оптимизации для математики выбора «лучшего» из «чего-то» с учетом любых критериев, которые вы предоставляете.
Я не понимаю, почему вы не могли поставить какую-нибудь задачу минимизации, которую можно было бы решить численно.
@DeerHunter: planets' trajectories are not elliptical: как вы можете читать между строк, мне это ясно. Lambert's problem: хороший намек!
@DanielBlay: Пожалуйста, будьте точнее...
@joe - к сожалению, моя неопределенность - результат невежества, а не лени. Я имел в виду принцип наименьшего действия; Я не понимаю, почему вы не можете найти некоторый скалярный потенциал, который включает в себя необходимые требования, а затем использовать вариационное исчисление, чтобы найти путь вдоль него, который минимизирует требуемую работу. Это, вероятно, намного более абстрактно, чем то, что вы ищете. РЕДАКТИРОВАТЬ: На самом деле я чувствую, что этот метод может быть в принципе эквивалентен ответу Хусейна Тугрула Буюкисика ниже.

Ответы (2)

Точно так же, как при вычислении кратчайшего пути световой волны между точками A и B, где A находится в воздухе, а B в стекле, вы можете вычислить фактические функции сред, а затем взять производную. Так же, как закон Снелла: http://en.wikipedia.org/wiki/Snell's_law . (но на этот раз среда не постоянна, есть движущиеся массы, меняющие пространство и время)

Не будет постоянной среды, но вместо этого вы поместите индексы пространства/времени, где она будет меняться вблизи планет и звезд.

Возможно, вместо этого вы можете использовать метод конечных элементов. Просто используйте точку генерации сферической (3D) волны (или круговой 2D) в матрице конечных элементов, а затем наблюдайте за каждым фрагментом волнового фронта. Какая точка волнового фронта первой достигнет вашей цели, будет космическим кораблем.

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

На самом деле очень интересный ответ! Проголосовал. В настоящее время я понятия не имею, как смоделировать это в части программы. Какая математика стоит за этим?
Просто какой-то алгоритм диффузии, как и любой FEM, плюс у вас уже есть nbody, верно? Возможно, потребуется решатель потока/скорости поверх диффузии в качестве решателя «advect». Любой алгоритм распространения волны должен работать.
Ну я не физик....
Вам нравится математика? Если это так, вы можете взглянуть на уравнения Навье-Стокса и дифференциальные уравнения Пуассона. Это еще более смущающе-параллельно, чем алгоритм nbody, поэтому вы можете лучше использовать GPU.
Если это вам не нравится, то вы можете просто выпустить 3600 космических кораблей из точки А (по 10 на каждый градус разрешения), а затем просто проверить, прибывает ли один из них в точку Б. Вы можете использовать 360000, чтобы получить более точный угол съемки/начальный угол.
Все вышесказанное предполагает, что ваш космический корабль просто постоянно запускает двигатели и не пытается изменить угол, заставляя гравитацию делать свою работу.
Я уверен, что это никем и нигде не используется, этого просто недостаточно для важных реальных миссий. Если вы хороший программист, вы можете запустить нейронную сеть, затем научить ее приближаться к цели в гравитационном поле, затем передать ей свою проблему, и она решит, используя свой опыт.
Лучший ответ для меня - это решение, подобное закону Снелла. Просто с переменными параметрами. Я имею в виду вывод закона Снелла.
Вы можете начать здесь en.wikibooks.org/wiki/Optics/Fermat's_Principle
Я впечатлен, давайте посмотрим, смогу ли я реализовать это. Совершенно отличный ответ!
Работай усердно, получай удовольствие.
Абсолютно прав !
Этот метод применим только для свободного движения. Космический корабль, отох, имеет некоторый конечный ресурс (топливо) и его можно потратить бесконечно многими способами (в основном обеспечивая вектор тяги ф ( т ) как функцию времени). Таким образом, проблема состоит в том, чтобы найти экстремальное (наименьшее время или наименьшее количество топлива) решение в функциональном пространстве .

Предлагаю посмотреть страницу википедии Interplanetary Transport Network и эту статью (pdf) . Это способ межпланетного путешествия с использованием очень небольшого количества топлива .

Идея, стоящая за этим, довольно проста. Хорошо известно, что частицы, свободно движущиеся в гравитационных полях нескольких тел, движутся хаотично, а это означает, что близкие траектории часто экспоненциально расходятся во времени. Таким образом, используя очень мало топлива, космический корабль может прыгать между такими траекториями. Хитрость заключается в том, чтобы идентифицировать «узлы» для таких траекторий, например различные точки Лагранжа, в которых сходятся многие траектории к различным пунктам назначения и из них. Затем космический аппарат с помощью небольших «подталкиваний» перескакивает сначала на путь к такому узлу, а затем, оказавшись там, на путь к следующему пункту назначения.