回首页 

 

祖冲之课冬至日度考

郑 诚

 

内容提要:本文对存在争议的祖冲之实测冬至日所在宿度(冬至点位置)进行了考释。近人提出的“斗十一”为传本误刻,应作“斗十五”之说不能成立。祖冲之确定的“真”冬至日度应为“斗十二”,“斗十一”则极可能是《元嘉历》冬至日度,原文不误。 
关键词:祖冲之,冬至日度,岁差,古籍校勘

1. 引言

  祖冲之(429-500)的“大明历法”是中国历史上第一部应用了岁差概念的历法。“岁差引入历法,对于提高日、月、五星位置的推算精度是至关重要的,是为一大创举。”[1] 实测的冬至日所在宿度乃是计算岁差的关键数据。然而,保存在《宋书·律历志》中的“大明历法”没有直接记录其起算年代二十四气日所在宿度,故而后人对祖冲之的实测冬至日度产生了不同的看法。

2.缘起

  《宋书·律历志》收录的祖冲之“上大明历表”(462)对于其实测冬至点位置有着最直接的表述。
  “今参以中星,课以蚀望,冬至之日,在斗十一” [2] ——《宋书》传刻本如是,中华书局排印本(1974)从之,未出校记。
  1960年,钱宝琮先生提出“祖冲之实测得冬至日在斗十五”,注明“传刻本《宋书·历志》‘十五度’误作‘十一度’。”但没有说明具体理由[3] 。1982年出版的中国天文学史整理研究小组本《中国天文学史》即循此说[4]。 陈遵妫先生(1984)也认为“十一”系《宋书》传刻之误,应作“十五”[5] 。1998年出版的《中国科学技术史·人物卷》关于祖冲之的章节(杜石然执笔)亦云“祖冲之测得的冬至点是在‘斗十五’”[6] 。这种看法具有一定影响[7] ,但并未被普遍接受,例如2003年出版的《中国科学技术史·天文学卷》便保留了“斗十一”[8] 。
  对于这个问题,王德昌先生(1984)曾撰文考证,得出应保留“斗十一”的结论。笔者认为该文的论证很不完善,且存在错误[9]。问题并没有那么简单,仍然有讨论之必要。 
 
3.讨论
3.1 《大明历》之分析
  本文所谓《大明历》特指《宋书·律历志》所录“上大明历表”、“大明历法”以及“大明历议"(俗称“驳议”)三为一体,“乃是流传至今的祖冲之最完整的科学著作”[10]。

  大明六年,南徐州从事史祖冲之上表曰: 
  古历疏舛,颇不精密,群氏纠纷,莫审其要。何承天所奏意存改革,而置法简略,今已乖远。以臣校之,三睹厥谬:日月所在,差觉三度;二至晷影,几失一日;[中略]谨立改易之意有二,设法之情有三……其二,以《尧典》云:“日短星昴,以正仲冬”,以此推之,唐代冬至,日在今宿之左五十许度。汉代之初,即用秦历,冬至日在牵牛六度。汉武改立《太初历》,冬至日在牛初。后汉《四分法》,冬至日在斗二十二。晋时姜岌以月蚀检日,知冬至在斗十七今参以中星,课以蚀望,冬至之日,在斗十一。通而计之,未盈百载,所差二度。旧法并令冬至日有定处,天数既差,则七曜宿度渐与历舛。[11] 

  所谓 “日月所在,差觉三度;二至晷影,几失一日”针对当时仅行用了十七年的何承天《元嘉历》(445年颁行)。即,《元嘉历》推出的某日(例如冬至)日所在宿度,与实测所得该日日度差及三度;《元嘉历》所定的夏至冬至,较之晷表实测夏至冬至时刻差了近一天。
  由于《元嘉历》没有应用岁差概念,故而按照该历法,冬至点总在元嘉二十年(443)所定的斗十四强(即斗十四又十二分之一度)[12] 。
  因此,大明六年(462)为止,祖冲之测出的《元嘉历》冬至日度应为斗十七强或斗十一强,是为“差觉三度”。
  大明五年,祖氏以晷表测出了“真”冬至时刻:

  据大明五年十月十日,影一丈七寸七分半,十一月二十五日,一丈八寸一分太,二十六日,一丈七寸五分强,折取其中,则中天冬至,应在十一月三日。求其蚤晚,令后二日影相减,则一日差率也。倍之为法,前二日减,以百刻乘之为实,以法除实,得冬至加时在夜半后三十一刻,在《元嘉历》后一日,天数之正也。[13] 

  “按何承天历,二至先天” [14] ,“二至晷影,几失一日”,真冬至比历法(《元嘉历》)冬至晚了近一天,则当时真冬至时刻,日应行至斗十八或斗十二,是为“真”冬至日度。
  将这两个值比较备选的“斗十五”与“斗十一”,唯有“斗十一”庶几近之,而不可能是“斗十五”。
  重读“今参以中星,课以蚀望,冬至之日,在斗十一”,令人怀疑这个“十一”是否为《元嘉历》冬至先天所在。原因是:一来文字中未提晷表,二来 “今”(大明六年)时天下仍用《元嘉历》。无论如何,保留原文的“斗十一”更为合理。
  实际上,大明七年(463)的冬至点位置完全可以根据《大明历》的基本常数推算而得。曲安京先生(2005)在考证《大明历》岁差常数时,根据该历上元日度算出“大明七年《大明历》所推之冬至点在斗11.96”[15] 。

  此处笔者想使用更为直观的方式逐步解释大明七年冬至日度的推导过程。[16] 
  表文中提出“设法之情有三”:

  又设法者,其一,以子为辰首,位在正北,爻应初九,斗气之端,虚为北方,列宿之中,元气肇初,宜在此次。前儒虞喜,备论其义。今历上元日度,发自虚一。其二,以日辰之号,甲子为先,历法设元,应在此岁。而黄帝以来,世代所用,凡十一历,上元之岁,莫值此名。今历上元,岁在甲子。其三,以上元之岁,历中众条,并应以此为始,而《景初历》交会迟疾,亦置纪差,裁合朔气而已。条序纷互,不及古意。今设法,日月五纬,交会迟疾,悉以上元岁首为始则合璧之曜,信而有征,连珠之晖,于是乎在,群流共源,实精古法。[17] 
  
  《大明历》的上元,“日、月、五星、月亮近地点、黄白道的升交点、冬至点等共汇于一出,俱起于甲子岁十一月甲子夜半”[18] ,交汇位置“发自虚一”。

按“大明历法”:

  上元甲子至宋大明七年癸卯,五万一千九百三十九年算外 
  纪法,三万九千四百九十一 
  岁余,九千五百八十九 
  周天,一千四百四十二万四千六百六十四 
  虚分,万四百四十九[19] 
  
  自上元甲子岁冬至到大明七年癸卯冬至,积51939年。算外,即癸卯岁并不计算在内。  
  纪法,39491分合一度。一日等于一度。
  岁余/纪法=9589/39491,一岁(回归年)为365又9589/39491日,即14423804/39491=365.2428日(保留四位小数)。 
  周天(恒星年)为14424664分,合365.2646度,较一岁(回归年)多860分,合0.02177度,是为一岁之微差。 
  《大明历》周天余数为9589+860=10449分,合0.2646度,“入虚去分”[20] ,即将此余数置于女虚之间,是为虚分。

  大明七年冬至时刻日所在宿度推算如下: 
  上元积年*岁差/纪法=51939*860/14424664=3周天1393548分
  冬至点西退3周天,回到虚1,再向西退行1393548 /39491=35度11363分=35.2877度
  按当时使用的石氏二十八宿赤道宿度系统,虚1以西,虚分0.2646,女12,牛8,斗26。
  大明七年冬至点当入斗宿:斗26 -(35.2877 -虚1 -虚分0.2646 -牛12 -女8)=11.9769度(保留四位小数)

  这个结果与曲先生的计算值有约0.02度的差值,乃是由于选用年距有一年之差,并不影响结论。
  大明七年的冬至点位置乃是推求上元起度的基本数据之一,斗十二必定是祖冲之大明年间根据实测推出的真冬至日度[21] 。表文中的“斗十一”只能解释为同年《元嘉历》冬至当天的日所在度,《元嘉历》先天一日,减去一度即可。

3.2 对“斗十五”的解释
  笔者未能见到前人改“十一”为“十五”的具体解说,大致推测如下:
  表文云:“晋时姜岌以月蚀检日,知冬至在斗十七。今参以中星,课以蚀望,冬至之日,在斗十一。通而计之,未盈百载,所差二度。”
  太元九年(384)姜岌造《三纪甲子元历》,首创以月食冲法测日所在,测量精度大大提高,得冬至“日在斗十七度”[22] 。大约八十年后(462),假如祖冲之实测的真冬至日在“斗十五”,则正合“未盈百载,所差二度”。导出的岁差值约四十年退一度,接近《大明历》的取值45.92年退一度[23] 。若保留“斗十一”,则八十年间,所差四度,导出的岁差值仅是原来的一半。虽然“斗十一”自身并不能决定《大明历》的岁差常数,但这个数据仍然显得十分突兀。
  然而,虽然历法岁差常数的选取会参考历史上的多个冬至点位置,但该值“通常是经过附会某个由‘基本常数’朔望月及回归年所确定的历元而调整选择而来”[24] ,天象记录只是提供一个选择区间。《大明历》正是此法之滥觞。
  前人或许尚不清楚岁差常数的选择机制,仅考虑到“所差两度”这个直观的理由,故而改“十一”为“十五”。
  上节中已经证明,这个改动在是不能成立的。实际上,这种看似突兀的情况也是可以化解的。

3.3 历法冬至与“真”冬至
  “大明历法”命运多舛,由于宋孝武帝于大明八年(464)去世,祖氏的新历未及行用,改历之事遂被搁置。直到将近五十年后,“至[梁天监]九年(510)正月,用祖冲之所造甲子元历颁朔”[25] ,“大明历法”改名换姓后得以正式颁行,此时祖氏坟头的墓草已历十载枯荣。
  “甲子元历”行用三十四年后,“至大同十年(544),制诏更造新历”[26],是为《大同历》。“新历”的主要作者是梁朝的太史令虞 [27]。 
  《新唐书·历志上》,“日度议”云:

  大同九年(543),虞 等议:姜岌、何承天俱以月蚀冲步日所在。承天虽移岌三度,然其冬至亦上岌三日。承天在斗十三四度,而岌在斗十七度。其实非移。祖冲之谓为实差,以推今冬至,日在斗九度,用求中星不合。自岌至今,将二百年,而冬至在斗十二度。[28] 

  这似乎是发起改历的一次预备会议。与会者提出,按祖冲之的历法(岁差值)所推出的当年(543)冬至日度(斗九)与实测(斗十二)不合。
  按照虞 的说法,姜岌(384)实测的斗十七度仅是历法冬至日度,该历法的冬至时刻比何承天测定的“真”冬至时刻早了三日,因此姜、何二人实测的真冬至日皆在斗十三四度,看不出冬至点有什么移动[29]。 
  姜岌提出冬至日在斗十七之时(384)北朝日常行用的历法仍是《景初历》。故而斗十七当是《景初历》冬至日度所在。
  元嘉二十年(443)何承天上“元嘉历法”表文有云:

  臣以月蚀检之,则《景初》今之冬至应在斗十七。又史官受诏,以土圭测景,考校二至差三日有余。从来积岁及交州所上,检其增减,亦相符验。然则今之二至,非天之二至也。天之南至,日在斗十三四矣[30] 

  景初元年(237)颁行的《景初历》到当时(443)已经后天三日。真冬至日在斗十三四。祖冲之对此应该是一清二楚的。按照他的岁差值45.92年退一度,六十年间(384-443)冬至点推行必然大于一度,是为“实差”。
  姜岌的“斗十七”后天三日,其时(384)真冬至日当在“斗十四”,那么“斗十四”距大明六年祖冲之测出的真冬至点“斗十二”亦为两度。“斗十一”(较真冬至先天一日)自然也能很好的支持“未盈百载,所差二度”。
  虞 等人按祖氏岁差推出的“今”(543)冬至点“斗九度”差一度多。由“斗九度”逆向推算,得大明六年(462)冬至点,近于“斗十一”(10.74)。由此可见,虞 等人以“斗十一”作为大明六年冬至日度。难道说他们也为传本"上大明历表"所惑,不知所谓“今之冬至”是指《元嘉历》的冬至,而祖氏所测定之真冬至时刻与此相差将近一日?
 
4. 余论

  严格区分历法的冬至时刻与“真”冬至时刻(或曰圭表冬至)是至关重要的。前者因历法各异,冬至有先后之分,后者则完全不考虑历法,仅仅依靠圭表测影计算而得。
  笔者以为,今后在论述祖冲之实测冬至日度时应有清晰的概念,即祖冲之所定之“真”冬至点为斗十二。表文出现“斗十一”也没有错误,该数据为当年《元嘉历》冬至时刻日所在宿度,可由“斗十二”推出。“上大明历表”言“今参以中星,课以蚀望,冬至之日,在斗十一”非常自然,彼时(大明六年)行用者正是《元嘉历》。
  可能从虞 (544)开始,“斗十一”便被当作祖冲之实测的“真”冬至点。唐代一行的“大衍历议”更是加深了这种误解 [31] 。此后,论者多不加思量,径以“斗十一”归诸祖冲之。近人虽对“斗十一”的合理性提出了疑问,然而前提已误,结论亦失。王德昌(1984)与陈美东(1992)使用了基本正确的推算方法,但由于计算过程中的失误,仍然认为“斗十一”是祖冲之实测的真冬至日度。曲安京(2005)利用上元严格计算出“斗十二”,但并未由此对 “斗十一”进行分析[32] 。这个问题虽然不大,但也足以显示历史的复杂性,吾人惟有深入史境,才能获得更为全面的理解。
 
参考文献:
[1] 陈美东. 中国科学技术史·天文学卷. 北京:科学出版社,2003,268页.
[2] 宋书·律历志下. 北京:中华书局,1974. 289页.
[3] 钱宝琮. 从明末到春秋的历法沿革. 历史研究. 1960(3). 该文收入《李俨钱宝琮科学史全集》第九卷. 沈阳:辽宁教育出版社,1998, 507-580页。
[4] 中国天文学史整理研究小组. 中国天文学史. 北京:科学出版社,1981,80页、93页.
[5] 陈遵妫. 中国天文学史·第三册. 上海:上海人民出版社,1984,832页注7. 
[6] 金秋鹏主编. 中国科学技术史·人物卷. 北京:科学出版社,1998,166页。
[7] 近年的一些出版物在提及祖冲之的天文历法工作时,即引冬至日在“斗十五度”作为祖氏的实测值。著作如:《中国通史》第八册(白寿彝总主编, 黎虎主编,上海人民出版社,1995,952页),相关章节由杜升云与刘金沂执笔,注明“斗十五”出于《隋书·律历志》,然检《隋志》未得,不知何故;论文如:张惠民. 祖冲之家族的天文历算研究及其贡献. 陕西师范大学学报(自然科学版), 2002( 04).
[8] 陈美东. 中国科学技术史·天文学卷. 北京:科学出版社,2003,268页.
[9] 王德昌.《大明历》“冬至日在斗十一度”考证. 中中国天文学史文集(3). 北京:科学出版社,1984,33-37页。该文仅仅使用了《大明历》的“推日所在术”与“推二十四气术”加以演算,得到斗11.15。这种计算方法不仅过程较繁琐,又因牵涉到章法而降低了结果的精度,并不是最佳计算进路。此外,作者还误将虚分置于虚宿之末,直接造成了0.26度的损失。
[10] 严敦杰. 祖冲之科学著作校释. 沈阳:辽宁教育出版社. 2000.183页
[11] 宋书·律历志下. 北京:中华书局,1974. 289页.
[12] 宋书·律历志下. 北京:中华书局,1974. 271页.
[13] 宋书·律历志下. 北京:中华书局,1974. 313页. 
[14] 宋书·律历志下. 北京:中华书局,1974. 306页. 此言出自“大明历论”(俗称“驳议”)。
[15] 曲安京. 中国历法与数学. 科学出版社. 2005. 133页. 
[16] 陈美东先生(1992)进行过等价的推算,得到冬至点在斗10.98度,少算一度显然是个技术性错误。参见:陈美东. 中国古代冬至太阳所在宿度的测算. 中国传统科技文化探胜. 北京:科学出版社,1992,149页。
[17] 宋书·律历志下. 北京:中华书局,1974. 290页.
[18] 陈美东. 中国科学技术史·天文学卷. 北京:科学出版社,2003,268页.
[19] 宋书·律历志下. 北京:中华书局,1974. 291页.
[20] 隋书·律历志下. 北京:中华书局,1973. 498页.
[21] 所谓实测,直接得到的是月食发生时刻之日度,需要再推算出当年冬至时刻日度。
[22] 晋书·律历志下. 北京: 中华书局,1974. 566页.
[23] 宋书·律历志下. 北京:中华书局,1974. 304页. 即"大明历议"中祖冲之与戴法兴辩论时所说的四十五年“又年数之余有十一月”。
[24] 曲安京. 中国历法与数学. 科学出版社. 2005. 160-161.
[25] 隋书·律历志中. 北京:中华书局,1973. 416页.
[26] 隋书·律历志中. 北京:中华书局,1973. 416页..
[27] 旧唐书·艺文志. 北京:中华书局,1975. 2037页. “梁大同历一卷 虞 撰”
[28] 新唐书·历志上. 北京:中华书局,1975. 616页.
[29] 从今天的角度看,何承天(442)与姜岌(384)的测日年距不到六十载,冬至点退行不到一度(理论值约78年退一度;本文全为赤道度),尚且小于当时的测量误差,故而似乎“非移”。
[30] 宋书·律历志上. 北京:中华书局,1974. 261页. 
[31] 新唐书·历志上. 北京:中华数据,1975. 616页. “大衍历历议”之“日度议”明确记载:“大明八年,祖冲之上大明历,冬至在斗十一度,《开元历》应在斗十三度。” 该条与《宋书·律历志》所录“大明六年”有异,然两年的理论岁差尚不及0.1度,可以忽略不计,冬至日度仍是一致的, 
[32] 曲安京. 中国历法与数学. 北京:科学出版社,2005. 133页. “由表3-18可知,大明七年《大明历》所推冬至点在斗11.96,将近斗12,这于祖冲之所称在斗11相差近1度,倘若按斗12计算表3-17中诸岁差值,则与‘未盈百载,所差二度’的估算更加吻合。”

 

20051205加入