中华农历论坛知识讨论区历法知识 → 我自己制作的万年历


  共有177105人关注过本帖树形打印

主题:我自己制作的万年历

帅哥哟,离线,有人找我吗?
xjw01
  41楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3824 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2008/4/2 8:45:00

  ELP/MPP02算法我有,不过那都是一些超高精度的算法(它适应LLR和DE405)。算法实现也比较困难一些,没有半年以上的程序设计经验,很难调试成功,我记得当时调试该算法时,整整花费了两天时间。后来,我把ELP/MPP02的算法转换为VSOP87相似的算法,精度不变,但数据量增加一些,用起来就方便多了,共7M,如果需要,有空的时候可以发一个上来。
  使用该算法后,就会发现“日梭万年历”的精度有问题,决不是刘国安本人所述的1分钟的误差,而是远远超过1分钟,其实他本人也十分清楚,他的万年历只保证未来200年是正确的。刘先生仅凭与某些星历软件或网站作简单的比较,就得出他的软件的精度,而不做认真细仔的误差分析,并把他的源码加密,这就造成这个软件的精度的可信度大打折扣。再有一个问题就是,刘先生说他在处理力学时与原子时之差ΔT的时候使用了他自创的一个公式,该公式的连续性良好,解决了时间上的“不合理的跳越”。这句话让人十分费解,我认为对远期的的估计出现某些跳越没有什么不好,反正只是个估值,只要在误差许可范围之内即可,再说地球自转本身就有“跳越”现象,很不规律的,人为的做平滑处理,反而影响精度。如果用Excel把近几百年的ΔT做成曲线图,就会发现ΔT没有明显的规律。
  我倒是很欣赏刘先生原来的那个用近似算法实算的万年历,那是非常经典的。至于他后来的加密的所谓“现代天文算法”的万年历,如果从程序设计的角度看,后来的这个万年历就显得很糟糕,不管是速度、精度、可靠性、可读性、稳定性(会吃你所有的内存)等都有问题,当然如果他开发了源代码,这些问题应该可以轻松解决,必竞网上的高手还是不少的。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  42楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3824 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2008/4/2 8:58:00

《天文算法》第31章用到的附表II数据

附表II长达40页,手工输入难免出错,本人设计了一个数据生成器,用于制作VSOP87数据表

 对不起,文件500k,传不上来

 

http://www.fjptsz.com/xxjs/xjw/rj/fj/114.rar


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
春光
  43楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:898 积分:7341 威望:10 精华:1 注册:2005/3/17 11:37:00
  发帖心情 Post By:2008/4/2 14:13:00

 xjw01兄,您好。农历网论上只支持200k左右的文件,我在前面有一个文件是700多k的没有传上来,后来我用winRAR分卷压缩成5部分,才传上来。所以要传大文件,还要分卷压缩后一个一个上传或是在别处找个空间上传后,再这里留个下载链接,不方便。

    您在大上楼说的《日棱万年历》,我也仔细研究过,但是是加密的,获得不了它的核心算法,所以只能用它作个对照之用,对研究星历表算法,没有其它用处。

   对其它大行星对地球轨道的摄动,还有地月之间的摄动(如地球质量分配不均匀性等)也研究一段时间,但是在书上找到的资料精确度不够高,如拿地球质量吧,它只准确到千吨级,离我所预想准确到吨级差一些。但是我这些都是闭门造车,进展不大。

    通过我上国外的网站,我发现国外研究星历表算法的资料和书很多,但是国内却很少,可能是国内象您和我这样喜欢天文计算法的天文爱好者不多吧,国内的天文爱好者更愿意观星。

    您能把您在上面所说的和vsop87相似的ELP/MPP02算法的算法在有空的时候发给我一份吗?我也想研究一下,谢谢了,我电子邮件是:xuyank@163.com

      另外我还想向您请教一下:

  1)怎样利用vsop87算法计算地球的近日点和远日点的黄经(date-日心坐标)的问题,这是不是要额外需要加一些vsop87以外的数据啊?如近日点进动的问题,东移问题。

 2)怎样利用月球ELP2000或MPP02算法计算月球近地点和远地点黄经的问题,这也是不是要额外需要加一些非ELP2000或MPP02算法的数据啊?

   3)关于黄道和白道的交点(黄白交点)的黄经我是这样考虑的,利用ELP2000或MPP02算法计算月球视位置date-地心坐标黄经和黄纬,再利用vsop87算法计算太阳视位置date-地心坐标的黄经和黄纬,然后当它们相同时,就是黄白升交点或降交点的黄经和黄纬,再求此时的时间,是不是?

     我有一个关于月球近地点的计算资料,但是它的误差太大了,连准确到分钟级都没有达到,我认为最低误差也要控制在一分钟以内。

月球近地点和远地点时刻的计算

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:

月球过升交点和降交点时刻的计算

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  44楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3824 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2008/4/2 16:25:00

回答问题之前首先申明:
  我从数学及物理学的角度分析,不一定符合天文学的惯例,所以我的答案不一定完全正确,但所涉及的思想方法则具有普遍意义。

  纠正您的一个不太正确的想法:试图用国际单位(比如吨单位)来描述星体运动,将损失天文观测的高精度,天文计算通常关心距离之间的比例关系,质量之间的比例关系等。月球距离是个例外,因为月球离我们太近了,人类有能力登月并安装反射镜,实际了激光测距才得到了利用国际单位表达的高精度的月地距离。
先回答第一个问题:
  你很关心近点问题,在任何瞬间,行星运动状态可表达为6个要素(位置x,y,z,速度vx,vy,vz),这6个可转为瞬时椭圆轨道的六要素,得到六要素后,自然就知道了瞬时轨道近点,在VSOP87中本身就有一组序列专门用来求轨道要素的,所以无需过多的变换处理就可轻松得到轨道近点。在我翻译的第30章中就已讲到了轨道要素问题,当然深入理解轨道要素,建议找本《天体力学》的有关书,详见里面的二体问题的论述,当然如果你没有《天体力学》,只要学过《理论力学》,也可得到二体问题的全解。
  再一个就是,地球(或行星)离太阳最近的那个点,你所说的近点大概指这个吧。如果使用VSOP,这里有两种方法选择:
  第一种方法:
    1、对距离求导数。VSOP是一种解析法,是关于时间的余弦或正弦函数的和,对所有的距离序列求导数并取和,即可得距离序列总导数,这个导数值就是径向速度vr。
    2、在靠近近点的一段时间内,求导数为0的时刻(即径向速度vr=0),此时距离太阳最近。使用快速截弦求根法,只需计算几个点即可得到高精度的值。
    3、这种方法可能存在风险:在这个时间段内可能多次vr=0,这时就麻烦了,所以在计算前,应先对序列充分的分析,通常时间控制小一些,vr多次等于0的可能性不大。
  第二种方法:
    1、在靠近近日点的一段时间内(比如这个时间段是12小时),连续计算相等时间间隔内多点的距离
    2、利用高斯的最小二乘法(或牛顿差内插法)拟合为一个多项式,如一元二或三次函数,这个函数的极点就是近日点。最好使用最小二乘法,这样计算点再多,也不会造成多项式的阶数太高。
    3、具体时段范围取多少最佳,还需进一步进行数学分析.
    4、我国古代求冬至时刻所用的方法就是此类方法。这种思想方法是非常先进的。太阳在什么时候高度角最大,用人眼很难看出,他们就连续多测几天,比如前后测量1个月,然后分析数据(当时使用高阶内插法之类的方法),就可得到冬至时刻。


[此贴子已经被作者于2008-4-2 18:13:56编辑过]

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
liuhai2008
  45楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:1 积分:201 威望:0 精华:0 注册:2008/4/2 18:23:00
[转帖]都来试试你在平行游戏空间是什么人?  发帖心情 Post By:2008/4/2 18:31:00

好东西呀,挺方面。下了收藏,谢谢!!图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  46楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3824 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2008/4/2 18:36:00

顺便说一下,你上面的那两个算法时精度不够的原因是周期摄动项不够,要想得到高精度,还是用我上面说的方法比较好

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  47楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3824 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2008/4/2 19:28:00

回答第二个问题,第二个问题的解法与第一个问题相同
回答第三个问题
  如果不考虑摄动问题,近点及升交点有现成的高精度的多项式公式可以直接使用。详见《天文算法》第30章。而你要考虑的可能是瞬时的升交点吧,用我回答第一个问题的那个方法求纬度为零时的黄经即可。
  用你所说的方法计算升交点是不对的,你那样求的是日月合朔的时刻,也就是每月初一的合朔时刻。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
春光
  48楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:898 积分:7341 威望:10 精华:1 注册:2005/3/17 11:37:00
  发帖心情 Post By:2008/4/3 11:15:00

听君一席话,胜读十年书啊。非常感谢xjw01兄的指导和纠正,您的发的数据我也收到了,谢谢。

   其实,我认为地球近日点(日心坐标)黄经,地球远日点黄经,月球近地点(地心坐标)黄经,月球远地点黄经对于星历表来说是非常重要的,传统农历算法计算也是需要这些数据的,这些又是天文年历的比较核心的东西,但是《日棱万年历》等都没有提供其算法,所以研制基于vsop87或ELP2000-82B或MPP02理论的求地球近日点(日心坐标系),远日点(日心坐标系),月球近地点(地心坐标系),远地点(地心坐标系),月球过黄道的升交点和降交点的黄经和黄纬的准确算法是十分有必要,一共六个算法。

    在现今中国境内可供天文爱好者研究的星历表算法真是太少了,就连书和资料的贫乏,这个和美国和瑞士等西方国家就没法比,他们不但把一些算法放到网站上供研究者下载研究,而且还推出了一些如《天文算法》,《星历表推算原理》这样的经典书目。没有办法很多天文爱好者要么闭门造车,取得的成果不大,要么就转移到观星领域去了,进而研究下星历算法问题,不利于我国历书天文学的发展。


支持(1中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
春光
  49楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:898 积分:7341 威望:10 精华:1 注册:2005/3/17 11:37:00
  发帖心情 Post By:2008/4/3 12:59:00

国外天文星历研究单位:

法国巴黎天文台天体力学和历算研究所IMCCE http://www.imcce.fr/imcce.php?lang=fr
ftp://ftp.imcce.fr/  (vsop系列算法的娘家)

美国国家航空航天局http://www.nasa.gov/

美国喷气推进实验室http://www.jpl.nasa.gov/index.cfm
http://ssd.jpl.nasa.gov/eph_info.html 

瑞士星历表http://www.astro.com/swisseph/
ftp://ftp.astro.com/pub/swisseph/


支持(1中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  50楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3824 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2008/4/3 19:39:00

这是第29章

开普勒方程
分卷压缩

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:
第1部分
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:
第2部分
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:
第3部分

这几天共翻译了7章,除28章外,均已上载:
15大气折射.txt
24太阳位置计算.txt
28日面位置计算.txt (本章未完全译完)
29开普勒方程.htm
30行星轨道要素.htm
31行星位置.txt
45月球位置.txt
我也没那么多时间翻译了,以后有空的时候再译。大家一起努吧!


支持(1中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 106 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..11

返回版面帖子列表

我自己制作的万年历








签名