中华农历论坛知识讨论区历法知识 → 寿星万年历5.08(测试版)


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

主题:寿星万年历5.08(测试版)

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


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

答浪淘沙关于儒略日数问题:

 

儒略日数是一个日期计数器。计数起点通常取中午12:00:00,天文学上的这个中午可以是某地区的平午或格林尼治平午,可以采用力学时,也可以采用UT,采用UTC也没问题,只要达到计数功能就行。

比如,

2000年1月1日0点, 记作2451544.5日

2000年1月1日12点,记作2451545.0日

2000年1月1日23点,记作2451545.4x日

如果不带小数,那2451544.5、2451545.0、2451545.4x表示哪个儒略日?我想还是用2451545,实际计算只是个四舍五入的问题。此法同样达到了严格的日期计数的功能。因此不妨把2451545对应日期2000年1月1日,2451546对应为2000年1月2日,是一个日数与日期的一一对应关系,有了这样一个对应关系,计算“干支”就十分方便。如果专业一点,2451545+-0.5日所在日期为2000年1月1日,2451546+-0.5日所在日期为2000年1月2日。

如果用小数表示,会给想计算“星期、干支”的个带来不便。总之,使用整数显示,就是要明确告知用户,“儒略日数”只是一个日期计数器,而且它很好用,至于说它始于12:00还是0点,那是进一步学习天文计日法才也要学习的东西。所以说,用整数就可以了,带小数的适用于计算机。


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


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

已发布v4.13

根据浪淘沙的建议,把1645年的大暑提前了一前。这样自然变成了闰六月。


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


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

0.02角秒?

我写错了,0.2角秒

20毫角的精度太高了,非得使用JPL的数据以及最近的P03岁差表式方可实现。实果需要,到时把完整的c++程序发上来。

好象我曾经在此论讨发此1毫角秒级的代码。

其实,5毫角秒的精度仅适用于最近几年或几十年。JPL以后还会改进它的星历,也就是说DE406/405对远期未来的推算无法达到毫角秒级。


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


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/4/17 23:16:00

许兄的版本更新速度真快.谢谢.

为了支持你的修正,我上网找了一个资料,不一定是正确的,但正好符合你的修订版.

http://news.idoican.com.cn/zgminzub/html/2009-04/08/content_32912767.htm

顺治元年(1644年)5月,清入关进京。翌年6月,德国传教士汤若望便向顺治进呈所修历书。顺治皇帝不仅欣然接受了汤若望呈献的历书,还为其定名为《时宪历》,同年8月颁布于“天下”。顺治又命汤若望掌管钦天监,亲赐“钦天监印信,着汤若望掌握,所属官员嗣后一切占侯选择,悉听举行。”不久又“累加”汤若望为“太仆太掌寺卿,敕畅通玄教师,入觐礼仪,全行皆免”。

 

***********

这则资料是说顺治二年八月才颁布新历的.那么以前的日子肯定采用明朝的旧历(实则元朝的授时历)了.


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


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/4/17 23:29:00

至于儒略日数.我当时想看看与JPL网站的对应数据.可以互相作对比.

因为JPL网站提供的儒略日数是带小数的.

 

如果仅仅是用来记数,那么取整是最合理的.计算星期,计算干支,都是用整数的.

 

这个问题不多说了.各人爱好不同.我的想法可能与别人想法不一样.还是听大家的意见吧,就用整数好了.

***********************

 

上次提到的日地距离及地月距离等,许兄有没打算增加有效数字的位数?

 

等许兄的新版万年历推出时再说吧.(带有五星历表的万年历).


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


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

谢谢浪淘沙的指点。

  当时电脑医生先生与我讨论了明末清初的置闰问题,他认为《日梭万年历》的置闰法是准确的,并发过来《中国古代万年历》一书,经过我们再次比对,发现《日梭》使用明末历法,而不是清初历法,为了与万年历上的纪年同步,我们最后坚持1645开始使用《时宪历》,而不校仿《日梭》或台湾一些网友的做法。但真没想到《时宪历》是从那年的8月开始实,我一直以为,要么从正月,要么从十一月从,这是天文学中比较正统的两种年起点。看来汤若望先生当时有点急于求成,也许它只是为了讨好皇帝吧,立刻执行。

不过,汤先生的确带来更先进的天文算法。

  看来,寿星万年历得把8月以前的历法改为《授时历了》

此类问题还发生在-104年,但没有引起置闰异常。

此类问题肯定还发生在其它历法交接处,但没有引起置闰异常。


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


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/4/18 13:40:00

许兄过谦了,我哪谈得上对你指点。只能说我查找到一些小问题与你探讨一下而已。

**********

想请问一下许兄,你在查找古代实历时,当时的历法上有没标注节气时刻的?如果有详细的时刻,那么可以与你的定气计算结果作一比较,看看古人的误差到底有多大?

*****************

 

关于授时历,我找到一些史料,供许兄参考一下:

 

《元史. 志第四. 历一》

。。。。。。。。。

至元四年,西域札马鲁丁撰进《万年历》,世祖稍颁行之。

十三年,平宋,遂诏前中书左丞许衡、太子赞善王恂、都水少监郭守敬改治新历。

。。。。。。。。。。。。。

十七年冬至,历成,诏赐名曰《授时历》。十八年,颁行天下。

。。。。。。。。。。

验气:

。。。。。。。。。。。

推至元十四年丁丑岁冬至
其年十一月十四日己亥,景长七丈九尺四寸八分五厘五毫;至二十一日丙午,景长七丈九尺五寸四分一厘;二十二日丁未,景长七丈九尺四寸五分五厘。以己亥、丁未二日之景相校,余三分五毫为晷差,进二位;以丙午、丁未二日之景相校,余八分六厘为法;除之,得三十五刻;用减相距日八百刻,余七百六十五刻;折取其中,加半日刻,共为四百三十二刻半;百约为日,得四日;余以十二乘之,百约为时,得三时,满五十又作一时,共得四时;余以十二收之,得三刻;命初起距日己亥算外,得癸卯日辰初三刻为丁丑岁冬至。此取至前后四日景。

*************

辰初对应7:00-8:00,辰正对应8:00-9:00.那么辰初三刻就是7:45左右.
元代的历法应当是用北京的地方真太阳时来推算的.
至元十四年冬至日对应的是公元1277年12月14日,查一下当时的均时差为0分5.86秒,经度差约3.6度(有约15分钟的时差)。

当日北京的真太阳7:45(郭守敬推算出的定冬至时刻),对应北京时间为8:00。

查寿星万年历,当日的定冬至为:08:39:55。

看来郭守敬的推算有约二到三刻钟的误差。(用太阳的影子来测量定冬至时刻,这个误差应当可以接受了。)

再查几个数据

。。。。。。。。。。。。。

推十五年戊寅岁夏至

。。。。。得乙巳日亥正三刻夏至(真太阳22:45,换成北京时间为:23:00)。(查寿星万年历为:定夏至 22:33:51)

。。。。。。。。。。

推十五年戊寅岁冬至

。。。。。得戊申日未初三刻为戊寅岁冬至(真太阳13:45,换成北京时间为:14:00)。(查寿星万年历为:定冬至 14:23:10)

。。。。。。。。。。

推十六年己卯岁夏至

。。。。。。。得辛亥日寅正二刻为夏至。(真太阳4:30,换成北京时间为:4:45)。(查寿星万年历为:定夏至 04:19:40)

。。。。。。。。。。。

总体误差在半小时左右。

 

还有,我的理解可能有误,古代采用百刻制(元朝还是这种记时方式吗?),每刻对应不一定是15分钟。


 

 


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


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

已发布v4.14版,做了较多改动,可能会产生新的BUG

 

1、加强月亮坐标的精度,几百年内的最大误差控制在1角秒(与JPL对),几十年内的误差要小一些。最大误差0.8角秒,平均0.15角秒,一般用户能够找到的误差一般为几十毫角秒。地月距离精确到100米,最大可能误差数百米。精度比原来提高了近4倍,运行速度几乎不变,但软件变大了一点。

2、增加日食计算中,允许使用与NASA相同的日月视直径,NASA许算月亮视径比较保守,估计他们把月面不规则的边缘(月球表面的山峰)去除一些。NASA的月球视径为寿星万年历月球视径的0.99925,V4.12版采用0.9992。V4.14版采用了更高精度的月球坐标后,计算结果几乎与NASA的完全相同。

3、1645年农历八月及以后采用《时宪历》,七月及以前使用《守时历》,原来二部历法的分界点定于1645年正月

4、使用P03岁差参数中的黄赤交参数,原来使用B03差参数。不过,黄经总岁差仍使用B03,有空的时候也把它改为P03岁差参数。要与JPL网站的数据进行毫角秒比对,必须使用P03岁差系统。

5、修改了说明书的部分内容。

6、增加了日食的持续时间计算。

 

 

 


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


加好友 发短信
等级:论坛游民 帖子:89 积分:1001 威望:0 精华:0 注册:2009/2/22 21:16:00
  发帖心情 Post By:2009/4/18 22:09:00

谢谢“许兄”发布新版,我又有的折腾了。
盼望“许兄”有时间,为我解个惑,谢谢!
http://bbs.nongli.com/dispbbs_2_18584.html

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


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

郭守敬准确测定了冬。当靠1年的数据他肯是测不了365.2425的,因为地球受摄动会产生10分钟以上的误差,他必须通过多年求平均得到。也许需要8年或更多年。而且,在一年中的推测也需要多天观测才也能得到该年的冬至,单靠1天是不行的,如果半夜冬至,根本无法测日影。所以郭得到的是平冬至,进而算出回归年长度。利用测影长的方法仍无法直接得到定冬至,要想得到定冬至,还必须使和球面三角以及数值算法才能得到,按当时的数学水平,不太可能完成这项工作,据说三角函数等工具是在余光启《时宪历前身》等人推动下才在中历中得到应用。而365.2425这个东西,误差不到1分钟,而且是用测影长方法得到,实在利害。回归年长度的微小误差,会在历算中不断的积累,最后导至不准确。一年差了1分,500年就差了500分钟。

《授时历》使用平气法,先确定一个起点(寿星万年历中选取2188621.191481这一时刻),然后加上365.2425就是下一年冬至,或者说,每加上365.2425/24=15.21843750天(寿星万年历取15.218437494),就是下一个节气。所以说,推算平气只需两个参数

  在古代,“天”这个单位没有现在这么严格。《授时历》历算时用的365.2425/24天,这个“天”单位说成“平天”也无妨,即把一个真实回归年均分为365.2425个单位,每个单位就是1天,与“平太阳”时间有相似之处,历算的时候就是这样“天”单位。而实际计时的时候,又没有与“平天”同步的手表,当然只能用“真天”(真太阳或真恒星换算过来的时间等等)。“平天”与“真天”是要换算的,就象“平太阳”与“真太阳”。不过,估计古代“平”、“真”是混用的,不加区分的。

  日晷的现代计算问题我没有认直研究过,所以《天文算法》第56章我译了1/4就不译了,怕译错。

 

  郭守敬的误差:

1、在多次测来时没有求平均,不利用减小偶然误差,所以《授时历》的起点精度不一定很高。

2、精确回归年是365.24218968-0.0000000616(t-2000),1280年则是365.242234天(现代天,即1天为86400原子秒),当时一天比现在一天少了几毫秒(不妨取5毫秒),所以1280年的回归年是365.242234*86400000/(86400000-10)=365.24226个当时的天,郭误差0.00024天=21秒,非常小,真不知他是怎么测的。

 

 

 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

寿星万年历5.08(测试版)








签名