中国古代历法一向以冬至为起算点,需要尽可能准确地定出冬至点的位置,即冬至时刻太阳的位置。又,起源于战国时期的二十四节气制度也取决于太阳的周年运动。上述两事都要求解决这样一个问题:
确定任意时刻太阳在天球上的坐标。
坐标以恒星为参照背景,但太阳不可能出现在这样的背景之上(日食时偶尔有可能)。所以解决上面的问题并非易事。本文打算对中国古代解决这一问题的方法及其沿革作初步的探讨。
先秦时代如何测定太阳位置,目前尚未发现明确史料。但至迟在东汉时已使用“昏旦中星法”。南朝梁大同九年(543)虞 等人在奏议中回顾确定太阳位置的困难时有“汉世课昏明中星”等语。 编䜣、李梵等在东汉元和二年(85)指定的《四分历》中载有一张表,据二十四节气分成二十四栏,给出一年中二十四个日子的“日所在”“黄道去极”“晷景”“昼漏刻”“夜漏刻”“昏中星”“旦中星”等项内容。 我们姑名之为“日度表”,以别于后世之日躔表。值得注意的是表中“日所在”“昏中星”“旦中星”三项,说明昏、旦中星与太阳位置的密切关系(详见本文第五节)。这种表后世许多历法中都有,内容大同小异。
昏旦中星法是在昏、旦时刻测出当时上中天的恒星赤经,由此按比例推算出夜半时刻上中天的经线,则与之差半周天(按照中国古度,即差182又5/8度)的方向即太阳赤经。
实施此法当然可以用浑仪。因在给定时刻上中天的经线上未必刚好有可见星(中国古代不论其上有无可见星,都称该经线为该时刻的“中星”,这在“日度表”中非常明显),所以必须测出附近的可见星(当然尽可能选已经测定赤经的标准星)与子午线的赤经差。不过,天体中天还可用表在子午面内“参望”测出;只要有比较精确的漏壶相配合,测赤经差也不是非用浑仪不可。事实上,要测定 t 时刻的子午线赤经,只要让漏壶自 t 时刻起持续运行着,直到用“参望”确定附近某标准星中天时为止,这一段Δ t 所对应的就是 t 时刻子午线与标准星的赤经差。
这样看来,先秦时代即使还没有浑仪,仍有可能使用昏旦中星法。对此有一点值得注意:《礼记·月令》中已经给出了每月的太阳位置和昏、旦中星,如“孟春之月,日在营室(这当指特定的某一天而言),昏参中,旦尾中”,只是太阳位置比较粗略,未精确到度而已。这可视为“日度表”的先声。
昏旦中星法的精度不可能很高,有如下几个误差来源:
1.漏壶的误差。宋代漏壶高度发达,每昼夜的积累误差还大于1.5分钟,读数则只能精确到1—2分钟。 此前误差无疑更大。秦汉以后的定义,“昏”是日落后二刻半,“明”为日出前二刻半。因只需要使用二刻半略多的时间,积累误差当比一昼夜的小很多,故误差主要来自读数。设读数精度达到2分钟,则在天球上已对应30′(弧度)的误差。
2.确定日出、日落的误差。日轮弧度共30′,无论以日轮上下缘或以日轮水平中分线来和地平线比较,对有长期观测经验的专业工作者来说,误差不至于超过10′。问题是地平线本身。由于在内陆观测,极目东西,都有海拔高度,因而不可能是真正的地平线。这一因素可导致很大误差,其数值恐怕只有到当地去进行实测才能估计。此外,朝云晚霞,人目幻觉,都可能引入误差。
3.浑仪的误差。因可选择子午线附近已测定赤经的标准星,浑仪在此只需要用来测一小段赤经值,故误差主要在刻度上。明以前浑仪实物今皆不存,难以考察其刻度情况。明浑仪最小刻度相当于6′,以前的可能更大些。此外,刻度的均匀与否、刻线的粗细等因素也直接影响读数的精确。如不用浑仪而用竖表和漏壶来测赤经,则误差更大。因而估计这一项的数值也很困难。但可间接推得,详见下文。
昏旦中星法之后,又出现夜半中星法,即改在夜半时分测定子午线的赤经,则与之差半周天的方向即为太阳赤经。
此法虽较简便,消除了上节所讨论的误差2,却使误差1大为增加。因现在要求漏壶至少运行半昼夜,这样积累起来的误差,在虞 时代,估计为1分钟是绝不过分的(宋代仍有0.75分钟,见前文)。再加上读数误差,将达3分钟左右。上节所讨论的误差3不变。但此法又引入误差4,即用圭表或浑仪校正漏壶的误差。因现在要求漏壶长时间运行,这一校正变得极为重要。校正一般在正午进行。据研究,宋代圭表测定太阳正午的最大误差为40秒钟,用浑仪作子午线观测所产生的赤经误差也有5.6′,对应时间为22秒钟。 宋代如此,梁应过之。设虞 用浑仪测定日中以校正漏壶,误差4可假定为30秒钟左右。
据上节及本节的分析,即可将昏旦中星法的误差 E h 和夜半中星法的误差 E y 做比较:
仅从(1)(2)两式尚不能确定 E h 和 E y 之值,所幸在虞 奏议中留下了珍贵史料:“汉世课昏明中星,为法已浅,今候夜半中星以求日冲,金鱼得密。……臣等频夜候中星,而前后相差或至三度。”从这段记载可知:
E h > E y ,
E y =1.5°(对应于时间为6分钟)。
代入(2)式可求得:
E 3 =2.5分钟(对应于天球上的弧度为37′30″)。
注意到(1)(2)两式中的 E 2 之值相等,可知: E 2 >1.5分钟。
上面的讨论表明,至迟在公元6世纪中叶,已经使用夜半中星法,在精度上比昏旦中星法有改进。
中星法精度虽不甚高,但只要晴天皆可实施,所以虽在虞 之前一百五十余年即有更精确的方法问世,却一直未能完全取代中星法。
公元384年,后秦姜岌造《三纪甲子元历》,提出在月食时测出月亮赤经,则月之冲即日所在。 此法简洁明了,为测定太阳位置提供了一个有力手段。正如一行所说:“岌以月食冲知日度,由是躔次遂正,为后代治历者宗。”
一行晚于虞 百数十年,对于月食冲法和两种中星法的优劣都可了然。照他的意见,“躔次”是有了月食冲法才正的,这表明月食冲法的精度应该明显高于两种中星法。月食冲法根除了中星法误差中的第1、第2、第4三项,然而第3项有所增加。因为现在不是做子午线附近的经度测量(做此种测量时误差甚小),而是估计30′左右的月面中心,也会有角分级的误差。考虑到那时浑仪的制造、安装工艺,刻度、取准、定平等方面的误差都不能忽视。
还必须注意,月食冲法有一个重大局限:实施机会极少。包括半影月食在内,一年只能有2—5次月食,每次又只有半个地球可见,对某一确定地点而言,每年只能遇到极少几次,甚至一次也遇不到。考虑到这一点,如果月食冲法的误差和中星法不相上下,它就毫无意义,绝不会被一行、郭守敬(参见本文第四节)等天文学家所重视。所以,月食冲法的误差可望远小于1.5°,殆无疑问。
姜岌之后直到北宋末年,测定太阳位置的方法一直没什么革新。1106年,姚舜辅造《纪元历》,首创用观测金星来确定太阳位置。在金星成为晨星或昏星的日子里,于日出后或日没前测得金星与太阳的角距,又在日出前或日没后的恒星背景上测出金星位置,再考虑此两测间金星的移动,即可推知太阳位置。
此法的误差来源有浑仪、漏壶、行星运动表等方面,精度显然比月食冲法低。其优点则在实施机会较月食冲法为多。
此法要以对行星视运动掌握得较为精确为前提,所以直到12世纪初方才出现。这种以某个天体(当然不必限于金星)为中介使恒星背景与太阳联系起来的思想,古希腊人已有之。希伯斯(Hippuchus)曾以月亮为中介做过这种测量。15世纪末,贝纳德·瓦尔脱(Bernard Walther)开始用金星作中介。 [1] 不过,他们的目的却与姚舜辅相反,是借助太阳运动表和中介天体来求恒星赤经。
郭守敬的观测活动对考察中介法很有价值。1277年4月发生月食,他用月食冲法测定太阳位置,推得冬至时刻太阳赤经为箕宿十度(中国古度,周天为365又1/4度,下同)。然后持续三年用月亮、木星及金星等中介天体测求太阳位置,共134次观测,推得冬至时刻太阳位置赤经“皆躔箕宿,适与月食冲法允合” 。这段史料表明:
1.将中介天体从金星推广到月亮和其他行星之后,观测机会颇多。
2.中介法的精度较月食冲法为低。后者得出“箕宿十度”,而前者虽有百数十次观测,仅得“皆躔箕宿”。当时箕宿所跨度数,据郭守敬所测为十度四十分(中国古度) ,故可认为,当时中介法所得结果弥散在月食冲法所得位置附近,一侧可达40′。亦即中介法的最大可能误差约比月食冲法大24′。姚舜辅时代可能更大些。
3.中介法未能取代月食冲法。郭守敬是将月食冲法所得结果视作标准的。
上述四种方法,都只是在太阳运动中进行“抽查”,欲知任意时刻的太阳位置,必须推算。
古人最初将日运动视作均匀的:每年在恒星背景上东行365又1/4中国古度,每昼夜运行一度。这样,只要测定某一时刻的太阳位置,即可推知任意时刻的位置。历法中通常先推出冬至时刻的太阳位置,然后依次为起算点,其他时刻的太阳位置只要按比例推求即得。自《三统历》以后,各历所载“推日度术”大同小异,都不出上述思路。祖冲之《大明历》(463)引入岁差计算,冬至点成为时间的函数,但从冬至点出发推算太阳位置,思路仍无改变。前述在后汉《四分历》中开始出现的“日度表”,就是太阳均匀运动概念的产物。制作“日度表”看来是为了工作方便,因为不用此表也不难推算出太阳位置。
“日度表”给出一年中24个日子的太阳赤经,这24个值很容易通过一年的实测获得。表中“昏中星”“旦中星”两项下经度值的中分线,正是夜半时刻当地子午线的赤经值,与之差半周天的方向,正是“日所在”栏中给出的太阳赤经。虽然只测昏中星(或旦中星)也可推算出夜半的太阳位置,但要加上从昏(或旦)到夜半太阳已经东行约四分之一度这一改正,而用求昏、旦中星中分线的方法即已自动消除了这一误差。
很可能,“日度表”大多是推算出来的,并非出自实测。因为既然太阳周年视运动是均匀的,测一次即可推得其余,又何必每个值都去实测呢?直到公元6世纪,中国天文学家才知道事情远没有这么简单。
公元526—528年,张子信开始在一个海岛上进行天文观测 ,持续三十年左右(比第谷在汶岛的观测时间还长)。期间他发现太阳周年视运动的不均匀性。牵一发而动全身,他的发现使传统历法中许多方面都需要重新考虑,于是有隋唐历法改革高潮出现。“后张胄玄、刘孝孙、刘焯等,依此差度,为定入交食分及五星定见定行,与天密合,皆古人所未得也。”
张子信究竟用什么方法做出了上述发现,可惜史料极少,只提到他用了浑仪。 当时还没有中介法,他只能使用中星法和月食冲法。不过,要发现太阳周年视运动的变化,靠一年一两次的月食机会是不行的,他必定主要依靠中星法。不难设想,他为了便于长期观测,也事先算制了一张“日度表”。如果他坚持每天(或几天一次)用中星法测定太阳位置,并将所得值与“日度表”对照,那么,虽然中星法有1.5°左右的误差,但只要注意经过适当长的一段日子,比如每一节气的积累值,就不难发现“日行在春分后则迟,秋分后则速” 。
还必须注意,由于张子信是在海岛上观测,有理想的地平线,从而可使昏旦中星法的误差2明显减小,两种中星法的误差可能不相上下。所以我们可以推断的是:
张子信借助浑仪和漏壶,用中星法对太阳位置致长期观测,发现了太阳周年视运动的不均匀性。
事实上,这个发现几百年前就已完全有条件致出。很可能之前的天文学家毫不怀疑太阳运动的均匀性,根本没有想到对算制的“日度表”进行实测检验。本来,对日运动掌握得不精确,必然会影响交食预报的准确性,而古人也早就知道将交食预报作为检验历法的重要手段之一,但因交食预报还牵涉月运动、回归年与朔望月的取值、冬至时刻和冬至点的确定等许多因素,天文学家们对这些问题注意得更多,以至未曾将怀疑的目光投向太阳运动。
公元604年,刘焯撰《皇极历》,首创“日躔表”和“等间距二次内插法”,用来处理太阳周年视运动的不均匀性。“日躔表”和“日度表”的继承关系是显然的:也依二十四节气分成二十四栏。刘焯在每栏下给出了“躔衰”“衰总”“陟降率”“迟速数”四项 ,依次为每经一节气太阳实行度与平行度之差及其积累值,和因日运动不均匀而对平朔望的改正值及其积累值(乘以某些常数因子)。历代“日躔表”基本上都依此结构,只是各项名称常有不同而已。自《崇天历》起又加入太阳每经一节气的平行度积累值一项 ,这一项实即“日度表”的“日所在”项。
如前所述,张子信发现的关键在勤测。既如此,他的发现很快就会普及。而由于太阳周年运动是不均匀的,“日躔表”就不能闭门造车地算制出来,必须通过实测获得24个“躔衰”值。所用方法,显然离不开中星法。后世“日躔表”的改进,主要在“躔衰”值如何能更精确地描述实际情况。
“日躔表”可以说是给出了一个函数在24个点上的值,其余点上之值则用近似函数表示。这就要借助于内插法。从《皇极历》开始,推算任意时刻的太阳位置都是依靠“日躔表”(用“躔衰”“衰总”两项即可)和内插法。 尽管后代的表和内插法有所改进,但整个方法却不再变,历一千余年之久。直到明末传入西方天文学,才改为几何方法。
原载《中国科学院上海天文台年刊》第7期(1985)
[1] J. L. E. Dreyer, Tycho Brahe: A Picture of Scientific Life and Work in the Sixteenth Century , New York: Dover Publications, 1963.