开普勒方程 (英语:Kepler's equation )把轨道力学 中受到有心力 影响的轨道中天体多种几何性质联系起来。
图为五种由0到1不同离心率的开普勒方程解
这条方程最早由约翰内斯·开普勒 得出,推导过程见于他在1609年出版的著作《新天文学 》的第60章[ 1] [ 2] ,而他在著作《哥白尼天文学概要 》(1621年出版)的第五卷中还提出了此方程的一个迭代解[ 3] [ 4] 。这条方程在物理学史和数学史上都扮演着重要的角色,特别是在经典天体力学 史上。
开普勒方程 如下:
M
=
E
−
e
sin
E
{\displaystyle M=E-e\sin E}
其中M 为平近点角 ,E 为偏近点角 ,而e 则为离心率 .
偏近点角E 对于计算开普勒轨道上移动点的位置相当有用。比方说,天体在坐标x = a (1 − e ) 、y = 0 和时间t = t 0 时经过近星点,那么要找出天体在任意时间的位置的话,首先可由时间和平均运动 n 用方程M = n (t − t 0 ) 计算出平近点角M ,然后解上述的开普勒方程得E ,便能由下列方程求坐标:
x
=
a
(
cos
E
−
e
)
y
=
b
sin
E
{\displaystyle {\begin{array}{lcl}x&=&a(\cos E-e)\\y&=&b\sin E\end{array}}}
其中a 为半长轴 ,而b 则为半短轴 。
由于正弦 是超越函数 ,所以开普勒方程是超越方程 ,即是说不能用代数方法 解出E 。一般求E 需要用到数值分析 和级数 。
开普勒方程共有几种形式。每一种形式都同一种特定轨道类型有关。标准的开普勒方程用于椭圆轨道(0 ≤e <1)。双曲开普勒方程用于双曲轨迹(e ≫1)。径向开普勒方程用于线性(径向)轨迹 (e =1)。抛物线轨迹(e =1)则用巴克方程 。
当e = 0时,轨道是圆形的。增加e 会导致圆形变成椭圆。当e = 1时共有三种可能性:
抛物线轨迹;
沿着从吸引中心起始无限长射线向内或向外的轨迹;
或沿着由吸引中心和距其一定距离的点所形成的线段来回移动的轨迹。
把e 从1轻微增加会形成转角刚好低于180度的双曲轨道。继续增加数值会导致转角变小,而当e 趋向无限时,轨道则变成长度无限的直线。
双曲开普勒方程如下:
M
=
e
sinh
H
−
H
{\displaystyle M=e\sinh H-H}
其中H 为双曲偏近点角。
这条方程是通过把M 重新定义为−1的平方根 乘上椭圆方程的右边而得:
M
=
i
(
E
−
e
sin
E
)
{\displaystyle M=i\left(E-e\sin E\right)}
(其中E 现为虚数),然后以iH 取代E 。
径向开普勒方程如下:
t
(
x
)
=
sin
−
1
(
x
)
−
x
(
1
−
x
)
{\displaystyle t(x)=\sin ^{-1}({\sqrt {x}})-{\sqrt {x(1-x)}}}
其中t 与时间成正比,而x 则与射线上与吸引中心的距离成正比。下式是通过把开普勒方程成1/2 并把e 定为1而成:
t
(
x
)
=
1
2
[
E
−
sin
(
E
)
]
{\displaystyle t(x)={\frac {1}{2}}\left[E-\sin(E)\right]}
。
代入得
E
=
2
sin
−
1
(
x
)
{\displaystyle E=2\sin ^{-1}({\sqrt {x}})}
。
可以利用已知的E 值直接求出M 。但用已知M 值来求E 却要复杂得多。因为不存在解析解 。
可以使用拉格朗日反算法 写出开普勒方程解的级数 表达式,但所有e 和M 的组合都不能使级数收敛(见下文)。
文献中对开普勒方程可解性的混淆已存在了四个世纪[ 5] 开普勒本人曾对找得到通解的可能性表示怀疑。
“
对于它[开普勒方程]不能用演绎法求解这点我是足够满意的,因为弧和正弦之间有着本质上的差异。但若果我错了的话,任何人都应该给我指出来,而那个人在我眼中就是伟大的阿波罗尼奥斯 。
”
——约翰内斯·开普勒[ 6]
逆开普勒方程是所有实数值
e
{\displaystyle e}
的开普勒方程解:
E
=
{
∑
n
=
1
∞
M
n
3
n
!
lim
θ
→
0
+
(
d
n
−
1
d
θ
n
−
1
(
(
θ
θ
−
sin
(
θ
)
3
)
n
)
)
,
e
=
1
∑
n
=
1
∞
M
n
n
!
lim
θ
→
0
+
(
d
n
−
1
d
θ
n
−
1
(
(
θ
θ
−
e
sin
(
θ
)
)
n
)
)
,
e
≠
1
{\displaystyle E={\begin{cases}\displaystyle \sum _{n=1}^{\infty }{\frac {M^{\frac {n}{3}}}{n!}}\lim _{\theta \to 0^{+}}\!{\Bigg (}{\frac {\mathrm {d} ^{\,n-1}}{\mathrm {d} \theta ^{\,n-1}}}{\bigg (}{\bigg (}{\frac {\theta }{\sqrt[{3}]{\theta -\sin(\theta )}}}{\bigg )}^{\!\!\!n}{\bigg )}{\Bigg )},&e=1\\\displaystyle \sum _{n=1}^{\infty }{\frac {M^{n}}{n!}}\lim _{\theta \to 0^{+}}\!{\Bigg (}{\frac {\mathrm {d} ^{\,n-1}}{\mathrm {d} \theta ^{\,n-1}}}{\bigg (}{\Big (}{\frac {\theta }{\theta -e\sin(\theta )}}{\Big )}^{\!n}{\bigg )}{\Bigg )},&e\neq 1\end{cases}}}
展开得:
E
=
{
s
+
1
60
s
3
+
1
1400
s
5
+
1
25200
s
7
+
43
17248000
s
9
+
1213
7207200000
s
11
+
151439
12713500800000
s
13
+
⋯
|
s
=
(
6
M
)
1
/
3
,
e
=
1
1
1
−
e
M
−
e
(
1
−
e
)
4
M
3
3
!
+
(
9
e
2
+
e
)
(
1
−
e
)
7
M
5
5
!
−
(
225
e
3
+
54
e
2
+
e
)
(
1
−
e
)
10
M
7
7
!
+
(
11025
e
4
+
4131
e
3
+
243
e
2
+
e
)
(
1
−
e
)
13
M
9
9
!
+
⋯
,
e
≠
1
{\displaystyle E={\begin{cases}\displaystyle s+{\frac {1}{60}}s^{3}+{\frac {1}{1400}}s^{5}+{\frac {1}{25200}}s^{7}+{\frac {43}{17248000}}s^{9}+{\frac {1213}{7207200000}}s^{11}+{\frac {151439}{12713500800000}}s^{13}+\cdots {\bigg |}{s=(6M)^{1/3}},&e=1\\\\\displaystyle {\frac {1}{1-e}}M-{\frac {e}{(1-e)^{4}}}{\frac {M^{3}}{3!}}+{\frac {(9e^{2}+e)}{(1-e)^{7}}}{\frac {M^{5}}{5!}}-{\frac {(225e^{3}+54e^{2}+e)}{(1-e)^{10}}}{\frac {M^{7}}{7!}}+{\frac {(11025e^{4}+4131e^{3}+243e^{2}+e)}{(1-e)^{13}}}{\frac {M^{9}}{9!}}+\cdots ,&e\neq 1\end{cases}}}
以上的级数可用Wolfram Mathematica 的InverseSeries运算得出。
InverseSeries [ Series [ M - Sin [ M ], { M , 0 , 10 }]]
InverseSeries [ Series [ M - e Sin [ M ], { M , 0 , 10 }]]
这些函数只是简单的麦克劳林级数 。这样的超越函数泰勒级数写法可被视为那些函数的定义。因此,这个解是逆开普勒方程的正式定义。然而,在e 非零的时候,E 并不是M 的整函数 。其导数
d
M
/
d
E
=
1
−
e
cos
E
{\displaystyle dM/dE=1-e\cos E}
在e <1时于无限复数集合中趋向零。在
E
=
±
i
cosh
−
1
(
1
/
e
)
{\displaystyle E=\pm i\cosh ^{-1}(1/e)}
有解,而在这些值时
M
=
E
−
e
sin
E
=
±
i
(
cosh
−
1
(
1
/
e
)
−
1
−
e
2
)
{\displaystyle M=E-e\sin E=\pm i\left(\cosh ^{-1}(1/e)-{\sqrt {1-e^{2}}}\right)}
(其中逆cosh取正值),而dE/dM 在这些点则趋向无限。这意味着此麦克劳林级数的收敛半径为
cosh
−
1
(
1
/
e
)
−
1
−
e
2
{\displaystyle \cosh ^{-1}(1/e)-{\sqrt {1-e^{2}}}}
,并且当M 比这大时级数不会收敛。此级数还可用于双曲情况,此时其收敛半径为
cos
−
1
(
1
/
e
)
−
e
2
−
1
{\displaystyle \cos ^{-1}(1/e)-{\sqrt {e^{2}-1}}}
。当e =1时此级数只在M <2π 时收敛。
还可以写出用e 幂表示的麦克劳林级数。这级数在e 大于拉普拉斯极限 (约为0.66)时不会收敛,与M 值无关(除非M 为2π 的倍数),但若e 小于拉普拉斯极限时则级数在任何M 值时都会收敛。级数的系数除了第一个之外(只是M 而已),都与M 成周期式关系,周期为2π 。
逆径向开普勒方程(e = 1)可被写成:
x
(
t
)
=
∑
n
=
1
∞
[
lim
r
→
0
+
(
t
2
3
n
n
!
d
n
−
1
d
r
n
−
1
(
r
n
(
3
2
(
sin
−
1
(
r
)
−
r
−
r
2
)
)
−
2
3
n
)
)
]
{\displaystyle x(t)=\sum _{n=1}^{\infty }\left[\lim _{r\to 0^{+}}\left({\frac {t^{{\frac {2}{3}}n}}{n!}}{\frac {\mathrm {d} ^{\,n-1}}{\mathrm {d} r^{\,n-1}}}\!\left(r^{n}\left({\frac {3}{2}}{\Big (}\sin ^{-1}({\sqrt {r}})-{\sqrt {r-r^{2}}}{\Big )}\right)^{\!-{\frac {2}{3}}n}\right)\right)\right]}
展开得:
x
(
t
)
=
p
−
1
5
p
2
−
3
175
p
3
−
23
7875
p
4
−
1894
3931875
p
5
−
3293
21896875
p
6
−
2418092
62077640625
p
7
−
⋯
|
p
=
(
3
2
t
)
2
/
3
{\displaystyle x(t)=p-{\frac {1}{5}}p^{2}-{\frac {3}{175}}p^{3}-{\frac {23}{7875}}p^{4}-{\frac {1894}{3931875}}p^{5}-{\frac {3293}{21896875}}p^{6}-{\frac {2418092}{62077640625}}p^{7}-\ \cdots \ {\bigg |}{p=\left({\tfrac {3}{2}}t\right)^{2/3}}}
上述结果可用Wolfram Mathematica 求得:
InverseSeries [ Series [ ArcSin [ Sqrt [ t ]] - Sqrt [( 1 - t ) t ], { t , 0 , 15 }]]
逆问题在大部分的应用中都能以数值方法求得函数的根 :
f
(
E
)
=
E
−
e
sin
(
E
)
−
M
(
t
)
{\displaystyle f(E)=E-e\sin(E)-M(t)}
可以经牛顿法 来进行迭代:
E
n
+
1
=
E
n
−
f
(
E
n
)
f
′
(
E
n
)
=
E
n
−
E
n
−
e
sin
(
E
n
)
−
M
(
t
)
1
−
e
cos
(
E
n
)
{\displaystyle E_{n+1}=E_{n}-{\frac {f(E_{n})}{f'(E_{n})}}=E_{n}-{\frac {E_{n}-e\sin(E_{n})-M(t)}{1-e\cos(E_{n})}}}
注意在这个计算E 和M 的单位是弧度角。重复迭代直到已经达到想要的准确度(例如,当f(E) < 所需的准确度)。对大部分的椭圆轨道而言,起始值取E 0 = M (t ) 已经足够。而对e > 0.8的轨道而言,则应取起始值{{{1}}} 。相近的手法还可以用于开普勒方程的双曲形式[ 7] :66-67 。而在面对抛物线轨迹的个案时则使用巴克方程 。
开普勒方程常被声称“没有解释解”;例子见这里 (页面存档备份 ,存于互联网档案馆 )。至于这是否真确取决于是否认为无限级数(或不一定收敛的级数)算解释解。也有其他作者无理地声称此方程无解;例子见M. V. K. Chari, Sheppard Joel Salon 2000 Technology & Engineering.
Danby, J. M.; Burkardt, T. M. The solution of Kepler's equation. I. Cel. Mech. 1983, 31 : 95–107. Bibcode:1983CeMec..31...95D . doi:10.1007/BF01686811 .
Conway, B. A. An improved algorithm due to Laguere for the solution of Kepler's equation. 1986. doi:10.2514/6.1986-84 .
Mikkola, Seppo. A cubic approximation for Kepler's equation. Cel. Mech. 1987, 40 (3). Bibcode:1987CeMec..40..329M . doi:10.1007/BF01235850 .
Fukushima, Toshio. A method solving kepler's equation without transcendental function evaluations. Cel. Mech. Dyn. Astron. 1996, 66 (3): 309–319. Bibcode:1996CeMDA..66..309F . doi:10.1007/BF00049384 .
Charles, E. D.; Tatum, J. B. The convergence of Newton-Raphson iteration with Kepler's equation. Cel. Mech. Dyn. Astr. 1997, 69 (4): 357–372. Bibcode:1997CeMDA..69..357C . doi:10.1023/A:1008200607490 .
Stumpf, Laura. Chaotic behaviour in the newton iterative function associated with kepler's equation. Cel. Mech. Dyn. Astr. 1999, 74 (2): 95–109. doi:10.1023/A:1008339416143 .
Palacios, M. Kepler equation and accelerated Newton method. J. Comp. Appl. Math. 2002, 138 : 335–346. Bibcode:2002JCoAM.138..335P . doi:10.1016/S0377-0427(01)00369-7 .
Boyd, John P. Rootfinding for a transcendental equation without a first guess: Polynomialization of Kepler's equation through Chebyshev polynomial equation of the sine. Appl. Num. Math. 2007, 57 (1): 12–18. doi:10.1016/j.apnum.2005.11.010 .