《兴和历》颁行的前前后后

2018-10-17 00:59万映秋
中国科技史杂志 2018年2期
关键词:历法五星算法

唐 泉 万映秋

(西北大学科学史高等研究院,西安 710127;咸阳师范学院文学与传播学院,咸阳 712000)

我国古代史籍中,有名可考的历法超过一百部,加上约略提到的,总数超过两百部。几乎每一部历法在颁行前后,都要经过激烈的辩论与斗争,并不断接受实践检验。从某种意义上讲,一部中国天文学史就是一部历法改革史。中国古代历法改革一直受到科学史家的高度关注。陈美东详细总结了中古代历法改革的主要原因、验历标准与方法以及制历理论([1], 页211—277、页385—405)。钱宝琮、薮内清和曲安京等学者专门撰文对中国古代历法沿革进行梳理[2—6]。此外,一些天文学史通史著作,如陈美东的《中国科学技术史·天文学卷》[7]、张培瑜等人的《中国古代历法》[8]和陈遵妫的《中国天文学史》[9]等著作对中国古代历法改革也有较为详细的论述。不过已有的相关研究主要集中在《太初历》、《大衍历》和《授时历》等一些创新较多、影响较大的历法[10—15],而对那些创新较少、影响不大的历法,则关注较少。

东魏《兴和历》是李业兴等人于兴和元年(539)在《正光历》的基础上修订而成的一部历法,自兴和二年开始颁行,至北齐天保元年(550)被宋景业《天保历》所取代。在中国古代历法史上,《兴和历》虽然创新不多,行用时间也较短,但是参与《兴和历》改革的人员,不仅包括当时的太史令和太史丞等最高级别的天文官员,而且包括当时众多德高望重的行政官员,其参与人数之众,规格之高,在中国古代历法改革史上非常罕见。然而,关于《兴和历》的改革过程,一般天文学史通史著作均较少涉及或语焉不详,而讨论较为详细的论著在考察李业兴和信都芳围绕《兴和历》展开的争论时,又混淆了李业兴和信都芳二人的制历主张[7],在一定程度上影响了我们对李业兴天文学水平的客观评价。

本文试图全面考察《兴和历》改革的政治与时代背景、参与《兴和历》制定的人员构成、《兴和历》的完成过程,以及李业兴和信都芳围绕《兴和历》展开的争论。同时本文还将通过比较《兴和历》和《正光历》异同,讨论二者的继承关系。

1 《兴和历》的作者与制历经过

北魏立国初期,统治者无暇改历,继续沿用曹魏杨伟《景初历》(237)。正平二年(452)二月,中常侍宗爱弑杀魏太武帝拓跋焘,十月,尚书陆丽等人拥立太武帝的长孙拓跋濬即位,是为文成帝。文成帝登基后,于同年十二月用《玄始历》代替《景初历》。《玄始历》为北凉太史赵所造,自玄始元年(412)起一直在北凉行用,魏太武帝于太延五年(439)平定北凉时将其带回中原。正光三年(522),开始行用《正光历》,这是一部综合张洪、张龙祥和李业兴等九家历法而成的新历法,其中以张龙祥和李业兴历法为主。《正光历》以壬子为上元,以应魏之水德,该历因在神龟年间制成,故又称《神龟历》。

公元534年,魏孝武帝元修因不愿做傀儡皇帝,被大丞相高欢驱逐,被迫投奔大将军宇文泰。高欢遂拥立年仅11岁的元善见为帝,即孝静帝。次年,宇文泰在长安立元宝炬为帝,即西魏文帝。自此,北魏分裂为西魏(535—557)和东魏(534—550)。东魏建都邺城,以晋阳作为别都,高欢作为辅政大臣,坐镇别都晋阳遥控邺城,是东魏政权实际的掌控者。

西魏入关后,一直使用《正光历》。东魏孝静帝初期,亦行用《正光历》,但当时《正光历》在推算气朔和五星方面已经出现较大误差。据《魏书·律历志下》载:“孝静世,壬子历气朔稍违,荧惑失次,四星出伏,历亦乖舛。兴和元年十月,齐献武王入邺,复命李业兴,令其改正,立《甲子元历》。”([16],页2695)壬子历即《正光历》,因以壬子为历元,故名。齐献武王即东魏权臣高欢,其次子高洋于东魏武定八年(550)建立北齐,追尊高欢为献武皇帝。上述记载表明,《甲子元历》是李业兴“改正”《正光历》得到的新历,以甲子为历元,故称《甲子元历》,因在兴和年间制成,又称《兴和历》。新历制成后,尚书左仆射司马子如和右仆射高隆之作《上兴和历表》,将新历敬呈孝静帝。《上兴和历表》详细记载了《兴和历》的改历过程,包括改历背景,改历原因和参与改历的人员名单,是我们了解东魏历法改革的重要文献。

根据《上兴和历表》,李业兴等人受命改历的原因主要有两个。一方面,当时行用的《正光历》已出现较大误差,正如《上兴和历表》所称:“正光之历既行于世,发元壬子,置差合朔。测影清台,悬炭之期或爽;候气重室,布灰之应少差。”([16],页2695)悬炭是中国古代将土和炭悬于衡器两端以测量冬至和夏至的方法,候气是通过律管飞灰测量各气时刻的方法,《后汉书·律历上》对悬炭和候气的方法及原理均有较为详细的说明([17],页3016)。“悬炭之期或爽”和“布灰之应少差”表明《正光历》推算节气出现较大误差。

另一方面,历法是中国古代皇权的象征,奉哪个政权的正朔,就表明承认和拥护哪个政权的统治。因此在改朝换代时,皇帝通常都要颁行新历,朝代更迭因此成为中国古代频繁改历的重要原因之一。北魏末期行用《正光历》,北魏分裂为西魏和东魏后,西魏仍旧行用《正光历》。高欢拥立孝静帝建立东魏政权后,颁行一部与《正光历》不同的新历,非常符合当时的政治需要。司马子如和高隆之在《上兴和历表》中,对当时的政治环境进行了说明:

伏惟陛下当璧膺符,大横协兆,乘机虎变,抚运龙飞,苞括九隅,牢笼万宇,四海来王,百灵受职。大丞相、渤海王降神挺生,固天纵德,负图作宰,知机成务,拨乱反正,决江疏河,效显勤王,勋彰济世。([16],页2695—2696)

这段文字不仅极力强调了孝静帝建立东魏政权的合法性和正统性,而且对大丞相高欢的功绩进行了充分肯定和高度赞扬。《兴和历》的改革,正是在东魏政权逐渐稳定,东魏统治者急需强化其政权的合法性和正统性的背景下逐渐展开的。

根据《上兴和历表》,负责修订《兴和历》的主要有三人,分别是兼散骑常侍、侍读李业兴,大丞相府东阁祭酒、夷安县开国公王春和大丞相府户曹参军和贵兴。李业兴、王春和和贵兴为何能够担负负责修订《兴和历》的重任呢?我们先来考察这三人的背景。李业兴,上党长子(今山西长子)人,其祖父和父亲均以儒学举孝廉。早年曾师事儒学大师徐遵明,“后乃博涉百家,图纬、风角、天文、占候无不详练,尤长算历”[18]。早在延昌四年(515)冬,时任校书郎的李业兴就与荡寇将军张龙祥和屯骑校尉张洪分别制定新历,希望能被朝廷颁行。神龟初年,李业兴制定的历法与其他八家历法合为一部历法,于正光三年颁行,是为《正光历》,其中以李业兴和张龙祥的历法为主。东魏建都邺城后,百废待兴,李业兴不仅参与了当时的城市建设,而且参与了制定礼乐制度等多项工作。东魏初期,当年参与《正光历》制定的九位专家,绝大多数已经去世或退出了天文学界,只有李业兴数十年间一直活跃在天文历法界,在这种情形下,由李业兴负责新历的修订工作无疑是非常合适的。王春,河东人,《北史》和《北齐书》皆有传。王春“少好易占,明风角,游于赵、魏之间,飞符上天”[19]。后被孝文帝元宏(471—499在位)引为馆客,每次随军出征,都能对战局胜负进行比较准确的预测,因此深受孝文帝器重,曾任徐州刺史,赐爵安夷县公,卒后赠秦州刺史。其时王春的身份为大丞相府东阁祭酒,即大丞相高欢的首席幕僚,其地位之尊崇可想而知。关于和贵兴,文献记载较少,只知他参与改历时的官职为丞相府户曹参军,主要掌管户籍、赋税、仓库交纳等事项,至于其是否精通天文,还有待进一步深入研究。

除了上述提到的三位主要负责人,还有一些人员也参与了《兴和历》的修订工作,他们是:大丞相主簿孙搴;前给事黄门侍郎魏季景;渤海王世子开府谘议参军事、定州大中正崔暹;国子学生、屯留县开国子李子述;骠骑将军、左光禄大夫晔。孙搴,字彦举,乐安人,少厉志勤学,以文才著称,深受高欢赏识,《北齐书》和《北史》皆有传。崔暹,字季伦,博陵安平人,汉代尚书崔寔之后,《北齐书》有传。魏季景,《北史》有传:“季景少孤,清苦自立,博学有文才,弱冠有名京师。”李崇祖,字子述,系李业兴长子。据《北史·儒林传·李业兴传》载“齐文宣营构三台,材瓦工程,皆崇祖所算也。”[20]由此表明李崇祖深得家传,精通计算。从孙搴、崔暹和魏季景等人的传记来看,他们并无天文历算方面的才能。此外,骠骑将军、左光禄大夫晔的姓氏不可考。

《兴和历》制成后,司马子如和高隆之等人“犹恐未尽”,认为应该“必集名胜,更共修理”,于是召集在太史任职的天文官员和一些德高望重的大臣对新历进行审查和修订。这些人员中在太史任职的官员有:太史令、卢乡县开国男赵洪庆,太史令胡法通,太史丞郭庆,太史博士胡仲和。其他官员有:左光禄大夫卢道约,大司农卿、彭城侯李谐,左光禄大夫、东雍州大中正裴献伯,散骑常侍、西兖州大中正温子升,太尉府长史陆操,尚书右丞、城阳县开国子卢元明,中书侍郎李同轨,前中书侍郎邢子明,中书侍郎宇文忠之,前司空府长史、建康伯元仲悛,大丞相法曹参军杜弼,尚书左中兵郎中、定阳伯李溥济,尚书起部郎中辛术,尚书祠部郎中元长和,前青州骠骑府司马、安定子胡世荣,应诏左右张喆,员外司马督曹魏祖。上述参与审查和修订新历的人员中,有的是被时人称誉的政府官员,有的则来自“术兼世业”的天文世家,例如太史令赵洪庆与太史令胡法通、太史博士胡仲和以及前青州骠骑府司马胡世荣就分别来自赵家和胡家这两个非常著名的天文世家。

中国古代历法改革史上,多家历法参与竞争非常普遍。例如,西汉太初改历,当时参与人员多达二十余人,提出的方案多达十八种,通过校检,最终选择了邓平和落下闳制定的历法,是为《太初历》。北魏正光年间的历法改革,共有九家历法参与竞争,最后综合九家历法共成一历,即为《正光历》。但是,除《正光历》外,由数十人参与同一部历法的制定与校验,确实不多见。从《上兴和历表》提供的名单来看,参与《兴和历》制定与校验的人员有姓名可考的多达29人,其参与人员之众,规格之高,在古代历法改革过程中非常罕见。这充分表明东魏政府对此次改历高度重视,东魏统治者想很有可能是想通过汇集众多历法名家和行政官员共同参与制历造成一种气势,以不输九家共修的《正光历》。

2 信都芳对《兴和历》的批评

《兴和历》制成后,孝静帝下诏以新历示田曹参军信都芳,征求他的意见。信都芳,河间人,“少明算术,为州里所称。有巧思,每精研究,忘寝与食,或坠坑坎。”[21]后被安丰王元延明引为馆客,期间得到数学家和天文学家祖暅之传授,“由是弥复精密”。后隐于并州乐平之东山,孝静时为高欢中外府田曹参军。

信都芳对历法有很深的造诣,据《北齐书·方伎传·信都芳传》载:“芳又私撰历书,名为《灵宪历》,算月有频大频小,食必以朔,证据甚甄明,每云:‘何承天亦为此法,不能精,灵宪若成,必当百代无异议。’书未就而卒。”[21]根据信都芳制定的《灵宪历》“算月有频大频小,食必以朔”,说明信都芳在该历中已使用定朔算法。遗憾的是,《灵宪历》尚未完成,信都芳即已去世,关于这部历法的细节已不得而知。除了精通历法,信都芳还精通候气,《隋书·律历志上》载:

候气:后齐神武霸府田曹参军信都芳,深有巧思,能以管候气,仰观云色。尝与人对语,即指天曰:‘孟春之气至矣。’人往验管,而飞灰已应。每月所候,言皆无爽。又为轮扇二十四,埋地中,以测二十四气。每一气感,则一扇自动,他扇并住,与管灰相应,若符契焉。[22]

从信都芳的学术背景来看,让他对新历提意见也是比较合适的。对李业兴等人制定的新历,信都芳进行了实际验算,并对其五星推算精度提出了批评:

今年十二月二十日,新历岁星在营室十三度,顺,疾;天上岁星在营室十一度。今月二十日,新历镇星在角十一度,留;天上镇星在亢四度,留。今月二十日,新历太白在斗二十五度,晨见,逆行;天上太白在斗二十一度,逆行。便为差殊。([16],页2697)

中国古代以二十八宿作为坐标系,五星位置通常以入某宿某度来标识,如“岁星在营室十三度”和“镇星在角十一度”等均是对行星位置的描述。

根据信都芳的批评,可以列出《兴和历》所推兴和元年十二月二十日(540年1月14日)岁星,镇星和太白三星的赤道宿度以及相应的实测结果,如表1所示。

表1 信都芳所推《兴和历》五星推算精度

那么,信都芳所称兴和元年十二月二十日岁星、镇星和太白三星的历测结果与实测结果是否可靠?或者说,信都芳有没有可能故意夸大《兴和历》的误差?下面将我们按照《兴和历》五星算法重新推算兴和元年十二月二十日岁星、镇星和太白三星的赤道宿度,同时借助天文软件复原当时岁星、镇星和太白的真实赤道宿度,并将所得结果与表1中的数据进行比较。

中国隋代之前的历法家在计算五星位置时,均不考虑太阳和行星的中心差,因此算法相对比较简单。以《兴和历》为例,其计算五星位置的基本思路如下:(1)计算行星合日的时刻与赤道宿度;(2)将行星在一个会合周期内的运动以“合”作为起点分成若干段目,假定行星在各段目内匀速运动,分别给出行星在各段目内运行的时间与度距;(3)根据行星合日时的赤道宿度和行星在一个会合周期内的运动状态,求出行星在任意时刻的赤道宿度。

计算行星赤道宿度需要用到上元积年、冬至时刻、回归年长度与五星会合周期等天文常数。根据《兴和历》,上元至兴和元年冬至积293996年,由《兴和历》算法可求出兴和元年冬至时刻为十一月甲戌12.65刻(539年12月20日3时2分),查张培瑜《三千五百年历日天象》,该年冬至时刻为539年12月20日1时57分,误差为1小时5分[23]。《兴和历》冬至时刻测算精度与《正光历》大体相当,但明显优于此前各历。

信都芳在批评《兴和历》推算兴和元年十二月二十日岁星、镇星和太白三星赤道宿度的误差时,并未提到具体观测时间。为便于和理论结果进行比较,本文假定信都芳的观测时间为北京时间20时。按照《兴和历》算法,我们计算出兴和元年十二月二十日夜岁星、镇星和太白三星的运行状态及位置,结果如表2所示。刘次沅开发的天文软件“中国黄道星空”可以求出太阳、月球和五星的黄经、黄纬以及黄道宿度,是研究中国古代天象记录非常有用的一款天文软件[24]。利用“中国黄道星空”,我们求出兴和元年十二月二十日20时岁星、镇星和太白的黄道宿度分别为:岁星,营室12.17度;镇星,亢宿4.98度;太白,斗宿19.65度。相应的岁星、镇星和太白的赤经分别为340.32°,199.18°和278.25°。若取公元540年黄赤夹角ε=23.63°,则利用球面三角学知识,可以求出兴和元年十二月二十日20时岁星、镇星和太白的赤道宿度,结果如表2所示。

表2 本文所推《兴和历》五星推算精度

若将表2中我们计算的岁星、镇星和太白的赤道宿度采取向上取整,其结果分别为营室13度,角11度和斗24度,其中岁星和镇星的赤道宿度与表1中信都芳所给结果一致,但太白的赤道宿度比信都芳的结果小一度,究竟是信都芳计算错误还是有意夸大太白宿度计算误差,或者是由传抄造成的错误,其结果已不得而知。若将我们的计算结果向下取整,所得结果分别为营室11度,亢4度和斗21度,与表1中所示信都芳实测结果吻合。

3 李业兴对信都芳的回应

信都芳指出,《兴和历》在计算兴和元年十二月二十日岁星、镇星和太白三星的位置时,分别有二度,五度和四度的误差,并因此认为《兴和历》“便为差殊”。对信都芳的批评,李业兴立即进行了回应。李业兴首先承认《兴和历》推算五星位置确实存在误差,他认为《兴和历》推算岁星、镇星和太白位置的误差分别达到二度、五度和四度,这是很正常的。他在“对信都芳驳新历”一文中说:

岁星行天,伺候以来八九余年,恒不及二度。今新历加二度。至于夕伏晨见,纤毫无爽。今日仰看,如觉二度,及其出没,还应如术。镇星,自造壬子元以来,岁常不及,故加壬子七度,亦知犹不及五度,适欲并加,恐出没顿校十度、十日,将来永用,不合处多。太白之行,顿疾顿迟,取其会归而已。近十二月二十日,晨见东方,新旧二历推之,分寸不异。行星三日,顿校四度。如此之事,无年不有,至其伏见,还依术法。([16],页2697)

按照李业兴的说法,他对岁星位置进行多年的计算与观测,其误差不超过二度,至于推算岁星见伏,则是“纤毫无爽”,即连极其细微的误差也没有。李业兴指出《兴和历》推算镇星见伏的误差可能会达到十度、十日,同时他也实事求是地指出:“将来永用,不合处多。”李业兴还利用《正光历》和《兴和历》分别推算兴和元年十二月二十日太白晨见东方,其结果是“分寸不异”。李业兴据此认为,《兴和历》推算五星伏见的方法还是可取的,正如他所言,对于岁星,“及其出没,还应如术”,对于太白,“至其伏见,还依术法”。

为了突出《兴和历》推算五星位置及伏见的优势,李业兴将《兴和历》与以前诸历进行了比较。一方面,李业兴“上算千载之日月星辰有见经史者”,与赵《玄始历》、何承天《元嘉历》和祖冲之《大明历》推算结果进行比较,结果是《兴和历》“长于三历一倍”。另一方面,李业兴推算了自公元493年魏孝文帝拓跋宏迁都洛阳以来四十余年间的五星伏见情况,并与《玄始历》《元嘉历》和《大明历》推算结果进行比较。结果表明,对于岁星、镇星和太白三星,“业兴历首尾恒中,及有差处,不过一日二日、一度两度;三历之失,动校十日十度”,可见《兴和历》的优势非常明显。由于火星的中心差较大,因此相对于岁星、镇星和太白,荧惑的计算较为困难,李业兴对此也有明确的认识:“荧惑一星,伏见体自无常,或不应度。”但与祖冲之等人的历法相比,《兴和历》在推算荧惑见伏方面仍然具有一定的优势。根据李业兴的比较,《大明历》推算荧惑见伏的误差比《兴和历》多十日六度,《元嘉历》的误差约为三十日二十九度。《兴和历》与《正光历》的推算方法相同。对于辰星,伏多见少,“及其见时,与历无舛,今此亦依《壬子》元不改。”即《兴和历》仍然采用《正光历》的辰星算法。

在李业兴所处的时代,中国天文学家尚未发现五星中心差,因此推算五星位置及伏见时刻出现较大误差在所难免,李业兴对此有非常清楚的认识。李业兴认为:

业兴以天道高远,测步难精,五行伏留,推考不易,人目仰窥,未能尽密,但取其见伏大归,略其中间小谬,如此历便可行。若专据所见之验,不取出没之效,则历数之道其几废矣。([16],页2698)

他认为一部历法只要推算五星伏见时刻比较准确,即使五星位置出现误差,也不影响该历行用。同时他进一步强调了不能仅用五星位置误差来检验历法疏密,五星伏见也可作为检验历法疏密的一个标准,否则“历数之道其几废矣”。

李业兴不仅将《兴和历》与《玄始历》《元嘉历》和《大明历》等三部前代历法比较,而且将其与北魏末期一直行用的《正光历》进行比较。李业兴指出:“校于《壬子》旧历,镇星差天五度,太白岁星亦各有差,是旧历差天为多,新历差天为少。”([16],页2699)按照信都芳的计算,《兴和历》推算兴和元年十二月二十日岁星、镇星和太白的位置分别有二度、四度和五度的误差,李业兴通过比较指出“旧历差天为多,新历差天为少”,但并未具体提到旧历(《正光历》)推算岁星、镇星和太白的误差。李业兴充分强调了实测对制定历法的重要性:“凡造历者,皆须积年累日,依法候天,知其疏密,然后审其近者,用作历术。不可一月两月之间,能正是非。”([16],页2699)李业兴将行星在一个会合周期内的运动状态分为疾、迟、留、逆、顺、伏、见等七种,并将其称为七头。李业兴指出:“造历者必须测知七头,然后作术。得七头者造历为近,不得头者其历甚疏,皆非一二日能知是非。”([16],页2699)他还指出,秦汉魏晋以来诸历,只要是建立在长期测算基础上的历法,“术乃可观”,而那些仓促完成的历法,当时可能与实测较为接近,但不能长期行用,经过三四年实测制定的历法,“初虽近天,多载恐失。”

李业兴制定《兴和历》虽然只花了短短两个月左右的时间,但是自他参与制定《正光历》以来,一直进行持续的天文观测和研究,因此《兴和历》实际上是基于李业兴数十年的天文观测,又在《正光历》的基础上修订完成的。可能正是由于这个原因,李业兴对《兴和历》充满了自信,认为比之前行用的《正光历》要精密。他指出:“今《甲子》新历,业兴潜构积年,虽有少差,校于《壬子元历》,近天者多。若久而验天,十年二十年间,比《壬子元历》,三星行天,其差为密。”([16],页2699)《兴和历》以甲子为上元,故又称《甲子元历》。作为一个活跃于北魏和东魏历法界数十年的天文学家,李业兴身上所体现出来的实事求是的科学态度,以及他主张的一些制历原则都具有重要的意义。

信都芳对李业兴的回应,是否有进一步的反驳或者讨论,文献中未有记载。“献武王上言之,诏付外施行。”齐献武王高欢给皇帝详细汇报了信都芳和李业兴围绕《兴和历》展开的争论,于是皇帝下诏颁行《兴和历》。

4 《兴和历》与《正光历》比较

据《魏书·律历志》记载,兴和元年十月,李业兴受命制定新历,同年十二月信都芳即对新历提出批评,由此可见李业兴制定《兴和历》的时间大约只有两个月,其费时之短在中国历法史上极其少见。那么,李业兴为何能在短短两个月时间内制定出一部新历?其中的主要原因有两个。

首先,东魏政权为制定新历成立了一个阵容豪华的改历小组,改历小组中技术方面的负责人李业兴是北魏和东魏的历法名家,他潜心历法研究数十年,并曾参与过北魏《正光历》的制定,具有丰富的制历经验。参与《兴和历》制定的技术人员还包括太史令赵洪庆、胡法通,太史丞郭庆,太史博士胡仲和,以及精通天文星占的王春,李崇祖和胡世荣等人,可以说,改历小组囊括了当时东魏所有有影响的天文历法领域的专门人才。除了李业兴等精通天文历法的专门人才外,改历小组中也包括一大批德高望重的行政官员,如大丞相主簿孙搴,散骑常侍温子升和尚书右丞卢元明等人。这个组成人员复杂的改历小组为《兴和历》的制定提供了可靠的技术和后勤保障。

其次,《兴和历》并非李业兴制定的一部全新的历法,而是在《正光历》的基础上修订而成的。据《魏书·律历志上》载:“肃宗以历就,大赦改元,因名《正光历》,颁于天下。其九家共修,以龙祥、业兴为主。”([25],页2663)考虑到李业兴当时参与历法竞争时的身份仅为校书郎,而张龙祥的身份是荡寇将军,因此《魏书·律历志上》在谈及张龙祥和李业兴对《正光历》的贡献时,张龙祥的名字在前,李业兴的名字在后,这一点是比较容易理解的。但据《隋书·律历志中》载:“西魏入关,尚行李业兴《正光历》法。至周明帝武成元年,始诏有司造周历。”[26]此处直接称“李业兴《正光历》法”,说明李业兴对《正光历》的贡献很有可能超过了张龙祥。李业兴作为《正光历》的主要作者,对其内容自然非常熟悉,这也是他能在两个月内以《正光历》为基础上制定出《兴和历》的主要原因之一。

那么,《兴和历》究竟在多大程度上继承了《正光历》的算法?《正光历》完整收录在《魏书·律历志上》([25],页2663—2686),《兴和历》完整收录在《魏书·律历志下》([16],页2699—2723),两部历法均分为七章。《正光历》各章标题依次为:推推月朔术;推二十四气术;推交会术;推合朔入历迟疾盈缩术;推日月合朔弦望度术;推五行没灭易卦气候上朔术;推五星六通术。《兴和历》各章标题依次为:推月朔弦望术;推二十四气闰术;推合朔却去度表里术;推合朔月食入迟疾历盈缩术;推日月合朔弦望度术;推土王灭没卦候上朔术;推五星见伏术。两历各章标题虽略有不同,但涵盖的内容及编排次序完全相同,而且各章中子算法的名称及编排次序也是大同小异。比较《兴和历》和《正光历》原文,可以看出这两部历法的内容基本大同小异,但各章内容也有一些细微差别:

(1)第一章,《兴和历》中子算法“③求次月朔术”为《正光历》所无,“求次月朔术”意为求次月朔日的日名;“③求次月朔术”中的序号③表示子算法“求次月朔术”是该章中的第3个子算法,下同。

(2)第二章,《正光历》中子算法“①推二十四气术”在《兴和历》中被拆分为“①推二十四气术”和“②求次气术”两个子算法。此外,《兴和历》中子算法“④推闰又法术”为《正光历》所无;

(3)第三章,两历前三个子算法和最后两个子算法的内容及次序完全相同,其余各子算法的次序略有不同。《兴和历》中子算法“④推月在日道表里术”对应《正光历》中子算法“⑥推月在日道表里术”,子算法“⑥推交道所在日术”和“⑦求后交月及日术”分别对应《正光历》中子算法“④求交道所在月”和“⑤求后交月及日”,子算法“⑤求次月表里术”则为《正光历》所无;

(4)第四章,《正光历》中最后一个子算法“⑥入历值周日者术”为《兴和历》所无;

(6)第六章,《正光历》中子算法“①推五行用事日”和“②又一法求土王用事日”为求土王日的两种不同算法,《兴和历》中子算法“①推土王日术”对应《正光历》中子算法②,子算法“②推土王又法”和“③求次季土王日术”系求土王日的另外一种算法,为《正光历》所无,而《正光历》中子算法①为《兴和历》所无。又《正光历》中子算法“⑦求中孚卦”为《兴和历》所无。

(7)第七章,《兴和历》中子算法“②径推五星术”“⑥五星历步术”和“⑦求五星行所在度术”为《正光历》所无。

综上比较可以看出,《兴和历》和《正光历》各章内容及子算法的编排次序基本相同,但《正光历》中有三个子算法为《兴和历》所无,而《兴和历》中有九个子算法为《正光历》所无。特别需要指出,《兴和历》第七章中子算法“⑥五星历步术”和“⑦求五星行所在度术”是为计算五星每日宿度而设计的算法,类似算法在杨伟《景初历》、何承天《元嘉历》和祖冲之《大明历》等历法中都能见到,但是《正光历》中却无类似算法,这很有可能是《正光历》术文脱漏所致。

此外,《兴和历》非常注重天文常数的选择,历首列出的天文常数多达34个,而《正光历》中历首列出的天文常数只有18个,可能是得益于使用了更多的天文常数,《兴和历》在算法叙述的简洁性方面,较《正光历》有比较明显的进步。

在中国历法史上,《正光历》并非名历,但该历法也有许多创新之处。例如,《正光历》首次将七十二候引入历法,对后世历法影响较大。此外,《正光历》在交食理论中,首次明确给出了日月食食分算法。《兴和历》完全继承了《正光历》的上述创新,但是《兴和历》与《正光历》均不用岁差,则较此前祖冲之《大明历》是一种明显退步。

《兴和历》与《正光历》采用的天文常数并不相同。陈美东曾对中国古代历法中的天文常数及其精度进行过详细的讨论,我们据此可以对《兴和历》与《正光历》天文常数的精度进行一个简单的评价([27],页211—277、页385—405)。《正光历》和《兴和历》所取闰周不同,《正光历》采用505年186闰,《兴和历》采用562年207闰。以回归年和朔望月常数精度来论,《正光历》均优于《兴和历》,且二历回归年常数均优于此前除《大明历》以外的其他历法,不过《兴和历》所取朔望月常数误差达到1.6秒,为汉代《黄初历》以来各历中的最差值。以五星会合周期和恒星周期精度来论,《兴和历》明显优于《正光历》。《兴和历》火星会合周期和恒星周期误差分别为54.6分钟和19.6分钟,水星会合周期误差为1.9分钟,明显优于以前诸历,但《兴和历》中木星和土星的会合周期与恒星周期,以及金星的会合周期,与以前各历相比均有明显的倒退。

5 结语

以上简要讨论了《兴和历》改历的过程,通过本文的讨论,我们有如下一些认识:

(1)参与《兴和历》制定、考校和审查的人员,除了李业兴和王春等职业天文学家和任职于太史的太史令和太史丞等高级天文官员外,还包括当时一大批德高望重的行政官员,其参与人员之多,规格之高,在中国古代历法改革史上是非常罕见的。孝静帝和高欢之所以要组织如此庞大的队伍来制定《兴和历》,应该与当时的政治环境有密切关系。北魏分裂为西魏和东魏之后,两个政权一直忙于战争而无暇改历。东魏立国初期,百废待兴,新都城邺城需要建设,各种制度需要完善,《兴和历》改革正是在这种背景下展开的。东魏政权组织如此庞大的制历班子参与《兴和历》改革,充分表明东魏统治者对此次改历高度重视,另一方面,东魏统治者也很有可能想通过组织庞大的制历班子参与改历这一形式,以达到与《正光历》多人共修局面形成呼应的目的。当然,也不排除东魏政权企图通过改历造成对无暇改历的西魏政权的一种压力和示威。纵观历代其他各历改革,就参与改历人员的规模和声势而论,从来没有哪一部历法能与《兴和历》相比。

(2)李业兴等人之所以能在短短两个月内制定出《兴和历》,是因为李业兴等人充分吸收和继承了《正光历》的成果,《兴和历》是在《正光历》的基础上修订而成的历法。对《兴和历》和《正光历》这两部历法进行详细比较表明,这两部历法在章节及子算法编排方面大同小异,其中《正光历》中有三个算法为《兴和历》所无,而《兴和历》中有九个算法为《正光历》所无,《兴和历》在算法叙述的简洁性方面,较《正光历》有比较明显的进步。从一些重要的天文常数的选取来看,《正光历》所取回归年和朔望月常数均优于《兴和历》,但《兴和历》所取五星会合周期和恒星周期则明显优于《正光历》。但与以前各历相比,《兴和历》所取回归年、朔望月和五星会合周期和恒星周期并没有明显的优势。

(3)李业兴在考察《兴和历》推算公元493年以来四十余年间五星见伏情况时曾称,对于岁星、镇星和太白三星,“业兴历首尾恒中,及有差处,不过一日二日、一度两度”。那么,《兴和历》推算岁星、镇星和太白见伏时刻及位置,能否达到李业兴所称误差在“一日二日、一度两度”以内这个标准?答案显然是否定的。我们知道,影响五星见伏的主要因素是太阳和行星的中心差,而隋代之前包括《兴和历》在内的所有中国历法,都是按照行星的会合周期推算行星合日及见伏情况,而不考虑行星中心差和太阳中心差对五星见伏的影响。我们曾对北宋《纪元历》推算五星定见时刻的误差进行过讨论,结果表明,木星定见时刻最大误差约为6天,土星定见时刻最大误差约为10天,金星和水星定见时刻最大误差约为15天,火星的最大误差甚至超过了28天[28]。《纪元历》作为宋代一部非常成熟的历法,在行星理论中已充分考虑行星中心差和太阳中心差,其推算五星定见时刻的误差尚且如此之大,而对于没有考虑行星中心差和太阳中心差的《兴和历》,能将误差控制在一日二日之内,几乎是不可能的事。由此可见,李业兴此处很有可能故意夸大了《兴和历》推算五星见伏的水平。不过我们也注意到,李业兴在“对信都芳驳新历”一文中谈到《兴和历》推算镇星见伏的精度时说:“镇星,自造壬子元以来,岁常不及,故加壬子七度,亦知犹不及五度,适欲并加,恐出没顿校十度、十日,将来永用,不合处多。”([16],页2697)李业兴此处指出按照《兴和历》推算镇星见伏,可能会达到十日十度的误差,这个评价相对比较客观一些,也比较可信。

致谢衷心感谢匿名审稿专家对本文提出宝贵修改意见。

猜你喜欢
历法五星算法
La preservación del tejido de seda tradicional
建德五星
从走马楼西汉简歧异干支谈汉初历法混用问题
发明新历法
数读绍兴市“五星双强”两新组织
Travellng thg World Full—time for Rree
守护那抹“五星红”
进位加法的两种算法
历史上最长的一年
一种改进的整周模糊度去相关算法