物理科学探疑-网友天空-宇宙观念-计算机计算星球轨道的误差分析
计算机计算星球轨道的误差分析
芦光耀
计算机可精确地求解星球运动微分方程。本算法适用于用计算机求解任意多体问题的星球运动微分方程,也能精确地确认万有引力公式本身和实际情况的相差程度。
由于dt是人为设定的,是已知的,因此地球到达1点的近似值v,r和a可由上式算出,算出1点值后,可把1点值作为初值,按步长dt继续推算出下一点的值,如此,可推算到第n点。由于dt值取得越小,递推的精度越高,我们可据此来控制计算误差。
设要计算地球在t=T时的r值,要求计算误差为e,t=0时的初值r0,a0,v0为已知。我们可将0到T的时间间隔划分为n个dt,即令计算步长dt=T/n,然后根据上述,按步长dt从t=0时的初值点推算到t=n·dt=T时的r值。然后将dt二分,即令计算步长dt1=dt/2,再按此新步长值dt1从t=0时的初值点算到t=2·n·dt1=T时的r值为r2,比较一下二分前后的r值,即看一看是否满足条件r2 - r<e,若满足条件,则r2的值即为所要求的r值,若不满足条件,则继续二分,按新的步长值再从t=0时的初值点算到t=T时刻,直到新算出的r值满足条件r2 - r<e,其中r和r2分别为二分前后的r值。注意,上面所说的矢量比较包含其大小比较和其方向比较。
以上仅为计算机计算地球轨道的原理。实际上,每二分一次,从0到T时间范围内的dt数量将增加一倍,计算机计算的工作量也将增加一倍。由于计算机的计算速度有限,因此二分次数也是有限的。为提高计算精度,减少计算机的计算工作量,有一些标准化的方法(注1),在此不再熬述。
由上述可知,计算机计算星球轨道主要有两个要点。一是列出递推式,二是确定误差范围的条件。
月球轨道计算见下页。
注释1:参见“计算机数值计算方法及程序设计”一书。该书由周煦编著。于2004年10月由机械工业出版社出版。
二.计算误差与二分差
二分差就是前面所述的二分前后r的差值 。计算误差是指在某一时刻,计算值与真实值的差值。在递推区间(即0到T)恒定的情况下,以dt的数量n为横坐标,以r值为纵坐标,则可画出r值随n的变化曲线,如图1-5所示。
图1-5中,纵坐标r可以是投影分量rx,ry或rz,a和b线段长度分别表示二分前后的误差,R表示t=T时r的真实值,C表示r值随n的变化曲线。显然,二分前的r值为R-a,二分后的r值为R-b,二分差为R-a-(R-b)=a-b。当dt的数量n趋于无穷大时,不仅误差趋于零,而且二分差也趋于零。由于上面介绍的算法是以控制二分差的大小作为程序不再继续二分的条件,而二分差并不代表二分后的r值与真实值误差,因此,要确定上面算法的误差,应找到二分差与误差之间的关系。由图1-5可知,调整a和b之间的dt数量,就可以做到二分差a-b大于或等于二分后的误差b,如图1-6所示。这样,就可以通过控制二分差的大小来达到控制程序运算误差的大小。
三.控制误差的方法
我们知道,程序表达曲线的能力,实际上就是程序表达曲率的能力。而曲率圆半径的大小就反应了曲率的大小。因此,如果一个算法能够准确表达任意半径的圆,那么,该算法就能表达任意形状的曲线。因此,程序表达曲率圆的能力可以作为程序表达曲线能力的标准。
如何让程序来画圆呢?以地球绕日运行为例。当地球运行速度的方向垂直于其矢径,其速度大小满足条件,即:
此时,地球将以r值为半径绕日作匀速率圆周运动。参照上面图1-1,可得地球坐标的数学表达式:
由于上述表达式可以避免两个精度相差很大的数参与运算,因此,是可以作为标准来使用的。那么,用本文提供的计算星球轨道算法而画出的圆弧,可以和上面表达式的计算结果进行比较,这样,我们就可知道该算法表达曲率的情况了。研究表明,在积分区间恒定,dt数量不变的情况下,圆周运动的半径取得越小,计算机积分所产生的误差也越大。这意味着计算机积分所产生的最大误差应发生在行星公转轨道曲线的最大曲率处。这样,就可以通过找到轨道曲线的最大曲率,根据误差的要求来设置程序的dt大小(即确定dt的数量)。对于两体问题来说,可近似用行星距离太阳最近时的距离作为轨道曲线最大曲率的曲率半径,然后用该半径让程序画圆弧,再以该半径用标准表达式来计算,将两者的计算结果进行比较就可到程序的计算误差,根据计算误差的要求,在给定积分区间(即0到T)的情况下,调整dt的大小(即调整dt的数量),使程序在给定的积分区间内满足计算误差的要求。对于两体问题来说,由于在一般情况下,星球轨道曲线的曲率变化不大,因此也可以用星球距太阳的平均距离来作为程序画圆弧的半径,将其计算结果和标准表达式的计算结果进行比较,从而估算出程序的计算误差。
对于多体问题,一般来说,应先确定产生最大曲率的星球,然后对该星球用上述对两体问题的分析方法来确定程序画圆弧的半径,在和用标准表达式的计算结果进行比较,在给定积分区间(即0到T)的情况下,通过调整dt的大小来满足计算误差的要求。比如,考虑太阳,地球和月球的三体星球的计算,显然,月球是产生最大曲率的星球,可近似用月球距离地球最近时的距离作为轨道曲线最大曲率的曲率半径,然后用该半径让程序以地球中心为圆心画圆弧,将其计算结果和标准表达式的计算结果进行比较,在给定积分区间(即0到T)的情况下,通过调整dt的大小来满足计算误差的要求。也可用地球距太阳的平均距离来作为程序画圆弧的半径,从而设计出满足误差要求的dt大小,然后,以该dt值来估算出程序计算月球轨道的误差,也就是说,用月球距地球的平均距离来作为程序画圆弧的半径,将其计算结果和标准表达式的计算结果进行比较,从而估算出程序计算月球轨道的误差。
作者:芦光耀
日期:2007年6月11日。
住址:北京市丰台区东高地三角地37栋丁门四楼111号。
邮编:100076
电话:68751647
E-mail:hulahuaer@hotmail.com
版权所有,保留一切权力,未经授权使用将追究法律责任 版权说明 © Copyright Authors
物理科学探疑