三体问题以及木星对地球轨道的影响

在之前的对行星运动的讨论中,我们只关注两体间的作用力对轨道造成的影响,这一次我们考虑三个物体间的相互作用力对物体运动轨道的影响,即三体问题。

In physics and classical mechanics, the three-body problem is the problem of taking an initial set of data that specifies the positions, masses and velocities of three bodies for some particular point in time and then determining the motions of the three bodies, in accordance with the laws of classical mechanics (Newton's laws of motion and of universal gravitation). The three-body problem is a special case of the n-body problem.

理论求解

木星与地球之间的相互作用力为:
![](http://latex.codecogs.com/png.latex?F_{E,J}=\frac{GM_JM_E}{r_{EJ}^2} \newline M_J:the\ mass\ of\ Jupiter \newline r_{EJ}:the\ distance\ between\ Earth\ and\ Jupiter)


将地球与木星之间的相互作用力投影到x轴:


因此,x方向上的速度变化为:


,
同时我们在这里可以做一个简化处理:


)
其中,太阳和木星的质量已给出。

具体算法

在每次迭代中面积算地球,木星的位置和速度

  • 计算地球、木星和太阳之间的距离

    =\sqrt{x_e(i)2+y_e(i)2}\ r_j(i)=\sqrt{x_j(i)2+y_j(i)2})

  • 计算地球的实时速度
    ![](http://latex.codecogs.com/png.latex?v_{e,x}(i+1)=v_{e,x}(i)-\frac{4\pi2x_e(i)}{r_e(i)3}\Delta t-\frac{4\pi2(M_J/M_S)[x_e(i)-x_j(i)]}{r_{EJ}(i)3})

  • 计算木星的实时速度
    ![](http://latex.codecogs.com/png.latex?v_{j,x}(i+1)=v_{j,x}(i)-\frac{4\pi2x_j(i)}{r_j(i)3}\Delta t-\frac{4\pi2(M_E/M_S)[x_j(i)-x_e(i)]}{r_{EJ}(i)3})

  • 使用欧勒法计算地球和木星的位置

    木星位置的计算方法和上面类似

  • 将新位置的点绘制出来

  • 进行下一次迭代

具体代码

# -*- coding: utf-8 -*-
#  author:Ricardo #
# three body simulation #
import math
import numpy as np
import matplotlib.pyplot as pl
class PlanetOrbit:
    def __init__(self,time_step=0.001,init_ex=1.00,init_ey=0,init_jx=5.20,init_jy=0,init_evx=0,
        init_evy=2*math.pi,init_jvx=0,init_jvy=0.872*math.pi,total_time=3.65,M_J=1900000,M_S=2000000,M_E=6.0):
        self.Kep = 4*pow(math.pi,2)
        self.dt = time_step
        self.re = []            #distance between sun and earth
        self.rj = []            #distance between sun and jupiter
        self.r_ej = []          #distance between earth and jupiter
        self.e_x = [init_ex]        #the x position of earth
        self.e_y = [init_ey]        #the y position of earth
        self.j_x = [init_jx]        #the x position of jupiter
        self.j_y = [init_jy]        #the y position of jupiter
        self.v_ex = [init_evx]      #the x-speed of earth 
        self.v_ey = [init_evy]      #the y-speed of earth
        self.v_jx = [init_jvx]      #the x-speed of jupiter
        self.v_jy = [init_jvy]      #the y-speed of jupiter
        self.t = total_time
        self.parameter_M_JS=M_J/M_S        #the value of M_J/M_S
        self.parameter_M_ES=M_E/M_S         #the value of M_E/M_S
    def run(self):
        loop = True
        i=0
        while(loop):
            # calculate the distances among Earth,Jupiter and Sun:
            self.re.append(pow((pow(self.e_x[i],2)+pow(self.e_y[i],2)),0.5))
            self.rj.append(pow((pow(self.j_x[i],2)+pow(self.j_y[i],2)),0.5))
            self.r_ej.append(pow((pow((self.e_x[i]-self.j_x[i]),2)+pow((self.e_y[i]-self.j_y[i]),2)),0.5))

            # Compute the new velocity of Earth
            self.v_ex.append(self.v_ex[i]-(self.Kep*self.e_x[i]/pow(self.re[i],3))*self.dt-(self.Kep*self.parameter_M_JS*(self.e_x[i]-self.j_x[i]))/pow(self.r_ej[i],3)*self.dt)

            self.v_ey.append(self.v_ey[i]-(self.Kep*self.e_y[i]/pow(self.re[i],3))*self.dt-(self.Kep*self.parameter_M_JS*(self.e_y[i]-self.j_y[i]))/pow(self.r_ej[i],3)*self.dt)

            # Compute the new velocity of Jupiter
            self.v_jx.append(self.v_jx[i]-(self.Kep*self.j_x[i]/pow(self.rj[i],3))*self.dt-(self.Kep*self.parameter_M_ES*(self.j_x[i]-self.e_x[i]))/pow(self.r_ej[i],3)*self.dt)

            self.v_jy.append(self.v_jy[i]-(self.Kep*self.j_y[i]/pow(self.rj[i],3))*self.dt-(self.Kep*self.parameter_M_ES*(self.j_y[i]-self.e_y[i]))/pow(self.r_ej[i],3)*self.dt)

            # calculate the new position of Earth and Jupiter
            # Earth
            self.e_x.append(self.e_x[i]+self.v_ex[i+1]*self.dt)
            self.e_y.append(self.e_y[i]+self.v_ey[i+1]*self.dt)
            # Jupiter
            self.j_x.append(self.j_x[i]+self.v_jx[i+1]*self.dt)
            self.j_y.append(self.j_y[i]+self.v_jy[i+1]*self.dt)

            # i increase
            i += 1
            if (i>=(self.t/self.dt-1)):
                loop = False
    def DrawOrbit(self):
        pl.plot(self.e_x,self.e_y,'.',markersize=2,label="Mass of Jupiter = M_J")
        pl.plot(self.j_x,self.j_y,'.',markersize=2)
        pl.title('3-body simulation Earth plus Jupiter')
        pl.xlabel('x(AU)')
        pl.ylabel('y(AU)')
        pl.axis('equal' )
        pl.legend()
        pl.show()

结果分析


可以发现,木星的质量对地球轨道几乎没有影响,即使将它的质量增大到原来的十倍,也看不出有什么影响


当木星质量增大到原来的1000倍时,地球轨道就受到了严重的影响...

但是上面的计算还没有考虑太阳受到它们的影响时轨道的变化...

因此,接下来我将太阳的运动也一起放进去计算....


画出了地球的轨道2333

关于Hyperion运动轨道的讨论

Hyperion, also known as Saturn VII (7), is a moon of Saturn discovered by William Cranch Bond, George Phillips Bond and William Lassell in 1848. It is distinguished by its irregular shape, its chaotic rotation, and its unexplained sponge-like appearance. It was the first non-round moon to be discovered.
The Voyager 2 images and subsequent ground-based photometry indicated that Hyperion's rotation is chaotic, that is, its axis of rotation wobbles so much that its orientation in space is unpredictable. Its Lyapunov time is around 30 days.[16] Hyperion, together with Pluto's moons Nix and Hydra,[17][18] is among only a few moons in the Solar System known to rotate chaotically, although it is expected to be common in binary asteroids.[19] It is also the only regular planetary natural satellite in the Solar System known not to be tidally locked.

Hyperion

理论求解

可以将Hyperion看作由一根刚性杆连接的两个小球1和2,小球1和小球2分别受到土星的引力作用,小球1受到的引力为:
![](http://latex.codecogs.com/png.latex?\vec{F_1}=-\frac{GM_{Sat}m_1}{r_1^3}(x_1\vec{i}+y_1\vec{j})\newline M_{Sat}:the\ of\ Saturn \newline r_1:the\ distance\ from\ Saturn\ to\ m_1)
小球2 的受力情况与上面类似。

因此,小球1受到的力矩为:



小球2受到的力矩也是如此。

因此Hyperion角速度的变化如下所示:



其中:


将上述式子标量化之后得到:
![](http://latex.codecogs.com/png.latex?\frac{d\omega}{dt}\approx -\frac{3GM_{Sat}}{r_c^3}(x_csin\theta-y_ccos\theta)(x_ccos\theta+y_csin\theta)\newline \newline r_c:the\ distance\ from\ the\ center\ of\ mass\ to\ Saturn)
![](http://latex.codecogs.com/png.latex?\omega = \frac{d\theta}{dt})

模拟结果分析


为了简化计算,我们令Hyperion的质心离土星的距离为1HU(which might be called "Hyperion unit"),环绕周期为1"Hyperion-year",时间步伐为0.0001Hyperion-year


当将Hyperion的初始速度稍微增大时,就出现了混沌现象。


继续增大其初始速度,Hyperion的运动将更不规律。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容

  • 我们正式分手了之前一直不愿意承认但这一次,是我亲口下了判决书 抛掉所有的无助和不甘,我们分手了 抛掉了:难得找到一...
    吊燈下的幽灵馬阅读 510评论 0 1
  • 我曾想象我们无数次的相遇 想象过无数次我们的出场方式 想象过无数次的相遇背景 会一笑而过 会闲谈两句 会相互依伴 ...
    LJNNNNNNNNNNNNN阅读 190评论 0 0
  • 你觉得自己虚伪吗?或者,你曾经虚伪过吗? 很多人会回答不,可是,在我们如今的时代里,从来不虚伪的人,估计是很难存在...
    东篱书院阅读 590评论 7 29
  • 喜欢这种玫瑰鱼的原因之一是,它是最安静的思考者,无人打扰的情况下,在水中一动不动可达数小时,佩服它这种不受其他鱼影...
    育儿圈阅读 3,895评论 1 1
  • 我们的《农耕课》从四月份申报,5.19启动《升子》课,6.03牛沟小学《笼嘴》课,6.14第三次研讨,...
    富贵w阅读 549评论 0 0