DE405/406星历表算法
总觉得,瑞士星历表没有您想像的那么好用,原因有3个:(1)代码太长不易加
入自己的工程中;(2)不易搞清楚它的坐标的具体函义,及其调用方法,
我在使用瑞士星历表时,仍然须要结合《2008年天文年历》、elm/mpp02、
VSOP87、DE405/406星历表、岁差章动计算才能彻底知道瑞士星历表调用
参数的关系。注意:如果不考虑文件存取的问题,DE405/DE406比瑞士星历表
的计算要简单得多!!!!!说实在,文件存取及相关的数据结构,是计算机专业
的事。(3)瑞士星历表把星历扩展到+-5400年没有太大的意义,如果有必要,
DE406当时也会提供这么长的数据,因为数据积分方法不适合长时间的外推。
我曾用科威尔方法积分,用80位的长双精度表示数字(不是64位的),发现
几千年后的截断积累误差非常大,不是这毫角秒数量级,可能达到角秒数
量级,在这种情况下计算太阳位置,千后以后的误差可能达到1分钟,如果
是这样,远期的的星历推算还不如使用VSOP87。实际上,从数值积分的原
理看来,如果外推10年产生1ms的误差,那么外推100年的误差就不是10ms,
而是更大,比如30ms,千年后可能达到角秒,误差积累与时间不是线性关系
的!所以说,瑞士星历表扩展了范围,只是为了提高适用范围,并不是说
它的精度很高。
我的想法:如果不打算做太专业的计算,使用vsop87算法就可以了,改正一下坐标的起算点(只是一个常数),计算地内行星,近几十年的精度高达10ms(这是指最大可能的误差),平均误差大约为几毫角秒,瑞士星历表的精度仅仅高了3至5倍。当然vsop87计算地外行星,误差大一些。如果想做专业一些的计算,很有必要了解DE星历表,瑞士星历表倒不是很有必要(它本身也在使用DE星历表),因为《中国天文年历》已经开始使用DE星历表。顺便说明一下,DE星历表使用的是它的专用坐标系(ICRF),swiss把它旋转到了J2000惯性平黄道及J2000平赤道坐标系,二者有几十毫角秒的差异,中国天文年历也使用这个J2000坐标系。
不要过份介意远期的精度!几千年后的星历精度一般认为只能精钟到分钟,不可能精确到毫秒。
DE星历表被很多国家采用,我觉得不单单是因为它的精度高,还有一个原因是它的算法简单,维护起来容易,DE102、DE200、DE403、DE405、DE406等等,算法几乎相同。DE星历表的算法难度与vsop87差不多,只是DE星历表体积很大,需要一些文件操作,造成了一些麻烦。
[此贴子已经被作者于2009-2-8 11:04:39编辑过]
网址:DE405/406星历表算法 http://c.mxgxt.com/news/view/1319072
相关内容
恒星历表农历24节气算法
行星历
星历表推算技巧
两人农历生日算姻缘 算正确姻缘计算方法
基于滑动式算法的精密星历拟合方法比较研究
工程化广播星历参数拟合算法与接口设计
最准确的星座查询表,最准确的星座算法
基于星间测距的分布式自主星历更新算法
揭秘天文星历:古老算法中的宇宙奥秘与未来挑战