
Системы отсчёта для определения орбиты
Для нахождения траекторий относительных движений в классической механике используется предположение об абсолютности времени во всех системах отсчета (как инерциальных, так и неинерциальных).
Используя данное предположение, рассмотрим движение одной и той же точки в двух различных системах отсчета
Будем описывать движение точки в системе
а относительная скорость
где

Таким образом, для нахождения закона движения точки в произвольной системе отсчета
1) задать закон движения точки —
2) задать закон движения —
3) определить закон движения точки —
Построение орбиты Луны в гелиоцентрической системе отсчета

В гелиоцентрической системе отсчета (система
где
Выражение (4) задает орбиту Луны (
Земля движется в гелиоцентрической системе координат (
С учётом (4) определим функции зависимости координат от времени:
Используя (5), получим пару координат для орбиты Луны:
Зададим число точек, в которых вычисляются координаты N=1000 и дискретное время на интервале периода вращения Земли
Определение орбит Земли и Луны
from numpy import* from matplotlib.pyplot import* R1=1.496*10**8#Числовые данные для расчётов взяты из публикации [6] T1=3.156*10**7 R2=3.844*10**5 T2=2.36*10**6 N=1000.0 def X(t): return R1*cos(2*pi*t/T1) def Y(t): return R1*sin(2*pi*t/T1) def x(t): return R2*cos(2*pi*t/T2) def y(t): return R2*sin(2*pi*t/T2) k=100 t=[T1*i/N for i in arange(0,k,1)] X=array([X(w) for w in t]) Y=array([Y(w) for w in t]) x=array([x(w) for w in t]) y=array([y(w) for w in t]) XG=X+x YG=Y+y figure() title("Траектория орбит Земли и Луны.\n Для положительных значений координат") xlabel('$X(t_{k})$,$X_{g}(t_{k})$') ylabel('$Y(t_{k})$,$Y_{g}(t_{k})$') axis([1.2*10**8,1.5*10**8,0,1*10**8]) plot(X,Y,label='Орбита Земли') plot(XG,YG,label='Орбита Луны') legend(loc='best') grid(True) show()
Получим:

Рис.1
Созданный график позволяет расширить учебную задачу и посмотреть какой будет орбита луны, если радиус орбиты Луны будет равен
Определение орбит Земли и Луны
изучения
from numpy import* from matplotlib.pyplot import* R1=1.496*10**8#Числовые данные для расчётов взяты из публикации [6] T1=3.156*10**7 R2=3.844*10**7 T2=2.36*10**6 N=1000.0 def X(t): return R1*cos(2*pi*t/T1) def Y(t): return R1*sin(2*pi*t/T1) def x(t): return R2*cos(2*pi*t/T2) def y(t): return R2*sin(2*pi*t/T2) t=[T1*i/N for i in arange(0,N,1)] X=array([X(w) for w in t]) Y=array([Y(w) for w in t]) x=array([x(w) for w in t]) y=array([y(w) for w in t]) XG=X+x YG=Y+y figure() title("Гелиоцентрическая орбита Земли и Луны") xlabel('$X(t_{k})$,$X_{g}(t_{k})$') ylabel('$Y(t_{k})$,$Y_{g}(t_{k})$') axis([-2.0*10**8,2.0*10**8,-2.0*10**8,2.0*10**8]) plot(X,Y,label='Орбита Земли') plot(XG,YG,label='Орбита Луны') legend(loc='best') grid(True) show()
Получим:

Рис.2
Сравнивая орбиты Луны, представленные на рис. 1 и 2, обнаруживаем их существенные отличия. Для объяснения причины этих отличий необходимо сравнить линейные скорости движения Луны в первом и во втором случае и линейную скорость движения Земли.
Так как направление линейной скорости движения Земли относительно Солнца, как и направление линейной скорости движения Луны относительно Земли, меняется во времени, а скорость остается постоянной по величине.
В качестве количественной характеристики соотношения линейных скоростей движения Луны и Земли в гелиоцентрической системе координат следует выбрать разность между модулем линейной скорости движения Земли и проекцией линейной скорости Луны на направление вектора линейной скорости Земли:
Определим функции, описывающие законы изменения составляющих скорости Земли и Луны:
Чтобы определить результирующую скорость с учётом проекции, воспользуемся соотношением:
Напишем программу с учётом(5), (8), (9) и радиуса орбиты Луны
Луна и Земля движутся в одном направлении
from numpy import* from matplotlib.pyplot import* R1=1.496*10**8#Числовые данные для расчётов взяты из публикации [6] T1=3.156*10**7 R2=3.844*10**5 T2=2.36*10**6 N=1000.0 k1=2*pi/T1 k2=2*pi/T2 def Vx(t): return -k1*R1*sin(k1*t) def Vy(t): return k1*R1*cos(k1*t) def vx(t): return -k2*R2*sin(k2*t) def vy(t): return k2*R2*cos(k2*t) def D(t): return sqrt(Vx(t)**2+Vy(t)**2)-sqrt(vx(t)**2+vy(t)**2)*(Vx(t)*vx(t)+Vy(t)*vy(t))/((sqrt(Vx(t)**2+Vy(t)**2))*(sqrt(vx(t)**2+vy(t)**2))) x=[T1*i/N for i in arange(0,N,1)] y=[D(t) for t in x] title("Луна движется в одном направлении с Землёй \n Радиус орбиты Луны R2=3.844*10**5 км.") xlabel('t') ylabel('D(t)') plot(x,y) show()
Получим:

Рис.3.
Напишем программу с учётом (5), (8), (9) и радиуса орбиты Луны R2=3.844*10**7 км:
Луна периодически движется в противоположном к Земле направлению
from matplotlib.pyplot import* R1=1.496*10**8#Числовые данные для расчётов взяты из публикации [6] T1=3.156*10**7 R2=3.844*10**7 T2=2.36*10**6 N=1000.0 k1=2*pi/T1 k2=2*pi/T2 def Vx(t): return -k1*R1*sin(k1*t) def Vy(t): return k1*R1*cos(k1*t) def vx(t): return -k2*R2*sin(k2*t) def vy(t): return k2*R2*cos(k2*t) def D(t): return sqrt(Vx(t)**2+Vy(t)**2)-sqrt(vx(t)**2+vy(t)**2)*(Vx(t)*vx(t)+Vy(t)*vy(t))/((sqrt(Vx(t)**2+Vy(t)**2))*(sqrt(vx(t)**2+vy(t)**2))) x=[T1*i/N for i in arange(0,N,1)] y=[D(t) for t in x] title(" Периодически Луна движется в противоположном к Земле \n направлению. Радиус орбиты Луны R2=3.844*10**7 км.") xlabel('t') ylabel('D(t)') plot(x,y) show()
Получим:

Рис.4.
Анализ зависимостей позволяет объяснить причину отличий орбит. Функция D(t) при
Построение орбиты Марса в системе отсчета, связанной с Землей
.
В гелиоцентрической системе отсчета (система К) Земля движется по окружности радиуса
Полному обороту по эллипсу соответствует изменение параметра <img
Для построения орбиты Марса в системе отсчёта связанной с Землёй воспользуемся ранее приведенными параметрами орбит Земли и Марса, соотношениями (10)-(12), а также соотношениями для координат Земли:
Следует учесть, что число периодов обращения Марса вокруг Солнца равно
Орбита Марса в системе отсчёта Земли
from numpy import* from matplotlib.pyplot import* R1=1.496*10e8#Числовые данные для расчётов взяты из публикации [4] T1=365.24 am=2.28*10e8 Tm=689.98 ee=0.093 N=36000 def x(g): return am*(cos(g)-ee) def y(g): return am*sqrt(1-ee**2)*sin(g) def t(g): return Tm*(g-ee*sin(g))/2*pi def X(g): return R1*cos(2*pi*t(g)/T1) def Y(g): return R1*sin(2*pi*t(g)/T1) y=array([y(2*pi*i/N) for i in arange(0,N,1)]) x=array([x(2*pi*i/N) for i in arange(0,N,1)]) X=array([X(2*pi*i/N) for i in arange(0,N,1)]) Y=array([Y(2*pi*i/N) for i in arange(0,N,1)]) t=array([t(2*pi*i/N) for i in arange(0,N,1)]) figure() title("Гелиоцентрические орбиты Земли и Марса") xlabel('x(g),X(g)') ylabel('y(g),Y(g)') plot(x,y,label='Орбита Марса') plot(X,Y,label='Орбита Земли') legend(loc='best') figure() title("Положение Марса в системе отсчёта связанной с Землёй") xlabel('x1/10e8') ylabel('y1(g/10e8') x1=(x-X) y1=(y-Y) plot(x1/10e8,y1/10e8) figure() title("Зависимость расстояния между Землёй и Марсом \n от времени в годах") xlabel('t/365.24') ylabel('sqrt(x1**2+y1**2)/10e8') y2=sqrt(x1**2+y1**2)/10e8 x2=t/365.24 plot(x2,y2) show()
Получим:

Рис.5
Вычислим координаты радиус-вектора, описывающего положение Марса в системе отсчета связанной с Землей, и построим орбиты (Рис.6), используя соотношение:

Рис.6
Еще одной важной характеристикой движения Марса (в первую очередь для межпланетных космических полетов) является расстояние между Землей и Марсом s(t), которое определяется модулем радиус-вектора, описывающего положение Марса в системе отсчета, связанной с Землей. Зависимость расстояния между Землей и Марсом от времени, измеряемого в земных годах, представлена на рис.7.

Рис.7
Анализ зависимости, представленной на рис.7, показывает, что расстояние между Землей и Марсом является сложной периодической функцией времени. Если воспользоваться терминологией теории сигналов [5], то о зависимости s(t) можно сказать, что она представляет собой амплитудно-модулированный сигнал, который принято представлять в виде произведения двух функций высокочастотной (несущей) и низкочастотной функции, задающей амплитудную модуляцию (огибающей):
где
Из рис.7 видно, что период несущей составляет примерно 2 года, период модулирующей функции примерно 17 лет]6].
Построение гелиоцентрической орбиты кометы Галлея

В последний раз комета Галлея проходила через свой перигелий (ближайшая к Солнцу точка орбиты) 9 февраля 1986 года. (Само Солнце считается расположенным в начале координат.)
Координаты и компоненты скорости кометы Галлея в тот момент были равны
где:
Построение гелиоцентрической орбиты кометы Галлея
from numpy import* from scipy.integrate import odeint import matplotlib.pyplot as plt from matplotlib.patches import Circle def f(y, t): y1, y2, y3, y4,y5,y6 = y return [y2, -(4*pi*pi*y1)/(y1**2+y3**2 +y5**2)**(3/2),y4,-(4*pi*pi*y3)/(y1**2+y3**2 +y5**2)**(3/2),y6,-(4*pi*pi*y5)/(y1**2+y3**2 +y5**2)**(3/2)] t = linspace(0,300,10001) y0 = [0.325514,-9.096111, -0.459460,-6.916686,0.166229,-1.305721] [y1,y2, y3, y4,y5,y6]=odeint(f, y0, t, full_output=False).T fig, ax = plt.subplots() plt.title("Орбита кометы Галлея(расстояние в а.е., время в годах) \n Солнце в центре координат") plt.xlabel('x(t)') plt.ylabel('y(t)') fig.set_facecolor('white') ax.plot(y1,y3,linewidth=1) circle = Circle((0, 0), 0.2, facecolor='orange') ax.add_patch(circle) plt.axis([1,-21,-1,29]) plt.grid(True) fig, ax = plt.subplots() plt.title("Орбита кометы Галлея \n Солнце в центре координат") plt.xlabel('x(t)') plt.ylabel('z(t)') fig.set_facecolor('white') ax.plot(y1,y5,linewidth=1) circle = Circle((0, 0), 0.1, facecolor='orange') ax.add_patch(circle) plt.axis([1,-21,1,-11]) plt.grid(True) fig, ax = plt.subplots() plt.title("Орбита кометы Галлея \n Солнце в центре координат") plt.xlabel('y(t)') plt.ylabel('z(t)') fig.set_facecolor('white') ax.plot(y3,y5,linewidth=1) circle = Circle((0, 0), 0.2, facecolor='orange') ax.add_patch(circle) plt.axis([-1,29,1,-11]) plt.grid(True) fig, ax = plt.subplots() plt.title("Проекция скорости движения кометы Галлея \n на плоскости ZOX и ZOY ") ax.plot(t,y1,linewidth=1) ax.plot(t,y3,linewidth=1) plt.show()
Получим:




Ваша собственная комета
Попробуйте провести эксперимент. В ночь вы установите свой телескоп на вершине, недалеко расположенной от вашего дома возвышенности. Ночь должна быть ясной, безоблачной, звездной и, если вам улыбнулась фортуна: в 0 часов 30 минут ночи вы заметите новую комету.
После повторных наблюдений в следующие ночи вам удастся вычислить ее координаты в ту первую ночь. Координаты в гелиоцентрической системе координат: P0= (x0, y0, z0) и и вектор скорости v0 = (vx0, vy0, vz0).
Используя эти данные, определите:
- расстояние кометы от Солнца в перигелии (самая близкая к Солнцу точка орбиты) и в афелии (самая дальняя от Солнца точка орбиты);
- скорости кометы при прохождении через перигелий и через афелий;
- период обращения кометы вокруг Солнца;
- следующие две даты прохождения кометы через перигелий.
Если измерять расстояние в астрономических единицах, а время — в годах, то уравнение движения кометы примут вид (18). Для вашей собственной кометы выберите произвольные начальные координаты и скорости того же порядка, что и у кометы Галлея.
В случае необходимости, повторно осуществляйте произвольный выбор начального положения и вектора скорости до тех пор, пока не получите правдоподобную эксцентрическую орбиту, выходящую за пределы орбиты Земли (как у большинства настоящих комет).
Ссылки:
- Фейнман Р., Лейтон Р., Сэндс М. Фейнмановские лекции по физике. 3-е изд. Т. 1.-2. М.: Мир, 1977.
- Матвеев А. Н. Механики и теория относительности. М.: Высш. шк., 1986.
- Физическая энциклопедия. Т. 3. М.: Большая российская энциклопедия, 1992.
- Ландау Л. Д., Лифшиц Е. М. Курс теоретической физики. Механика. М.: Фю-матгиз, 1958.
- Баскаков С. И. Радиотехнические цепи и сигналы. М.: Высш. шк., 1988.
- Поршнев C.В. Компьютерное моделирование физических процессов с использованием пакета mathcad.
