](http://upload-images.jianshu.io/upload_images/3574753-565318cf76a0183f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Abstract
万有引力定律被普遍认为与两个物体之间的距离平方的反比有关,从1687年牛顿的总结到如今,平方反比定律经过无数次的检验,依然保持着高度的准确性。本文将以星体运动为背景粗略探讨平方反比律。
宇宙中每个质点都以一种力吸引其他各个质点。这种力与各质点的质量的乘积成正比,与它们之间距离的平方成反比。
Every particle in the universe attracts every other particle with a force that is directly proportional to the product of their masses and inversely proportional to the square of the distance between them.
<center> ——艾萨克·牛顿,《自然哲学的数学原理》</center>
Background
太阳系是被太阳的引力系结在一起的系统,包括轨道直接或间接绕行它的天体。轨道环绕太阳的天体被分为三类:行星、矮行星、和太阳系小天体。太阳系中的各星体在万有引力的作用下,形成各自形状,运行轨道相对稳定的状态。
平方反比律,即万有引力定律:
$$F = G \frac{m_1m_2}{r^2}$$
$G = (6.67408 \pm 0.00031)\times 10{-11}m3/(kg\cdot s^2)$
在两个物体之间的距离远大于物体的几何尺寸时,物体可以近似看作质点,这个公式才是适用的。
当我们让$$F = G \frac{m_1m_2}{r^{\beta}}$$
中的 $\beta$ 不等于$2$时,有趣的事发生了。
Fist Things First: Draw A Planetary Orbit
在物体运动轨迹呈周期性时,不应使用欧拉法直接计算运动轨迹,而是采用Euler-Cromer method
进行 Numerical Computation
。
<center>Pseudocode for Planet Orbit Calc</center>
- $F_{G,x}=-\frac{GM_SM_E}{r{\beta}}cos\theta=-\frac{GM_SM_Ex}{r{\beta+1}}$
- At each time step $i$ calculate the position$(x,y)$ and velocity $(v_x,v_y)$ for time step $i+1$.
- Calc the distance $r_i$ from the sun:$r_i=(x2_i+y2_x)^{1/2}$
- Compute $v_{x,i+1}=v_{x,i}-\frac{4\pi x_i}{r^{\beta+1}i}\Delta t$ and $v{y,i+1}=v_{y,i}-\frac{4\pi y_i}{r^{\beta+1}_i}\Delta t$
- The Euler-Cromer step:$x_{i+1}=x_i+v_{x,i+1}\Delta t$, $y_{i+1}=y_i+v_{y,i+1}\Delta t$
Repeat...
类型 | 天文单位AU | 换算 |
---|---|---|
距离 | AU | $1 AU \approx 1.5 \times 10^{11}m$ |
时间 | year(yr) | $1 yr=3156000 s$ |
质量组合常数 | 组合常数 | $GM_S=v2r=4\pi2AU3/yr2$ |
注意,在太阳系中由于星体本身质量巨大,距离远,轨道周期长,使用国际单位制显然不合适,于是我们使用天文单位:
类型 | 天文单位AU | 换算 |
---|---|---|
距离 | AU | $1 AU \approx 1.5 \times 10^{11}m$ |
时间 | year(yr) | $1 yr=3156000 s$ |
质量组合常数 | 组合常数 | $GM_S=v2r=4\pi2AU3/yr2$ |
可以由计算得到:当$v_{x,0}=0,v_{y,0}=2\pi(AU/yr)$时,行星运动轨迹是一个标准圆。实际中八大行星的运动轨迹都不是标准的圆,水星(Mercury)的离心率甚至达到了0.206左右。地球的离心率约为0.017。还是挺圆的。
那么我们可以通过改变初速度$v_0$的方式使行星运动轨迹接近真实情况。
Who Changes the $\beta$ ?
- 不同$\beta$值下,椭圆行星轨迹的变化,注意$\beta=3$时,可怜的行星被巨大的万有引力拉向了太阳,在质点模型下这个小可怜在被拉向中心后会被笔直地甩开,呈几乎匀速直线运动远离中心。
上图使用$\Delta t = 0.001 (yr),Total time=2,2,1,3,0.263(approximate)(yr)$绘制多周期轨迹。从子图1中看一看出即使$\beta=2$,轨迹在远离近日点/远日点处抖动也十分严重。于是我们进一步作死缩小时间步长。
[]
- 于是将$\Delta t$ 缩小至$ 0.001 (yr)$,却带来了计算量暴增的问题。为此引入
numba
库对运算函数进行编译和硬件优化,以减少运算时间:
from numba import jit
# Exercise 4.9
#使用@jit让函数在运行前被编译,有利于加速运算,
@jit
def cruisingx(beta,total_time,initvy):
initx = 1
inity = 0
...
@jit
def cruisingy(beta,total_time,initvy):
...
total_time = 100
no @jit: @6.209s taken for {drawpic},
using @jit: @0.975s taken for {drawpic}
total_time = 500
no @jit: @30.116s taken for {drawpic}
using @jit: @2.812ss taken for {drawpic}
- 重新绘制的图像。
- 在$\beta=2$时,即使时间长达100年,积累误差也不会太大。
different $\beta$ for circular orbit
将$\beta$取不同值时的行星运动轨迹画出,在轨迹稳定的前提下,将时间尽可能取长,上限1000年(时间再长的话在屏幕上画出图像的时间会远远超过计算轨迹的时间...)。
- 第一行为$\beta < 3$时的轨道,为了不使图中轨道过于稠密,我将前四个图轨道中的点按隔数千个取值一次的方式画出轨迹图。
可见在$\beta < 3$时,圆轨道都在相当一段时间内是稳定的。$\beta > 3$以后,轨迹会在段时间内被吸向中心。接下来会发生什么我就不得而知了。
- 如果中心只是个质点,那么这可怜的星球不但会被拉向中心,还在某一刻速度达到逃逸速度,挣脱引力,逃离中心,飞出太阳系,飞向宇宙深处......
扯远了。时间缩短至20年,并且将运动轨迹局部放大,(当然,$\beta > 3$时我们只取轨道逃逸前的最长时间)
在$\beta > 3$时,星球们会被牛顿万有引力如何玩弄:
- $\beta = 3.001,total time = 50(yr)$,仅仅半生时间,这颗星球便已躁动不安。
- $\beta = 3.01,total time = 50(yr)$,
这不是,小时候经常看到广告的大大卷么 - 可以想象,行星先向心运动,再离心运动,在某一刻万有引力再也拉不住这颗脱缰的行星,这颗星
我们还注意到,在第一幅图中,在$\beta = 3.0$时,轨道轨迹线同时向内向外延展了,那么是在什么时候做向心运动,又是在什么时候做离心运动呢?
- 上图为前250年,下图为后250年的轨迹采样。我们可知,大致在200年前后,行星运动模式由向心变为离心。
different $\beta$ for elliptical orbit
按照上面的格式,我们依然取同样的$\beta$值,但是降低初速度,使轨道变为椭圆。易证,远日点的速度小于$2\pi (AU/yr)$,近日点速度大于$2\pi (AU/yr)$。
- 很明显,椭圆轨道在$\beta$取值变化时具有更低的稳定性。
第一行第三幅图,同样的时间,同样的$\beta$值,椭圆轨道中的行星已经走远...
$\beta=3$时亦然,圆轨道情况想还能保持近似圆形的图案。
以上大致能说明,在$\beta \neq 2$时,椭圆轨道的稳定性是远不如圆轨道的。
原因分析:椭圆轨道每个点速度不同。在近日点/远日点动能达到极大/极小,而动能的不一致容易导致轨道稳定性崩塌。
将时间不同程度缩短以使所有轨迹都呈现:
Different initial velocity for the same $\beta$
由上面讨论可知,同样的$\beta$值,圆轨道稳定性大于椭圆轨道,现猜测同样初始位置,初速度越小的椭圆轨道越不稳定。
- 由上图知。
将同一$\beta$值下的圆和椭圆轨道绘制在一张图内:
Conclusion
经过以上讨论,才进一步认识到平方反比律,其中平方二字的重要性,几乎是这个世界存在之合理性的最重要解释。感谢这个有序的世界。
Acknowledgements!
- Compiling Python code with @jit
- 彭辰铭和邱伟与我讨论了圆轨道在$\beta=3.0$时轨道的运动趋势。
- 课本?