吴连大 张明江
(1 中国科学院紫金山天文台南京 210023)
(2 中国科学院空间目标与碎片观测重点实验室南京 210023)
利用递推公式(R1)–(R3),可以进行n递推;利用递推公式(R4),可以进行m递推.利用递推公式(R1)–(R3)进行n向前递推,需要辅助递推.
举个例子,考察下列递推过程:
综上所述,利用递推公式(R1)–(R4),可以实行的递推,如表1所示.由表1可知,这里没有普通Hansen系数的一行初值向后递推公式,也缺少偏心率函数的向前递推的辅助递推公式.
表1 4种基本递推可以实行的递推Table 1 The recursions implemented by four basic recursion formulae
利用基本递推公式(R1)和(R2),不难推导出普通Hansen系数的一行初值向后递推公式,具体推导方法如下:
此即我们需要的普通Hansen系数的一行初值向后递推公式.
递推公式(R5)为连续3推1方式,向后递推.它的另一个用处是:可以将不是偏心率函数的Hansen系数,表达成3个偏心率函数的组合.
偏心率函数向前递推,一般采用递推公式(R1)和(R3)进行递推.考察如下向前递推过程:
其中,未被划去的函数均是偏心率函数,我们希望递推均在这些函数中进行.从已知的初值(第1、第2行),递推到第3行,中间的偏心率函数均可递推处理.但是,两头的递推不出来,这时需要补充新的递推公式.
对于普通的Hansen系数(包括上述递推中的所有函数),可以利用递推公式(R4)进行递推.但是,对于偏心率函数,在一行中是不连续的,偏心率函数和普通的Hansen系数交替出现,普通的Hansen系数是不能参加递推的,这就必须推导新的递推公式.
不失一般性,考察下面5个偏心率函数:
如果能够推导出这5个函数的递推关系,这个问题也就解决了.
下文利用(R4)和(R5)两个递推公式,推导给出偏心率函数向前递推需要的辅助递推公式,具体推导方法如下:
(R5)式中,m ⇒m+1,乘以(m−1),得到
(R5)式中,m ⇒m−1,乘以(m+1),得到
将(3)和(4)式代入(R4)式,乘以(m+1)(m−1),即得
此即我们需要的递推公式.
上述(R6-1)和(R6-2)式,就是偏心率函数递推所需要的辅助递推公式.
值得说明的是,Vakhidov利用如下递推[6]:
注意:上述(V1)和(V2)式中,s ⇒k,n ⇒−n,相应函数表达形式即与本文一致.显然,Vakhidov给出的表达式(V1)和(V2)[6],比公式(R6-2)复杂得多.
Hansen系数的(R5)向后递推,需要计算一行初值,递推过程如下:
这种向后递推,可以递推出所有Hansen系数,没有像向前递推那样需要“另外计算”的函数;而且,没有奇点,也没有e分母.从公式上看,这是一种安全的递推,只是初值计算量要大一些.
顺便说一下,递推出Hansen系数后,Hansen系数的导数可以利用Hansen系数计算.从这个意义上讲,这种方法多计算的“无用的”函数也不能认为是完全无用的.
偏心率函数的向前递推过程如下:
其中,未被划去的函数均是偏心率函数.首先,利用递推公式(R1),递推出中间的偏心率函数(当m=0时,利用递推公式(R3)递推);然后,利用公式(R6-1)和(R6-2),计算两头的.
对于给定的k和N(n的上限),给定偏心率函数的两行初值:
(R5)向后递推方法,适用于普通Hansen系数的递推,这种方法最简单;(R6)向前递推方法,适用于偏心率函数的递推,这种方法实际上利用了(R1)、(R3)和(R6)3种递推公式,计算程序比较复杂.
对于k=1、偏心率e=0.1,相应计算结果如表2所示.这里给出该算例的目的是为了清晰地展现(R5)和(R6)递推方法的递推过程:需要哪些初值,递推出哪些结果.表2中,给出了6列数据,前3列分别是Hansen系数(e)的指标n、−(n+1)和m;后面3列分别是Wnuk方法[7]、(R5)向后递推和(R6)向前递推的计算结果.Wnuk方法的计算结果用来作为参考,比对(R5)和(R6)的递推计算结果.表2后两列中,有下划线的数据是递推初值,其他均是递推结果.
Table 2 A simple example of recursion of Hansen coefficients (e)(k=1,e=0.1)表2 Hansen系数(e)递推的简单算例(k=1,e=0.1)
Table 2 A simple example of recursion of Hansen coefficients (e)(k=1,e=0.1)表2 Hansen系数(e)递推的简单算例(k=1,e=0.1)
Note:The underlined data in the fifth and sixth columns of the table are the initial values of recursive calculations;and the numbers in italics marked in red in the sixth column are the ones with errors by comparing the calculation results of (R6)forward recursion and Wnuk’s method.
对于(R5)向后递推,需要n=5(或−(n+1)=−6)的所有11个数据(这里从n=5(或−(n+1)=−6)开始递推,如果递推的阶次更高,需要计算更多的初值);而对于(R6)向前递推,需要给出n=2和n=3 (或−(n+1)=−3和−(n+1)=−4)两行7个数据,但是只要给出偏心率函数的数据即可,给出的递推结果,同样也只有偏心率函数.
由表2中的递推结果可见:(R5)的递推结果较好,与Wnuk方法的计算结果一致.但是,(R6)向前递推的结果一开始就出现了误差,表2中标为红色的斜体数字,就是计算有误差的数据.这也许是由于递推公式中的几个数据相加减损失了有效数字.特别是对于绝对值较小的偏心率函数,有效数字损失得比较严重.例如(0.1)只有5位有效数字了.如果需要递推到更高的阶,这种现象可能会更加严重,因此需要给予特别的关注.
本文推导给出了两个新Hansen系数的递推公式(R5)和(R6),它们可以作为基本递推公式的有效补充.递推公式(R5)能够实现普通Hansen系数的一行初值向后递推.递推公式(R6)作为偏心率函数向前递推需要的辅助递推公式,能够完整实现偏心率函数的两行初值向前递推.(R5)和(R6)递推公式简单,算例表明这两种递推方法有效.