《大衍历议》今译(下)
(八)日躔盈缩略例
北齐时代的张子信积累了自己多年的观测资料,发现太阳运行并不是匀速的,而是存在着“入气差”,即太阳真位置与平位置之间的差异。但是,如何通过损益加减来预报出太阳的真位置,他却没有得出正确的计算方法。到了刘焯制定《皇极历》,才提出了“盈缩躔衰术”,并将周天按四个象限记出太阳运行“升降”的表示法。《麟德历》沿袭了刘焯的算法,改名叫做“躔差”。历算家公认太阳运行在赤道以北为“阴”,在赤道以南为“阳”。所以它离开赤道的度数(赤纬),都随着“阴阳往来”而缓慢变化。再说太阳运行速度,冬至前后它运行最快,然后就慢慢减速。到春分之日速度达到平均值。过了春分,速度更缓。在夏至之日,运行最慢,然后又逐渐加速。到秋分之日,速度再次达到平均值。然后又逐渐加速,直到冬至。又开始下一个周期。总之,太阳运行最快的时候是冬天,运行最慢的时候是夏天,运行均匀的时候正是春秋两季“阴阳”二气之交。这都是自然的运数。
刘焯的《皇极历》认为春分前一天太阳运行最快,后一天最慢;秋分前一天最慢,后一天最快。快慢的程度与冬夏二至相同。中间的一天太阳运行均匀。他的这种认识是完全错误的。应当从实测二十四节气的日影长短入手,考察太阳运行快慢的程度,得出各个节气的“小余”(就是以“日”为单位,单位以下的分数或小数),这样才能使预报的交节时刻更加精密。
(九)九道议
按:所谓“月行九道”,乃是《洪范传》中的玄虚之词。元代郭守敬废除了“九道”之说。《授时历议》的“白道交周”一节中指出,白道就是月行的轨道。古人随方立名,分它轨道为八,合黄道共得九道。实际只是一个,就是白道。只因它随着黄白交点的移动而变动不常,所以勉强用方位、色彩来区别它。由于以上理由,这里略去不译。
(十)晷漏中星略例
太阳运行有赤道南北之别,导致昼夜轨漏时刻长短不一。然而二十四气的晷影变化快慢不同,乃是用勾股定理实测得出的结果。例如,正午晷影在测器的圆圈里面,就是晷影较短的时候,这时前后几天正午晷影的长短变化较慢;若正午晷影较长,和勾股数相齐,那么前后几天正午晷影的长短变化就快。而且正午晷影长度随着各地辰极的高低(即北天极的高度,也就是各地的纬度)而不同。黄道漏刻,即各地昼夜漏刻也是随地而异。这些都是数理方面比较浅近的知识,但近代人士很少有知晓它的。如今开元新历推算黄道去极度(按:即太阳赤纬的余角),与晷影、漏刻、昏距、中星四个项目联系起来考虑,将基本数据列入《步轨漏术》的同一表格中,并提供相应的算法,使预推结果符合各地的实况。
(十一)日食议
《诗经·小雅·十月之交》开头几句是“十月之交,朔日辛卯,日有食之。”梁代的虞kuo用当时的历法去推算它,认为那次日食发生在周幽王六年(相当于公元前776年9月6日)。如今用开元历推算,得出其交分为43429/3040,即14.2858度,这个度数正好在“食限”以内,交食时刻是在白天。日月合朔而发生交食,这是符合常规的。(以下略去若干迷信言论)
一年四季之中,天道没有不同。至于日月相对运行,到达交点而发生交食,乃是天道方面的常理。象刘歆、贾逵等人,都是近古时代的大儒,他们难道还不知道日月轨道相交,若逢朔望就有可能发生交食的道理?就是因为太阳象征着人主,日食对于人主而言就是异常的事变。况且日食难以准确预报,搞得不好要冒风险,所以有忌讳而不去随便讨论。
自从曹魏黄初(220-226)以来,研究人员才开始校验日食预报的准确度。到张子信那里就更为详尽。刘焯、张胄玄之流自负精通算术,就认为日食、月食都可以通过精密的计算实现准确预报。这些人都是专心于历纪而不考虑其他。
如今拿《戊寅历》、《麟德历》逆推《春秋》中的日食记录,证明多数都是朔日在食限以内的,发生日食是必然的。但是也有多次朔日本应发生日食而并没有记录的。可见,日食一定发生在食限以内,但朔日进入食限不一定发生日食(按:这一说法是错的。朔日进入食限必然发生日食,问题是日食带以外的地方看不到)。例如开元十二年七月戊午朔(公元724年7月25日),按历法应当发生日食,届时太阳将被遮掉一半多。但实际情况是,从南方的交趾郡(今越南北部)到北方的朔方郡(今内蒙杭锦西北),各地都作好了观测准备,结果却没有看到日食。十三年十二月庚戌朔(公元726年1月8日)按历法这天又有日食,太阳将被遮掉大部分。那天正逢我大唐君臣东封泰山完毕,车驾回还时驻扎在大梁、宋州一带。皇帝为了这次日食撤去御膳,不奏乐,不张盖,身穿素服反躬自省,结果还是没有看到日食。参加封禅仪式的文武群臣与八荒君长都穿着降一级的礼服在旁恭候,人数众多,难以计数。于是众人都向皇帝上寿称贺,肃然起敬。从心底里佩服皇帝的英明。这两次日食,应当发生而没有发生。即使我们的历法不精,也不至于错误到这个程度。看来确实是皇帝的德行感动了上帝,不等到日落就给臣民们显示出来了。(按:用现代天文方法逆推,上文所说的两次日食确实发生了,只是中国看不到。古人因水平所限,还不能准确预报日食带经过的地点,因此才出现当食而不食的错误。一行以皇帝的德行来辩解,乃是君主专制时代的惯例。以下略去若干迷信之言。)
旧历对于交食深浅的研究,自从张子信发现“入气差”之后才有了重大的改进。张子信首先发现,合朔时月亮“若在日道外(黄道以南),虽交不亏”的现象(拿公元二十世纪的语言来说,若日月合朔时月亮在黄道以南,那么月亮的影子就投射在南半球。位于北半球的中国是看不到日食的)。这是他经过多年实测得出的结论。但为什么会如此,当时的人们还不清楚其中的道理。如今我们凭仪器实测,同时参照《九执历》中日月交食的推算原理,将有关项目说明如下:(甲)实测日月的视直径,然后以月亮视半径减入交初限一度半,余为暗虚(地影)半径。(乙)将月与暗虚半径之和跟月距黄道每度差数(黄纬)相较,判定暗虚遮掩月面的长短,以验食分大小。(丙)以月食时月的实行度数乘月视直径,然后求得食延时间。月食既(全食)时大概去交点3度以内进入暗虚,这就是确定食既的限角。(丁)日食方面则先取日月视半径以减春分点入交初限相去度数,余为斜射所差,更由该差数以定该食既限,其限大都可进退2度之间(限角一般变化于2度以内)。在此限度内,将日月两心距与二者视半径之和相比较,就可推知食分之大小。若朔月视直径跨越食既限以南,则出现所谓“食差”。这时虽在黄道以北发生日食,而日面被遮的情形仍类同黄道以南之食。这是斜望所引起的现象。大凡在食限角之外的,都是朔月在黄道以南而发生日食。在这种情况下推算食分,原理仍如上述。具体计算过程将在《开元历经》的“步交会”一章中详细交代。我们曾用新的算法校验古今日食43例,月食99例,其准确度居古今所有历法之首。(以下略去若干迷信之言)
新历除了确定新的“日食限”以外,又确立了“日食或限术”。凭此术推算,本在可食可不食之间的,都可用历术常数去概括它。还应注意的是,日月交会时,由于二者的视半径差不多大小,而月亮居于太阳之下,可以想见必然会发生遮掩。若是中国京师地方看到食既,那么南方太阳直射的某地就只能看到太阳被遮掉一半。若是在月影投射以外的地方观察,当然就是“虽交而不食”了。至于在京师以外的“九服”之地用仪器测算确定食分,必然是食分和日食时刻随地而变。所以,宇宙虽广,但可以用同一法则去认识它。
(十二)五星议
岁星(木星)从商周时代到春秋末期,大概是120多年“超辰”一次,战国以后它的运行逐渐加快。到汉代还有微小的反常变动。直到汉哀帝、平帝年间(公元前6年—公元5年),它快速运行的趋势才有所减弱。然后是每84年“超辰”一次。从此就成为常规。这是岁星与其他四星不同的地方。(一行把古书中的若干错误记录当作事实而得出上述错误结论。以下略去若干迷信言论不译)
开元十二年正月庚午(初九,公元724年2月8日),岁星处于进贤星东北一尺三寸的位置。相当于进入轸宿12度。按《麟德历》推算是入轸15度。从这个时候向古代逆推,到汉成帝河平二年(公元前27年)的十月下旬,岁星应当在轩辕南端大星西北一尺左右的位置,而《麟德历》算出的结果是进入张宿2度,正好与轩辕大星同度。上下相距750余年,而我们考察岁星运行的度数,还是没有太大的出入。这证明从汉哀帝、平帝以后,岁星运行平稳,不再有每年渐差的情况。
再逆推120年,到汉景帝中元三年(公元前147年)正月,得知岁星位于井宿的钺星附近,《麟德历》算得岁星进入参宿5度。再逆推60年,得知汉元年十月(汉元年即公元前206年,当时用颛顼历,以十月为岁首,因此这年的岁首十月初一相当于上年,即公元前207年11月14日)聚会于东井,这是就岁星位置而言的。按秦历,岁在乙未;按夏历,应当是甲午(按:公元前207年是甲午,第二年是乙未,夏历甲午年的十月,按秦历是乙未年的岁首)。照《麟德历》推算,这年白露以后8天,岁星停留在觜宿1度,明年立夏时岁星运行到参宿,淹没在太阳的光辉中不能看到。这是由于当时岁星运行的反常趋势还没有减弱,而《麟德历》却按正常的法则推算所造成的差异。
再逆推271年,到春秋鲁哀公十七年(公元前478年),岁星应当位于鹑火之次。但按《麟德历》推算,岁星先是出现在鬼宿2度,立冬后9天,停留于星宿3度,次年惊蛰后10天退到柳宿5度。这时还达不到鹑火的位置。
再上推178年,就是鲁僖公五年(公元前655年),岁星应当位于大火之次。但按《麟德历》推算,岁星先是出现在张宿8度,明年将伏藏于翼宿16度(淹没在太阳的光辉中不能看到),这等于把它的位置固定在鹑火,与大火差了三个辰次。由此看来,在哀公以后的年代里,岁星的反常运行逐渐迟缓,它的实际位置跟推算结果差别较小。而在哀公以前岁星运行更缓,若按旧历推算,仍旧采用后世脱离实际的数据,不知道变通,必然使所得结果跟实况相差更大。比如武王革命那年,岁星位于大火之次,而《麟德历》却算到壁宿3度。照这样再往上逆推到唐虞之世,恐怕误差就会大到一个周天了。
《太初历》、《三统历》都认定岁星运行十二周天(144年)就“超辰”一次。用这个数据上推商周时代的岁星运行情况,大体都与记录相合。但是用它来检验当今开元年间的实况记录,结果是误差90余度,这是由于不知道岁星“后率”(84年超辰一次)的缘故。《皇极历》、《麟德历》认为岁星七个周天(84年)超辰一次,用这个数据逆推汉魏年间的岁星动态,还没有多大误差;若是逆推春秋时期的岁星记录,也会误差90余度,这是由于不知道岁星“前率”(144年超辰一次)的缘故。《天保》、《天和》二历取前率和后率的折中值,因而这两部历法推算的岁星动态比较理想,向上符合春秋记录,向下密合开元记注。但是用二者的相关数据推算汉明帝永平年间(公元58-75年)以及魏文帝黄初年间(220-226)的岁星动态时,也会出现显著的误差,跟实况差别大的达到30余度。这是由于不知道战国以后岁星动态发生变化的缘故。
从汉平帝元始四年(公元4年)到当今开元十二年(公元724年),一共经过了十二个甲子(12×60=720),向古代推到春秋鲁隐公六年(公元前717年)也是十二个甲子(4+716=720)。而上述两种历法取的是前率和后率的折中值,但其推算结果,有的比古代记录差三个辰次,有的比现今记录差三个辰次,也有符合古今记录的,这证明所取的折中值确实有问题,所以,想用统一的数据推考古今记录,并要求所得结果符合实况,显然是不可能的。
根据历史上的岁星运行情况,《开元大衍历》给出的岁星“前率”是398又2219.93/3040日,即398.73日(今天称之为“会合周期”)。自从鲁哀公二十年丙寅(475.B.C.)以后,每过一个会合周期,分数部分的分子加1,过439个会合周期,下一个周期的分数部分的分子加0.13,相当于398又2659.06/3040日,即398.87日。也就是说,岁星某次合日后过398.87日再次与太阳相合。这个周期叫“岁星后率”。自此以后,岁星的会合周期成为常数,不再改变。这时已经进入元始六年(公元6年)了。
成汤讨伐夏桀的那年是壬戌岁。按《开元历》推算,那时岁星在角宿范围内与太阳相合,再移到氐宿十度停留,然后逆行。第二年,成汤开始建国,并把这年作为元年。这时岁星顺行到房宿,再与太阳相合。商朝人把这个天象作为他们承受天命的象征。
过了601年,到了商纣在位的第六年,周文王在毕原宗庙第一次举行夏祭。当周朝举行第十三次夏祭的时候,正值己卯年,岁星位于鹑火之次,武王继承王位。武王灭掉商朝的那年,岁星运行到鬼宿,然后又逆行,停留在东井。到第二年,周朝才完成革命。这年岁星顺行,在柳宿与太阳会合,然后再顺行,停留在张宿。考察上述星宿的分野,正是在周召二公分陕而治的交界处以及“三监”(邶、鄘、卫)所在的地带。
周成王三年是丙午岁,岁星位于大火之次。这年唐叔被封于晋地。所以《国语》一书中说:“晋之始封,岁在大火。”《春秋左氏传》记载,鲁僖公五年(公元前655年)岁星位于大火,晋国的公子重耳从蒲地逃往狄国。十六年(644.B.C.),岁星位于寿星之次,重耳向齐国逃亡路过卫国。他向野外种地的人要水喝,人家给了他一块土。重耳正要发怒,而子犯却借天象开导他:“这土是上天赐给您的,天象已经显示出来了,将来岁星移到鹑火的时候,您必然拥有这块土地。岁星再次移到寿星的时候,您一定会赢得诸侯的拥戴。”僖公二十三年(637.B.C.),岁星到达胃宿和昴宿(大梁),秦穆公帮助重耳回到晋国做了国君,他就是当时五霸之一的晋文公(以下略去一段迷信之言)。二十七年(633.B.C.),岁星位于鹑火。晋文公出兵讨伐卫国,攻占了五鹿。次年又在城濮一战击败楚国,开始称霸于诸侯。这年岁星刚好移到寿星之次,与《开元历》推算的结果相符。
襄公十八年(555.B.C.),岁星位于诹訾的方口内(现今飞马座大正方形)。按《开元历》推算,这年大寒以后三天,岁星在危宿三度与太阳相合,然后顺行到室宿八度。第二年(554.B.C.)四月十三日丁未(西历3月1日),郑国的公孙虿死了。将要埋葬的时候,公孙子羽和裨灶去参加葬礼。他们经过伯有氏的住所,看到他的门上长满了杂草。于是子羽就说:“门上长满了野草啦。”当时岁星位于降娄,它上中天的时候早已天亮。裨灶却指手划脚,借着岁星说了一番伯有氏将要衰败的预言(原话略去不译)。按《开元历》推算,这年岁星位于奎宿,也就是进入降娄之次。但《麟德历》算出的结果却是岁星处于危宿,而危宿对应的是玄枵之次。
十年以后,到鲁襄公二十八年(公元前545年),这年初春没有结冰。大夫梓慎说:“按正常规律,今年岁星本应在星纪的位置,但它运行过度,提前到达玄枵之次。”如今我们拿《开元历》推算,得知这年岁星在南斗17度,逆行以后停留在西边的建星附近。然后又顺行,在牛宿的起点与太阳相合。牛宿正属于星纪之次。但当时岁星移动很快,不久就到达东边虚宿的位置。所以梓慎说它“淫于玄枵。”(此处略去占星家的迷信言论)
鲁昭公八年(公元前534年)十一月,楚国灭掉了陈国。当时岁星在析木之津(银河渡口)。按《开元历》推算,岁星位于箕宿8度,正是析木之津。十年春,岁星移到女宿的起点,也就是进入玄枵之次。《左传》所说的“正月,有星出于婺女。”指的就是这次天象。这年岁星与太阳在危宿相合,下一年才移到室宿,又回到豕韦(诹訾)之次。
昭公十三年(公元前529年),岁星移到昴、毕二宿(大梁之次)。这年楚国发生政变,杀了楚灵王。原先被楚国灭掉的陈蔡两国也复了国。于是占星家裨灶就扬言说:“我早就预言过岁星位于大梁的时候陈国就会复国。”后来在鲁哀公十七年(公元前478年),楚国再次灭掉了陈国。这年岁星在张宿六度与太阳相合。
昭公三十一年(公元前511年)夏天,吴国攻打越国。这是吴国首次对越国用兵。当时岁星在南斗3度与太阳相合。从前鲁僖公六年(公元前654年)是卯年,岁星在析木;昭公三十二年(公元前510年)也是卯年,而岁星却在星纪,比析木超了一个辰次,前后相距144年。所以《三统历》据此认为岁星144年超辰一次。但仔细考察起来,应当是120年超辰一次。近代各家历法,想用“84年超辰一次”这个数据来概括从古至今的岁星运行规律,这是他们被近700年来的相关记录所迷惑的结果。吴国首次攻打越国以后又过了三十八年,越国反而灭掉了吴国。吴国灭亡时,岁星已经三次经过斗牛之间,比十二年周期的三倍还多了两年。(以下略去一段迷信之言。岁星84年超辰一次本来是正确的,而一行把先秦时代的某些错误记载当作事实而得出120年超辰一次的错误结论,这是他的局限所在)
汉武帝元鼎年间(116-111.B.C.),太白星(金星)轨迹反常,到达黄道以南30余度的“天苑”之内(相当于今天的波江座)。那几年汉武帝出巡北方,登上单于台,随从有十八万骑兵耀武扬威。后来虽然消灭了大宛,但是也损失了大部分兵马。
晋武帝咸宁四年(公元278年)九月,太白星应当出现而没有出现。占星家说:“这就叫星不守舍。是破军亡国的征兆。”当时朝廷正要出兵征伐江南的吴国。第二年(279)三月,晋朝正式出兵,太白星这才出现于西方。结果吴国真的灭亡了。(历史事实是,咸宁五年,即279年冬十一月,西晋出兵伐吴,六年春,诸军并进,三月,晋兵入石头,吴主孙皓投降。)晋惠帝永兴二年四月十五日丙子(公元305年5月24日),太白反常运行,在黄道以南40余度侵犯天狼星。永嘉三年正月庚子日(按:此年正月辛丑朔,无庚子。庚子是前一天,即上年十二月三十日,公元309年1月27日),荧惑(火星)侵犯紫薇垣。这都是天象的异常变化,是前所未有的异象。后来晋怀帝、愍帝被匈奴人活捉,天下大乱。
北魏神瑞二年(415)十二月,荧惑本来在瓠瓜诸星内,一天晚上忽然不见了。主修国史的崔浩以当时日期推算,得出结论说:“从庚午黄昏到辛未黎明(公元416年2月5日至6日),天上有阴云,荧惑消失不见,一定是在这两天。庚午、未都对应着秦国,辛对应着西夷。如今羌人姚兴占据着咸阳,我断定荧惑是进入秦国了。”后来荧惑果然出现在东井,在那里顺行,停留,然后逆行。当时秦国的关中大旱千里,寸草不生,甚至长安昆明湖的水都干了。第二年姚兴病死,他的两个儿子为了争夺王位而互相厮杀。第三年(417)秦国就被刘裕消灭了。
南齐永明九年八月十四日(公元491年10月2日),按历法,火星应当退到昴宿3度,在这以前先在毕宿停留。但事实是二十一日才开始退行,向北移动,临近立冬时更加明亮。北魏永平四年八月二十日癸未(公元511年9月27日),荧惑位于氐宿。黄昏时分淹没在日光中看不见。这比历法预报提前了五十多天。即使历法粗略,也不应有这么大的误差。
隋朝大业九年五月初四日丁丑(公元613年5月28日),荧惑逆行进入南斗,呈血红色,大如三斗之器,光芒闪耀达七八尺,在南斗里面呈“勾巳”状运行。这也是罕有的异常天象。后来发生了杨玄感造反事件,天下又一次陷入大乱……(以下全是关于“五星失行”的迷信言论,故此略去不译)
这部《开元历》对五星各立“变差”,用来推算各星运行在二十八宿的动态。拿本历中的“步五星术”去检验历代史官所记的五星动态记录,包括岁星27例,荧惑28例,镇星21例,太白22例,辰星24例,并跟其他各历互相比较,证明了《开元历》的准确度是第一。(原文今译到此结束)
2020年7月11日 17:30:14