以文本方式查看主题 - 中华农历论坛 (http://bbs.nongli.net/index.asp) -- 历法知识 (http://bbs.nongli.net/list.asp?boardid=2) ---- 读了张培瑜老先生的文章《中历及二十四节气时刻的计算》之感想 (http://bbs.nongli.net/dispbbs.asp?boardid=2&id=16629) |
-- 作者:xjw01 -- 发布时间:2009/1/8 22:53:00 -- 读了张培瑜老先生的文章《中历及二十四节气时刻的计算》之感想 读了张培瑜老先生的文章《中历及二十四节气时刻的计算》颇为感慨,老一辈为了农历计算做了许多工作,再一次感受当年人工计算艰辛。 时代变了!短短几年时间,计算机如此普及,编写《寿星万年历》时,用手上的三角函数计算器计算三角函数值不超过10次。 从文中可以知道,前辈们在1994年以前,还没能真正用上计算机,真是痛苦。他们的手工计算能力肯字是N强。 不过,他们的这些算法,在现在看来,的确很不理想。 |
-- 作者:秦汉昌 -- 发布时间:2009/1/8 23:42:00 -- 以下是引用xjw01在2009-1-8 22:53:00的发言: 读了张培瑜老先生的文章《中历及二十四节气时刻的计算》颇为感慨,老一辈为了农历计算做了许多工作,再一次感受当年人工计算艰辛。 时代变了!短短几年时间,计算机如此普及,编写《寿星万年历》时,用手上的三角函数计算器计算三角函数值不超过10次。 从文中可以知道,前辈们在1994年以前,还没能真正用上计算机,真是痛苦。他们的手工计算能力肯字是N强。 不过,他们的这些算法,在现在看来,的确很不理想。 他们的算法不够理想,是指他们的算法不够精确,还是不够简单呢? |
-- 作者:浪-淘-沙 -- 发布时间:2009/1/9 8:56:00 -- 以下是引用秦汉昌在2009-1-8 23:42:00的发言: 他们的算法不够理想,是指他们的算法不够精确,还是不够简单呢? 算法是简单的,至少那篇文章中给的是粗算.文中也只给了太阳黄经的粗算公式.所以张先生说误差(近二三百年内)在10分钟之内. 十分钟的误差对于日常生活来说无关紧要的,但对于计算天文日历,似乎不够精确了.比如算出来的节气时刻为23:59,若实际精确时刻为0:01,仅仅二分钟误差,日期就不在同一天了. 也许当年的计算机不够普及(文章是94年1月刊出的,那么最晚也是93年写的了),大多数人只好用计算器来辅助计算数据了. 不过,张先生是紫金山天文台的,应当有较高配置的计算机了.(个人电脑93年时586已经流行了。大型计算机在天文台也应当有的,不大可能用手工(计算器)来排历谱的.)
扯远了。回到秦汉昌(这个名字倒有点像笔名)朋友以前提的用黄帝纪日取代儒略日来计算天体物理这个话题来。 我看到的计算太阳月亮位置的公式都与儒略日有关,比如(引用张培瑜先生的计算公式) Lo=(1006908.04″+129602768.13″T+1.089″T2)/3600 DL1=((6910.057″-17.24″T)×sinM+72.338″×sin( DL2=-(20.49″+17.2″sinQ)/3600 L= Lo+ DL1+ DL2 其中:T=(JD-2415020)/36525 M=357.528°+35999.05°E Q=125.045°-1934.136E E=(JD-2451545)/36525. JD——所要求太阳黄经的日期时刻对应的儒略日及小数。 L——太阳黄经 Lo——太阳平黄经 DL1——中心差修正 DL2——光行差、章动修正 如果秦兄直接把黄帝纪日转化为儒略日,那么公式中的系数可以直接套用。(但这样做已经失去了黄帝纪日本身的意义)。公式中2415020,2451545都是比较特殊的日子(儒略日),一个是1899年12月31日12点。一个是2000年1月1日12点。 如果要利用黄帝纪日,那么秦兄要自己推导出一个公式系数,才能避开儒略日这个关键字。 但愿秦兄有耐心去做这件事,等着你的黄帝纪日版的万年历早日推出。 |
-- 作者:lxm0521 -- 发布时间:2009/1/9 18:31:00 -- 扯远了。回到秦汉昌(这个名字倒有点像笔名)朋友以前提的用黄帝纪日取代儒略日来计算天体物理这个话题来。 如果要利用黄帝纪日,那么秦兄要自己推导出一个公式系数,才能避开儒略日这个关键字。 但愿秦兄有耐心去做这件事,等着你的黄帝纪日版的万年历早日推出。 个人觉得黄帝纪日似乎没有必要:儒略日是指由公元前4713年1月1日(公历公元前4713年11月24日),协调世界时中午12时开始所经过的天数,多为天文学家采用,用以作为天文学的单一历法,把不同历法的年表统一起来。 儒略日则只是一种特殊的历法,不存在谁来替代的问题,如果用黄帝纪日,那么他和儒略日一定有某种换算关系,那么黄帝纪日和儒略日就成了一回事了,改为黄帝纪日来联系各大历法仅是添了点麻烦而已。 以上仅仅是个人观点! |
-- 作者:浪-淘-沙 -- 发布时间:2009/1/9 21:34:00 -- 以下是引用lxm0521在2009-1-9 18:31:00的发言: 个人觉得黄帝纪日似乎没有必要:儒略日是指由公元前4713年1月1日(公历公元前4713年11月24日),协调世界时中午12时开始所经过的天数,多为天文学家采用,用以作为天文学的单一历法,把不同历法的年表统一起来。 儒略日则只是一种特殊的历法,不存在谁来替代的问题,如果用黄帝纪日,那么他和儒略日一定有某种换算关系,那么黄帝纪日和儒略日就成了一回事了,改为黄帝纪日来联系各大历法仅是添了点麻烦而已。 以上仅仅是个人观点! 哈哈,你没看过"秦汉昌"兄在前段时间发的帖子.所以你不知道我为什么要提"黄帝纪日". 这个只有秦兄才会明白的. 你看他都已经开始把"年月日时分秒"都用天干地支来表示了.比古人更前进了一步.似乎古人没有用干支来表示时辰以下的记时单位的. 黄帝纪日是我帮他一块想出来的.他反对用"儒略日"来计算天文数据.那我就请他换个名字,比如黄帝纪日(从黄帝纪年引申而来.) 至于用黄帝纪日如何来求解天体力学方程,那就靠他自己的努力了. 反正现成的天体力学方程都可以找到公式,甚至都已经有人把答案解出来了.我们只要套用一下,就可以进行天文历算了. |
-- 作者:秦汉昌 -- 发布时间:2009/1/10 1:24:00 -- 兄弟,可以给我介绍一些系统的讲述天文历算公式的书吗,感觉找资料有点困难,我需要了解更多的更系统的天文算法知识。 |
-- 作者:lxm0521 -- 发布时间:2009/1/10 10:04:00 -- 以下是引用浪-淘-沙在2009-1-9 21:34:00的发言: 哈哈,你没看过"秦汉昌"兄在前段时间发的帖子.所以你不知道我为什么要提"黄帝纪日". 这个只有秦兄才会明白的. 你看他都已经开始把"年月日时分秒"都用天干地支来表示了.比古人更前进了一步.似乎古人没有用干支来表示时辰以下的记时单位的. 黄帝纪日是我帮他一块想出来的.他反对用"儒略日"来计算天文数据.那我就请他换个名字,比如黄帝纪日(从黄帝纪年引申而来.) 至于用黄帝纪日如何来求解天体力学方程,那就靠他自己的努力了. 反正现成的天体力学方程都可以找到公式,甚至都已经有人把答案解出来了.我们只要套用一下,就可以进行天文历算了. 哈哈,谢谢你,可能是本人想当然了,能否把秦的那篇帖子地址告诉我呢?谢谢了,不过个人觉得你那个黄帝纪日是不是和儒略日仅仅是起点不同呢? |
-- 作者:浪-淘-沙 -- 发布时间:2009/1/10 12:04:00 -- 以下是引用秦汉昌在2009-1-10 1:24:00的发言: 兄弟,可以给我介绍一些系统的讲述天文历算公式的书吗,感觉找资料有点困难,我需要了解更多的更系统的天文算法知识。 许剑伟兄翻译的《天文算法》,我这里有个较完整版。网上的下载地址我忘了。你若需要,我发EMAIL给你。 |
-- 作者:浪-淘-沙 -- 发布时间:2009/1/10 12:14:00 -- 以下是引用lxm0521在2009-1-10 10:04:00的发言: 哈哈,谢谢你,可能是本人想当然了,能否把秦的那篇帖子地址告诉我呢?谢谢了,不过个人觉得你那个黄帝纪日是不是和儒略日仅仅是起点不同呢? 你到论坛里找“秦汉昌”的帖子就是了。 第一页里就有好多他的关于纪日表示法模板。http://bbs.nongli.com/dispbbs.asp?boardID=2&ID=16615&page=1 以下是引用浪-淘-沙在2008-12-24 11:11:00的发言:
以下是引用秦汉昌在2008-12-24 10:11:00的发言: 我们得一步一步的来,从现实考虑,既不能因为洋文化强势而放弃我华夏文化的在传承方面的努力,也不能在洋文化强势的情况下夜郞自大。在洋文化强势时,我们要韬光养晦,为未来复兴打好基础,而不能坐以待毙,盲从国外。比如,在历法方面,我们的夏历不利于现代的某些交流,但我们不能因此而用西历,以西历为参照(如果这样,即我们华夏强大了,我们的厬历还是没有发展完善,一样的不被人重视,不要仅仅以经济的强大来看待文化的传承。其实,我也没有反对在我们的日历上添加西历的日期,关键是,我们要把它倒过来,我们在电脑计算的时候,日期值就是我们夏历的日期值,按照我们夏历完整的系统来确定我们的日期,通过我们夏历天文理论和应用系统来生存西历,西历仅仅是为了某些交汉的需要的一个附带品,不能成为一个必备要件。像我们现在,没有西历的参照,就很难制作万年历,各种天文参数都以西历为准,再进行换算,这不是正路。 我没具体去编过历书.但我从这个论坛里仔细看许兄编的万年历,其实可以说已经脱离公历的日期了. 只要给定了某一天的各大天体的位置,再考虑各大天体的运行规律(所谓的天体力学),以后的天体位置的计算其实不用公历的.只用"日"就行了.(许兄的软件中用儒略日) 对于日的定义,我们的农历与西洋的公历基本是一致的. 比如今天是儒略日数 2454825 ,你可以定义成黄帝纪日(古)3000000.编程时这二个都可以当常数.以后的日子与之相加就行了.那么你可以定义今天是黄帝纪日(今)0天(即3000000+0),那么明天就是黄帝纪日(今)1天,以后类推就行了. 你算出今天之后的十几个朔的时刻,二十四节气的时刻,你就可以排出一部历书了(按我们的历法,冬至所在月为十一月).与公历已经不相关了.至于正月初一是公历什么日子,你在旁边注一下就是行了. 所以你用西历还是中历,都无所谓的.因为天象观测只用日,不一定用年月的.你定义成黄帝纪日就行了.(就算我们不知道黄帝是哪一年开始,我们可以假设一个日期就行了.比如我假设的3,000,000日,实际按4706年来算还不到200万呢.为了撑面子,我算它300万天.) 有了黄帝纪日就可以排历书了.西方用儒略日数来排的.这一点大家都是一致的.所以在实际计算时,不用担心什么公历西历的.你编程时也可以跳过公历几月几日的. |
-- 作者:秦汉昌 -- 发布时间:2009/1/10 22:49:00 -- 以下是引用浪-淘-沙在2009-1-10 12:04:00的发言: 以下是引用秦汉昌在2009-1-10 1:24:00的发言: 兄弟,可以给我介绍一些系统的讲述天文历算公式的书吗,感觉找资料有点困难,我需要了解更多的更系统的天文算法知识。 许剑伟兄翻译的《天文算法》,我这里有个较完整版。网上的下载地址我忘了。你若需要,我发EMAIL给你。 麻烦传给我,多谢兄弟帮助,我的邮箱是:992736116@qq.com |