宋代元明法定朔考述_第1页
宋代元明法定朔考述_第2页
宋代元明法定朔考述_第3页
宋代元明法定朔考述_第4页
宋代元明法定朔考述_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

宋代元明法定朔考述

朔是古代对平朔的不均匀性进行修正的结果表明的真朔。定朔的使用提高了历谱编排和日月五星计算的精度。1950年代以来,一些研究者在定朔算法及相关的研究方面作出了重要的工作。文献对定朔算法进行了详细的解读;文献对定朔算法的精度进行了比较;滕艳辉等着重研究了宋代历法中的定朔计算方法,并对一些历法的精度进行了分析。本文将在这些研究基础上对宋代的定朔算法和计算精度进行全面总结和更深入的探索。本文完全遵循现存宋代历法定朔推步的全过程,借助计算机,计算出每一部历法所有月份的定朔时刻,并与其真实的定朔值比较,研究历法中定朔算法的计算精度,最后结合推算误差,对影响各历法推算定朔的因素进行探讨。1融合使用传统文献的定朔算法两宋期间,共行用了18部官方历法,其中有14部完整地保存在《宋史》中。这些历法普遍使用定朔算法。历法推算定朔的基本方法是:先根据基本天文常数等数据计算出要求得年月的经朔时刻,再根据此时太阳、月亮的相关数据求得日月不均匀性的修正数值,最后在经朔上加入太阳和月亮的不均匀性的改正则可求得定朔时刻。其算法的基本模型是:式中Trm表示定朔时刻,Tpm表示经朔时刻,Δs和Δm则分别表示日、月改正数。具体每一部历法,在求经朔和日月改正数的方法上会略有不同。《崇天历》使用传统的“积年法”求经朔,使用表格法求日月改正数。北宋的《纪元历》《乾元历》和南宋的《会元历》《统元历》《淳熙历》《乾道历》《成天历》《开禧历》共8部现存历法的定朔算法与《崇天历》的相同。《明天历》和《观天历》在经朔计算上与《崇天历》同,而日月改正数则使用“相减相乘”法直接用公式计算。南宋《统天历》求日月改正数方法与《崇天历》相同,而求经朔上则使用其首创的“岁实消长法”。它不使用传统的上元积年,其近地点与冬至点、合朔点也不重合。宋初的《仪天历》和《应天历》由于包含了伊斯兰历法的内容,其定朔计算方法与中国传统的算法有些区别,而对其定朔算法,令人满意地详细解读仍未出现。由于使用上元积年,利用古代历法进行定朔推算,计算量是很大的。但定朔算法只涉及了加减乘除运算,其模型十分简洁,现代电子计算机却很胜任这样的工作。我们将各历法的定朔算法模型编写成计算机程序,就可以方便地计算出每一个定朔时刻。为了提高结果的计算精度,程序化的过程严格按照历法中给出的算法进行。这样,使用程序推算就相当于在复原古代历法的当时推算情况。本文选择了VisualBasic语言作为实现宋代历法定朔算法的语言,编写应用程序。用此程序可以方便地求出任意月份的定朔时刻。2确定变化的计算值目前的程序,已经能够对除宋初的《应天历》《仪天历》二历和《明天历》外的其余11部现存宋代历法进行定朔的推算①。现代天文学利用迭代法能对定朔时刻进行精确计算,其计算值可以作为定朔的真实值。使用《三千五百年历日天象》中“合朔满月表”所给出的定朔计算结果作为定朔的真实值。为了方便比较,将真实值的结果转化成以小时为单位,并将历法计算值转化成依北京时间所表示的时刻。②设时差为η,根据公式(1)得经计算,对于《崇天历》和《乾元历》η=27.6min(注③);对于《统天历》《开禧历》和《成天历》三历η=-0.8min;对于《纪元历》等其它5历η=22.6min(见文献)。利用公式(2),就可以计算出时差修正后的定朔值。2.1最大误差在形态上表现为推算值与真实值的差距(误差)可以用来衡量历法精度的高低。使用误差的标准差、平均值和变化趋势进行描述和评价。历法值偏离真实值的平均大小用误差的平均值来反映;偏离的范围和程度用误差绝对值的标准差描述;给出一条拟合直线,其斜率可以反映推算精度随时间变化的趋势和程度。在图1至11中,列出了各历定朔计算误差的拟合直线。这里必须指出,在文献中,作者已经分析了宋代《纪元历》等历法的定朔计算精度。但是由于作者没有将历法中的某些术文和天文常数进行校正,直接依据《宋史·律历志》所记载的原文进行推算,因此得到的历法定朔计算值是错误的。本文中,我们详细校正了这些历法中每一段术文和每个常数的正确性,并严格检验程序的正确性,确保历法计算结果的真实可信。在文献中,作者改正了历法常数和程序,得到的《开禧历》的定朔计算精度是正确的,本文在讨论《开禧历》精度时,将直接引用此结果。11部历法总共2770个定朔的推算中,最大误差为2.4989h;若按“四刻以下为近”作为划分依据,则误差在1h以下的可认为满足要求,占95.60%;而误差大于1h的有122次,占4.40%。定朔计算较为精确的,按“二刻以下为亲”判断,误差小于0.5h的有1934次,所占比例为69.82%。在所有推算的误差中,平均为0.0644h,约合4min;若取其绝对值均值为0.3915h,约为23.5min;标准差是0.4887。各部历法的详细统计数据如表1所示。把这11部历法分为行用时间较长的(一般超过10a)和行用时间较短的两组,并具体分析每一部历法的定朔计算精度。《乾元历》定朔计算误差绝对值均值为0.4766h,合28.6min,其余指标都在所有11部历法平均水平之下。最大误差为2.4989h,这是11部历法唯一一次大于2h的误差。《乾元历》误差大于1h的有21次,几乎都大于0,说明历法值晚于真实值,即“推算后天”。《乾元历》推算误差情况如图1(a)所示。取每一年计算的平均值并分类统计,结果在图1(b),其余历法的描述与《乾元历》类似。《崇天历》定朔误差平均值接近于0,而绝对值均值略大于所有历法平均值,为0.3997h,合24min。历法在40年间最大误差只有1.4h,并且精度每年降低仅为0.13s,说明单从定朔上看,《崇天历》还是很优秀的。其定朔误差图如图2所示。《纪元历》的各推算指标接近11部历法的平均值。其行用前期的推算好于后期,《纪元历》行用前期(1105—1127年),有11次误差大于1h,后期(1133—1135年)有3次。其定朔推算误差绝对值均值为0.3855h,约23min。《纪元历》定朔精度如图3所示。《统元历》的定朔推算中,误差绝对值在1h以上的仅有7次,是所有历法中最少的;有279次误差在0.5h以下,超过70%。其误差平均值仅为-0.0006h,合2s多;取绝对值均值是0.3767h,约为22.5min。《统元历》推朔精度明显高于北宋时期的任何一部历法。在《统天历》重测天文常数前,推算定朔方面,《统元历》是最优的一部历法。其定朔推算精度如图4。《淳熙历》的推算误差中,有12次在1h以上;116次在0.5h以下。《淳熙历》为负值的误差明显少于为正值的,尤其是在0.5h以上的那些,历法推算定朔后天。其误差最大值为1.5424h,这是比较大的。《淳熙历》的推朔精度倒退到了北宋初期的水平。其误差分布如图5所示。《开禧历》各项精度指标都在平均水平之上。历法行用了44a的545次定朔计算中,只有10次推算误差大于1h;而在0.5h以下的精密推算超过七成。在推算定朔方面,《开禧历》无疑是宋代最优秀的历法。其定朔计算精度如图6。2.2传统模式上的定朔误差《观天历》共有124次定朔计算,误差大于1h的有6次,小于0.5h的有95次,其定朔推算精度处于中等水平,略好于《崇天历》和《纪元历》,与《统元历》的相当。然而其最大误差却达到了-1.6587h,仅次于《乾元历》的最大值。由此可知,推算定朔平均精度方面,北宋历法要低于南宋历法。因这些历法行用时间较短,仅给出每次定朔误差的描述图,不再求每一年的平均值。图7描述了《观天历》的定朔误差推算精度。《乾道历》仅有的111次定朔推算中,误差在1h以上的就有7次,而在0.5h以下的却仅有76次。《乾道历》推朔精度降低到了《崇天历》时的水平,比其前面的《统元历》要低很多。《会元历》的精度更低,其误差绝对值平均达到了0.6114h,是所有历法中最低的。《会元历》共99个推算误差中,只有41次小于0.5h,却有15次大于1h。两历的定朔推算精度如图8和图9所示。《统天历》精确测量了天文常数,也提高了其定朔计算的精度。《统天历》误差绝对值均值为0.3680h,只有3次大于1h的误差。其后面的《成天历》,各项指标基本与《统天历》相当。《授时历》以前,在推算定朔的精度上《统天历》之后的宋代历法达到了顶点。图10和11分别描述了《统天历》《成天历》2历的定朔误差。所有的11部历法中,误差平均值最小值为《统元历》的0.0006h,接近0;《崇天历》《淳熙历》《统天历》3历也在0.1h以下;最大平均值是《会元历》,超过了30min。而取绝对值的误差平均值《开禧历》最小,仍是《会元历》最大。误差标准差最小的是《开禧历》,而除《乾元历》外均小于0.5。而若考查历法的精度发展趋势,可以考察其误差拟合直线的斜率,斜率为正值表明其历法推算值会随时间推移早于真实值,斜率为负,则表明会晚于真实值。斜率绝对值以《成天历》《会元历》《乾道历》3历较大,而以《崇天历》的最小。计算得到,《成天历》的精度变化为每年降低4.104min,而《崇天历》则为每年0.1296s。各部历法精度指标比较如图12所示。3观测点、观天历、《会元历》3历的改历方式与传统经纬度的比较制造历法所需的基本天文常数是在观象台(天文台)得到的,而历法是在帝都使用的,如果两地的位置距离较远,造成两者经度或纬度上的差异过大,那么同样的推算结果,依现代和古人两种视角去评价,得到的结论就可能不同。我们先前得到精度可能不是古人认为的这样。南宋的《统元历》等4历行用地帝都临安与观测点俊仪上相差了近6°的经度,折合24min。这样,使用式(2)计算修正后的定朔时,如果取η为北京时间与造历观测点地方时的时间差,计算结果就是依现代人的眼光来衡量的客观精度;如果取η为北京时间与行用帝都地方时的时间差,则计算结果就是依当时人视角的历法推算精度。《纪元历》①《统天历》《开禧历》《成天历》4历,帝都与观测点一致,两种情形下的η值相同。对于《乾元历》《崇天历》《观天历》3历取η值为22.6min;其余南宋历法取η为-0.8min。古人眼中的推算误差就是在已经得到的误差上加上或是减去观测地与帝都的时差后的所得。例如,《统元历》等南宋前期历法,古人认为的误差是在已得误差上减去俊仪临安两地时差0.40h。由于《乾元历》《崇天历》《观天历》3历观测点与帝都经度差仅为1.2°,古今两种方式考查精度差别不显著。《纪元历》精度是0.3758h,达到北宋历法的最高水平。但是若以帝都临安为依据计算,它在南宋行用时,误差竟达到了0.7323h,约合44min,定朔计算严重后天。37次定朔计算中,就有10次误差超过1h,这在当时人们眼中是很低的精度。当对比表1和表2中有关数据时,发现虽然观测点与帝都不一致的历法,其误差差距很大,但它们也表现出了规律性。表1中误差较小的《统元历》和《纪元历》二历在表2中的精度却很差。相反,表1中精度最低的《会元历》在表2中却要好很多。这种差异和比较,我们能够对《统天历》以前的南宋历法改革及当时天文学家的认识进行如下推测。南宋初年,由于继续使用的《纪元历》是北宋历法,所依据观测数据是俊仪的,不加修正,直接在临安使用产生较大误差是显然的,这样就不得不改历。《统元历》制造者陈得一使用的观测数据仍是崇宁年间的,尽管他提高了历法的基本天文常数的精度,使用了比《纪元历》更优的回归年和近点月等常数,使得《统元历》定朔推算的实际精度好于《纪元历》。然而他可能并没有认识到地点的东西差距与天象发生时间的关系,因此在实际使用时,《统元历》并不理想,严重后天,因为《统元历》精确推算出俊仪的天象,而临安的实际天象在时间上已经超前了24min。《统元历》在当时人们眼中的精度很差,甚至还不如《乾元历》。而刘孝荣等在改历的过程中,就意识到了东西两地存在时间上的差异,并且应该知道时间上西方的要晚于东方的。于是,在《乾道历》《淳熙历》《会元历》3历的编制中,他们对部分天文常数做了调整,向前推移了天象发生时间,更接近于实际天象在临安发生的时间。而这样做使得历法推算肯定会后于在俊仪的真实天象。表1中,这3历误差的平均值均小于0就反映了这一点。由于地球自转,经度相异的两地,地方时不同,经度每差15°时间大约相差1h。这样,经度不同的两地某种天象就会有不同的发生时刻(地方时)。中国古代对地理经纬度概念的认识要比对经度的认识早一些。因为冬至时正午地面影长在不同纬度的差异较为明显,早在唐代《大衍历》时就有关于不同纬度正午太阳高度及日长差异的算法。而在古代中原地区由经度差仅导致几十分钟的地方时差异,到元代才出现对经度概念的认识。随元太祖西征时,耶律楚材用金《大明历》推算某个时刻在撒马尔罕应该有月食出现,但却要推迟发生。他意识到这种天象的时间差是由东西距离差所造成的,于是提出“里差”的概念,来解决时差问题,并进献了《庚午元历》。而证明在此之前中国人认识到经度或是时差的证据还没有出现。从前面的分析,我们可以猜想,耶律楚材以前的南宋历法家可能就已经清楚了东西时间差异的问题。不管人们当时是否知道该现象的原因,但他们已经能够解决历法上东西时间差异的问题。在北宋开封很优秀的《纪元历》,在临安使用时就会严重后天,根据《纪元历》而制造的《统元历》仍是后天,并且更为严重。然而,只需向前推移推算结果,就能提高在临安的推算精度,也只能向前移,而不能向后推。以上分析,我们甚至可以做出结论,在南宋《乾道历》时,中国天文学家已经能够知道位于西方的地点,要比位于东方地点的时间更晚,这是人类认识时间的一大进步。然而,这些也仅是我们的推测,还需要找到史料上证据来证明。4周期函数法求经朔误差时所带来的误差的处理不同历法精度可以使我们了解当时历法的优劣及推算天象的准确程度,而我们现在还需要关注的是为什么会有这样的精度,哪些算法或参数是影响精度的主要因素。由于定朔是在经朔的基础上加入日月改正数,那么定朔的误差就可以分为经朔推算的误差和日月改正数的误差。文献以《开禧历》为例,讨论了影响其定朔精度的各种因素,并给出一种周期函数法,可以求得其经朔误差对定朔的影响。这种周期函数法仅适用于行用时间超过9年或112个朔望月的历法,并且在历法行用初期所得的“经朔误差”更接近于实际情况。这样,能够使用周期函数法求经朔的历法只有《崇天历》等6部历法。对于这6部历法,我们先求得各部历法行用初年的9年(112个朔望月)的定朔误差的平均值,然后再此基础上减去期间56个朔望月误差的累积值,得到各部历法的经朔误差。例如,《开禧历》的行用初年起9年的定朔误差平均值为8.0809min,其朔望月常数为29.530591716d,可知其朔望月常数误差是0.3982s,那么《开禧历》的经朔推算误差以约4s每年的速度增大。①这样,除去其朔望月误差的累积值,其行用初年经朔误差的平均值应该是7.7092min。实际上,这与误差拟合直线的截距很接近。《纪元历》等6部历法的经朔误差列于表3中。各部历法经朔误差的差异很大,《淳

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论