Какие переменные необходимы для расчета времени обращения в простой подкове?

РЕДАКТИРОВАТЬ Это НЕ было дублированием времени цикла орбиты Horseshoe .

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

Какие переменные необходимо знать, чтобы рассчитать время цикла подковообразной орбиты?

Другими словами: какое уравнение и что представляют переменные в этом уравнении (скорость? масса? большие полуоси? и т. д.) для расчета времени, которое требуется объекту, чтобы пройти из точки А на этом изображении через Точки B, C, D и E и обратно к A вдоль голубой линии на изображении выше (изображение также доступно здесь )?

Например, Земля и Круитна завершают свой цикл за 770 лет, а Янус и Эпиметей завершают свой цикл за 8 лет. Я уверен, что большие полуоси являются ключевыми факторами в уравнении, но я не знаю, какие другие переменные включены или как переменные соотносятся друг с другом при расчете.

Кроме того, я понимаю, что эти орбиты не являются стабильными в долгосрочной перспективе, и что мой пример Круитна особенно сложен, поскольку он фактически будет периодически менять типы орбит и, вероятно, будет полностью выброшен из Солнечной системы или ударит по Солнцу. или Юпитер, в какой-то момент. Но эти сложности в другой раз. Для этого вопроса я просто хочу знать уравнение в его простейшей форме.

На самом деле это не график подковообразной орбиты, это эквипотенциальная линия для псевдопотенциала во вращающейся системе отсчета для объекта с нулевой скоростью в этой системе отсчета. Если бы объект находился на реальной подковообразной орбите, эти потенциальные линии изменились бы. Интересно, сможете ли вы найти изображение настоящей подковообразной орбиты?
См. также время цикла орбиты подковы , которое также неправильно использует это изображение и в настоящее время не имеет ответа. Также без ответа остаются подковообразные орбиты и интеграция в C.
Подождите, время цикла орбиты подковы — это ваш вопрос, который вы также разместили в Physics SE . Чем этот вопрос отличается от тех?
@uhoh Мой первоначальный вопрос требует ответа на уравнение со многими уже предоставленными переменными. Этот вопрос требует только уравнений, чтобы убедиться, что я знаю все, что мне нужно для ответа на мой первоначальный вопрос, или, может быть, попробовать решить его самостоятельно (хотя я сомневаюсь в своих математических способностях, чтобы выполнить вычисления самостоятельно, поскольку нет один хочет / может ответить на мой первоначальный вопрос, я решил, что это будет мой лучший шанс приблизиться к ответу самостоятельно).
@uhoh Кроме того, я понимаю, что изображение не является (точно) «подковой» орбитой, но оно ЯВЛЯЕТСЯ идеальным представлением именно того, что я действительно хочу знать. Я хочу знать, как рассчитать время для показанного полного цикла, сколько времени требуется одному из орбитальных объектов, чтобы сделать два подхода (по одному с каждой стороны) к другому орбитальному объекту, сколько времени требуется для завершения одного из этих циклы.
в этом есть смысл. Я думаю, что вопрос времени цикла подковообразных орбит действительно интересен. Я хотел бы предложить курс действий. Почему бы вам временно не удалить свой другой вопрос, чтобы решить любые проблемы с дублированием, и позвольте мне немного переписать этот вопрос. Тогда я проголосую за повторное открытие. Я планирую посетить библиотеку завтра, и я могу выполнить поиск по этому вопросу и посмотреть, какие аналитические модели были опубликованы.
Когда вы удаляете сообщение, оно никогда не удаляется. В течение первых нескольких месяцев он все еще отображается в вашем списке вопросов. Вот мой, и вы можете увидеть ссылку внизу для недавно удаленных i.stack.imgur.com/G3Wh9.png Вы можете восстановить их в любое время. Если вы скопируете ссылку на свой вопрос и сохраните ее где-нибудь, то сможете получить к ней доступ в любое время в будущем.
Это все нестабильные орбиты...
@uhoh Удалено. Я не беспокоюсь о том, что потеряю этот другой вопрос, у меня есть заметки, чтобы я мог задать его снова, если это необходимо.
@peterh Если/когда я выясню, как проводить эти расчеты, я буду использовать эту информацию таким образом, который не требует долгосрочной стабильности в геологических временных масштабах. Я осознаю присущую им нестабильность и принял это во внимание для своих конечных целей. Но спасибо за беспокойство и указание на это.
@Dalila Я почти закончил, опубликую сегодня позже. Оказывается, это действительно интересная задача!
Ответ @Dalila опубликован, дайте мне знать, если у вас есть дополнительные вопросы.

Ответы (2)

Это зависит от точности, с которой вы хотите работать. Для нулевого порядка, как указано в Мюррее и Дермотте, «Динамика Солнечной системы», глава 3, вы можете сделать следующее:

  • Контуры нулевой скорости, нанесенные на ваше изображение, не будут совпадать с орбитами частиц с бесконечной точностью, но они являются хорошим приближением нулевого порядка для объектов с низким эксцентриситетом относительно звезды ( в р / в θ 1 )
  • Частица на этих орбитах находится на регулярной кеплеровской орбите радиуса р ЧАС , вне досягаемости гравитационного влияния планеты на р п . Таким образом, чтобы получить самый большой «кусок» времени прохождения одной части подковообразной орбиты, будь то внутренней или внешней части, вы можете работать с относительными скоростями и допущением кеплеровских скоростей.
  • Требуется осторожность в отношении того, какое орбитальное время вас интересует: если а — расстояние Земли до Солнца, а подкова — г от идеально круговой орбиты, таким образом чередуя расстояния а ± г , то время обращения в системе покоя Солнца будет в "=" г М а г , на большое количество витков до близкого сближения, а после этого в + "=" г М а + г .
  • Следовательно, упрощенный случай, когда спутник находится на собственной кеплеровской орбите, в большинстве случаев верен. Вооружившись этими знаниями, мы можем аппроксимировать планетоцентрическое время повторения как т р е с "=" 2 π а в К в как простое время наверстывания между объектами на разных орбитах.
  • Относительная скорость в р е л "=" в К в "=" г М а г М а г может быть расширен в пределах г / а 1 в в р е л 1 2 г М а г а и поэтому я исхожу из этого т р е с 4 π г М а 5 / 2 г . Как и ожидалось, время цикла расходится для г "=" 0 , как и в случае совместной орбиты с Землей, это время должно быть бесконечным. Верхний предел на г не может быть получено из этого, нужно было бы обратиться к полному решению для этого.

Просто из любопытства я подставил несколько значений в эту формулу и быстро написал что-то на питоне:

import numpy as np

#Basic physics quantities
G      = 6.678e-8 #cgs units
pi     = 3.141592
navo   = 6e23 # particles per mole
sigma  = 5.67e-5   #erg cm-2 s-1 K-4
kb     = 1.38e-16  #erg/K
km     = 1e5 #kilometers in cm
mearth = 5.98e27  #g
msun   = 2.0e33   #g
au     = 1.49e13  #cm
yr   = 365*24*3600
rearth   = 6370e5
rjupiter = 74000*km

#
# Returns the approximate horseshoe-cycle time in the reduced 3body problem
# Masses of bodies: m0>>m1>>m2
# Semimajor axis distance is from m0 to m1, radial distance is a(m0->m1)-a(m0->m2)
#
def hs_cycle(mcentral, semimajor_axis, radial_distance):
    return 4*pi/np.sqrt(G*mcentral)*semimajor_axis**(5./2.)/radial_distance/yr

#
# https://en.wikipedia.org/wiki/(419624)_2010_SO16 around the Sun
#
# Quoted cycle time ~350 years, with d=0.004 AU
#
print("Predicted 2010_SO16 cycletime [years] = ", hs_cycle(msun, 1*au,0.004*au), " predicted = 350 yrs")

#
# Janus/Epimetheus around Saturn
#
# a = 151410 km, d = 25 km, as stated in https://en.wikipedia.org/wiki/Epimetheus_(moon)
# Quoted cycle time = 8 years (from comments)
#
print("Predicted Janus/Epimetheus cycletime [years] = ", hs_cycle(95*mearth, 151410*km,50*km), " predicted = 4 yrs")


#
# 3753 Cruithne
#
# a = 1 AU and semimajor axis difference from https://en.wikipedia.org/wiki/3753_Cruithne
# Quoted cycle time = 770 years
#
print("Predicted 3753 Cruithne cycletime [years] = ",hs_cycle(msun, 1*au, (1.0-0.99774)*au), " predicted = 770 yrs")

и результаты, которые я получаю,

Predicted 2010_SO16 cycletime [years] =  495.7747141830971  predicted = 350 yrs
Predicted Janus/Epimetheus cycletime [years] =  11.542076781209305  predicted = 8 yrs
Predicted 3753 Cruithne cycletime [years] =  877.4773702355546  predicted = 770 yrs

Таким образом, формула может быть неверна примерно в 2 раза. Это наверняка просто потому, что реальность сложнее, чем простая аппроксимация круговой орбиты, а также из-за качества используемых значений. Википедия не очень хорошо известна тем, что хорошо исследует определенные значения. Я взял те, что нашел там. Для SO16 выбор был особенно запутанным, поэтому я взял те два, которые были упомянуты в одной строке текста, надеясь, что они взяты из одного и того же источника.

Любой, кто найдет более согласованные значения, может комментировать.

Хотя я понимаю, что точность в некоторой степени является проблемой, у меня возникают проблемы с согласованием этого уравнения с приведенными мной примерами Земли + Круитны и Януса + Эпиметея. Я бы понял отклонение в несколько десятилетий в 770-летнем цикле, или несколько месяцев или год в 8-летнем цикле. Но я получаю значения в сотни тысяч лет на одном и пару недель на другом. Что мне здесь не хватает?
@Dalila: я не получаю эти значения. Мои кажутся гораздо более разумными, но это все же приближение. Вы должны быть осторожны с тем, что такое большая полуось и значение d, которое является разностью большой полуоси и 2-го массивного тела. Центральным объектом является Солнце для Cruithne и Сатурн для JEpi. Но я добавил свой код, чтобы вы могли проверить сами и, конечно, покопаться в литературе, если хотите.
Я думаю, что именно здесь я столкнулся с проблемой: «Вы должны быть осторожны с тем, что такое большая полуось и значение d, которое является разностью большой полуоси и 2-го массивного тела». Можете ли вы уточнить это значение? Вы имели в виду разницу между большими полуосями двух коорбитальных тел? Я просто хочу убедиться, что правильно понял последний комментарий.
@Dalila: Если мы обозначим тела 0,1,2, а массы равны м 2 м 1   г г м 0 , то d — разность больших полуосей а 01 а 02 . Обратите внимание, что это не должно исключать Януса и Эпиметея, поскольку они подчиняются той же физике, что и обычная подковообразная орбита: каждая луна по отдельности вращается вокруг Сатурна без возмущений большую часть времени. Поэтому я не уверен, что не так с ценностью, которую я получаю от JEpi.
Спасибо за это разъяснение. Я понял, что цикл JEpi составляет всего 8 лет, а не 4. 4 года — это время между двумя подходами в цикле, поэтому 11 против 8 на самом деле является разумной погрешностью, по крайней мере, для моих целей, в этом расчете. Я что-то неправильно понял в этом?
@Dalila: я не думаю, что ты неправильно это понял. Я не знаю, каково фактическое время цикла, я просто быстро посмотрел значения, которые казались правильными в вики;) Так что, вероятно, моя ошибка, если на самом деле это 8 лет.

Книга Эрнеста В. Брауна « О новом семействе периодических орбит в задаче трех тел»: (табл. 6, 7.) в MNRAS, 71, (5), стр. 438–454, опубликованная 10 марта 1911 г. , кажется, там, где были подковообразные орбиты. первым предложил. (Доступно и здесь ). Начинается:

Известно четыре астероида, которые, по-видимому, колеблются вокруг одной или другой вершины двух равносторонних треугольников, основанием которых является линия, соединяющая Юпитер и Солнце. Эти вершины являются хорошо известными положениями относительного равновесия. Гелиоцентрический вектор одного из этих астероидов, по-видимому, может отклоняться от своего положения равновесия на 17° *). Поэтому колебания нельзя считать очень малыми. Естественно возникает вопрос, возможны ли колебания такого рода в дугах еще большей протяженности; и если да, то каким образом наиболее удобно получить орбиты.

* Л. Дж. Линдерс, Архивфор мат., Аст. оч Фыс., Со. Вет. Ак. я Стокгольм, Bd. 4, № 20.



Я сделаю несколько подковообразных орбит в формализме круговой ограниченной задачи трех тел и построю их на Python, а затем сравним с оценкой синодического периода, описанной в ответе @AtmosphericPrisonEscape .

Вкратце: Хорошее качественное совпадение, без сюрпризов!


Краткое изложение математики CR3BP в безразмерных единицах. Расстояние между двумя телами равно 1, как и гравитационная постоянная. Они вращаются вокруг общего центра масс по круговым орбитам с периодом 2 π . Это легче визуализировать и вычислить, если вы сделаете это во вращающейся системе координат, так что две массы будут фиксированными. Третье тело на позиции Икс , у , г считается, что гравитационное воздействие на первые два не оказывает.

мю "=" м 2 м 1 + м 2

Икс 1 "=" мю
Икс 2 "=" 1 мю

р 1 "=" ( Икс Икс 1 ) 2 + у 2 + г 2
р 2 "=" ( Икс Икс 2 ) 2 + у 2 + г 2

Якоби Энерджи С — сохраняющаяся величина в этой вращающейся системе отсчета:

С "=" Икс 2 + у 2 + 2 1 мю р 1 + 2 мю р 2 ( Икс ˙ 2 + у ˙ 2 + г ˙ 2 )

где Икс 2 + у 2 является псевдопотенциалом. Если вы установите условия, зависящие от скорости ( Икс ˙ 2 + у ˙ 2 + г ˙ 2 ) к нулю, вы получаете поверхность нулевой скорости , эту поверхность, которая вставлена ​​во многие/большинство вопросов об орбитах трех тел. Эти графики неприменимы, когда объект движется, поэтому вы не можете накладывать на них орбиты!

случайная кривая нулевой скорости

Ускорение, ощущаемое третьим телом в этой вращающейся системе отсчета, имеет ожидаемое 1 / р 2 силы и псевдосила , зависящая от скорости, которая не является реальной, но объясняет тот факт, что система отсчета вращается, а не инерционна.

Икс ¨ "=" Икс + 2 у ˙ ( 1 мю ) ( Икс + мю ) р 1 3 мю ( Икс 1 + мю ) р 2 3
у ¨ "=" у 2 Икс ˙ ( 1 мю ) у р 1 3 мю у р 2 3
г ¨ "=" ( 1 мю ) г р 1 3 мю г р 2 3


Вот некоторые расчеты. Я выбрал мю "=" 0,001 что довольно близко к ситуации Юпитера и Солнца. Я выбрал массив начальных точек в точке, противоположной м 2 примерно в Икс "=" 1 но это не то, что я действительно сделал. Что я действительно сделал, так это выбрал кучу начальных скоростей. 0,08 < у ˙ < 0,08 и для каждого я рассчитал позицию на Икс ось рядом Икс "=" 1 где ускорение в Икс направление было нулевым.

Это придает решениям небольшую начальную симметрию, но гало-орбиты неровные, извилистые и не всегда такие стабильные, так что в этом нет необходимости.

Я распространял каждую орбиту, пока она не возвращалась в ту же область, и останавливал ее, когда она пересекала ось x, создавая семейство полупериодов.

Короче говоря, метод, показанный в ответе @AtmosphericPrisonEscape для оценки времени цикла путем вычисления синодического периода в инерциальной системе отсчета, довольно хорошо согласуется с этими гало-орбитами, и это не должно быть очень удивительно!

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

вверху: полупериоды некоторых шатких подковообразных орбит

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

выше: время до первого пересечения оси X тех же шатких подковообразных орбит, используемое для расчета времени полупериода.

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

выше: время цикла из этого расчета (черные точки) по сравнению с синодическим методом оценки периода (красные точки). Хорошее качественное согласие. Также начальные скорости y в каждой начальной точке по x.

ниже: скрипт Python для этих графиков.

def x_acc(x, ydot):
    r1    = np.abs(x-x1)
    r2    = np.abs(x-x2)
    xddot = x + 2*ydot  -  ((1-mu)/r1**3)*(x+mu) - (mu/r2**3)*(x-(1-mu))
    return xddot

def C_calc(x, y, z, xdot, ydot, zdot):
    r1 = np.sqrt((x-x1)**2 + y**2 + z**2)
    r2 = np.sqrt((x-x2)**2 + y**2 + z**2)
    C = (x**2 + y**2 + 2.*(1-mu)/r1 + 2.*mu/r2 - (xdot**2 + ydot**2 + zdot**2))
    return C

def deriv(X, t): 
    x, y, z, xdot, ydot, zdot = X
    r1 = np.sqrt((x-x1)**2 + y**2 + z**2)
    r2 = np.sqrt((x-x2)**2 + y**2 + z**2)
    xddot = x + 2*ydot  -  ((1-mu)/r1**3)*(x+mu) - (mu/r2**3)*(x-(1-mu))
    yddot = y - 2*xdot  -  ((1-mu)/r1**3)*y      - (mu/r2**3)*y
    zddot =             -  ((1-mu)/r1**3)*z      - (mu/r2**3)*z
    return np.hstack((xdot, ydot, zdot, xddot, yddot, zddot))

# http://cosweb1.fau.edu/~jmirelesjames/hw4Notes.pdf

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint
from scipy.optimize import brentq

halfpi, pi, twopi = [f*np.pi for f in (0.5, 1, 2)]

mu = 0.001

x1 = -mu
x2 = 1. - mu

x = np.linspace(-1.4, 1.4, 1201)
y = np.linspace(-1.4, 1.4, 1201)

Y, X = np.meshgrid(y, x, indexing='ij')
Z    = np.zeros_like(X)

xdot, ydot, zdot = [np.zeros_like(X) for i in range(3)]

C = C_calc(X, Y, Z, xdot, ydot, zdot)
C[C>8] = np.nan

if True:
    plt.figure()
    plt.imshow(C)
    plt.colorbar()
    levels = np.arange(2.9, 3.2, 0.04) 
    CS = plt.contour(C, levels,
                 origin='lower',
                 linewidths=2) 
    plt.show()

ydot0s   = np.linspace(-0.08, 0.08, 20)
x0ydot0s = []
for ydot0 in ydot0s:
    x0, infob =  brentq(x_acc, -1.5, -0.5, args=(ydot0), xtol=1E-11, rtol=1E-11,
                           maxiter=100, full_output=True, disp=True)
    x0ydot0s.append((x0, ydot0))

states = [np.array([x0, 0, 0, 0, ydot0, 0]) for (x0, ydot0) in x0ydot0s]

times  = np.arange(0, 150, 0.01)

results = []
for X0 in states:
    answer, info = ODEint(deriv, X0, times, atol = 1E-11, full_output=True)
    results.append(answer.T.copy())

resultz = []
for x0ydot0, thing in zip(x0ydot0s, results):
    y     = thing[1]
    check = y[2:]*y[1:-1] < 0
    zc    = np.argmax(y[2:]*y[1:-1] < 0) + 1
    if zc > 10:
        resultz.append((thing, zc, x0ydot0))

if True:
    plt.figure()
    hw = 1.6
    for j, (thing, zc, x0ydot0) in enumerate(resultz):
        x, y = thing[:2,:zc]
        plt.plot(x, y)
    plt.xlim(-hw, hw)
    plt.ylim(-hw, hw)
    plt.plot([x1], [0], 'ok')
    plt.plot([x2], [0], 'ok')
    plt.show()

if True:
    plt.figure()
    for j, (thing, zc, x0ydot0) in enumerate(resultz):
        x, y = thing[:2]
        plt.plot(times[:zc], y[:zc])
    plt.show()

if True:
    plt.figure()
    for j, (thing, zc, x0ydot0) in enumerate(resultz):
        x0, ydot0 = x0ydot0
        cycle_time = 2. * times[zc] / twopi
        ratio = abs(x0/x2)
        T_simple_model = twopi * abs(x0/x2)**1.5
        T_synodic_simple_model = 1. / (1. - twopi/T_simple_model) # https://astronomy.stackexchange.com/a/25002/7982
        plt.subplot(2, 1, 1)
        plt.plot(x0, cycle_time, 'ok')
        plt.plot(x0, abs(T_synodic_simple_model), 'or')
        plt.subplot(2, 1, 2)
        plt.plot(x0, ydot0, 'ok')
    plt.subplot(2, 1, 1)
    plt.xlabel('x0', fontsize=16)
    plt.ylabel('cycle times (periods)', fontsize=16)
    plt.subplot(2, 1, 2)
    plt.xlabel('x0', fontsize=16)
    plt.ylabel('ydot0', fontsize=16)
    plt.show()
Ха, это мило. Вчера я также работал над своим собственным решателем с тремя телами, чтобы проверить формулу, но вы меня опередили.
@AtmosphericPrisonEscape Я занимаюсь этим очень давно, но мне предстоит пройти долгий путь.