天文与历法

直立的竿子与日历

在乎地上垂直插好一根竿子,请你猜猜看它是用来做什么的?当然,可以用它拴绳子晒衣服,也可以挂黑板写通知。但是,我们却有一个非常特别的用处,就是用它来测影子!

测影子是怎么一回事,一说就明白。在我国大部分地区,每当晴天中午的时候,各种物体都有一个向正北投下的阴影。当然这对于竿子也不例外,它也有一条清晰的影子留在地面上。如果这根竿子长年不动,你又经常在中午时候去看影子,那么你一定会发现,竿影的长度一年四季总在变化:夏天很短;冬天很长。如果观察得更仔细些,你还会发现,夏天总有一天竿影最短,而冬天总有一天竿影最长。这两天,我们祖先早给它们起了一个名字,叫做“日至”。关于日至的记载在甲骨文中就已经有了。到了春秋时期,用这种测影方法决定“日至”已经很普遍了。那时的一本名叫《周礼》的古书中说:“以土圭之法,测土深,正日景,以求地中。日南,则景短多暑;日北,则景长多寒。”这里所说的“土圭”,就是用玉刻成的一把尺子,把它放在地平面上可以量出竿影的长短。这里的“景”就是现在的“影”字。这段文字的大意是:用土圭来量测中午时的日影,可以定出大地的中心。暑天日影短而日在南,寒天日影长而日在北。这样古时又把日至分为两个:一个叫日南至或夏至;一个叫日北至或冬至。但是,夏至和冬至究竟发生在哪一天呢?另一本反映春秋时代的古书《周髀算经》上说得很明白:“周髀长八尺,夏至日晷一尺六寸,……冬至日晷丈三尺五寸。”这里的“周髀”,就是前面说的竿子或柱子;“晷”就是日影。这个柱子立在河南省登封县境内,至今仍有它的遗迹。这段话的意思是说,立一个8尺长的竿子,如果有一天中午的竿影长1尺6寸,则这一天就是夏至;若影长是1丈3尺5寸,则这一天就是冬至。就是用了这个简单而科学的方法,我们的祖先很早就知道了“年”的长度——从夏至到夏至或从冬至到冬至。

在记载我国上古时代历史的《尚书》中有一句话:“期三百有六旬有六日,以闰月定四时成岁”。这说明在上古时一年的长度就定为366天了。后来到《周髀算经》时,又有了新的认识。书中一段记载说:“于是三百六十五日,南极影长,明日反短,以岁终日影反长,故知之,三百六十五者三,三百六十六日者一。故知一岁三百六十五日四分之一,岁终也。”这是说,用周髀测影法决定1年的长度,在连续4年的观测中,有3年的年长为365天,而有1年的年长为366天。因此平均起来,年的长度为365又四分之一天。这个数字在历法中有着极其重要的地位,我们在以后的介绍中要经常提到它。

“年”的概念的建立使人类在计时方面跃进了决定性的一步,在“月”的基础上又出现了更长的计时单位“年”。至此,制历的基本要素——年、月、日——都已齐备,各种历法也就是在这种条件下发展起来,日臻精密。

随着时代的进步,原始的土圭被代之以更精美更科学的天文测量仪器——“圭表”。这种仪器由两部分组成:一个垂直的铜柱或石柱,叫做“表”;另一个平放的铜尺或石尺,叫做“圭”。把圭尺置于南北方向上,圭尺南端装上垂直的表,就可以用它借测影法定出一年四季和节气的发生时刻。秦汉以来,我国历代都制作过这种圭表。至今保存下来的尚有两架:一架是明代正统二年(公元1437年)制造的,现存放在南京紫金山天文台;另一架是在江苏出土的东汉时期的小铜圭表,表和圭以轴相连,用时把表竖起,不用时放平,全长只有34.5厘米,携带很方便,是一件很珍贵的古代文物。

假想的天球

从现代天文学的角度来看,年、月、日的本质是什么?对古人已观测到的天象又如何解释?

在晴朗的夜晚,当我们仰望那布满星辰的夜空时,总会感到似乎有一个巨大的半球罩在我们的头上。而当你较仔细地观察星空的变化时,你会发现整个星空像绕着一根无形的轴在无声地转动着。长期的观察和实践使人们产生,一个概念,即以观测者为球心,以非常长的半径做个球,那么观测者所看到的星空变化等情况就都能得到较好的解释。这个假想的球就叫做天球。恒星都固定在天球的球面上,随天球从东向西转,这就说明了星辰的东升西落。但是也有的星看起来整夜都不转动,如北极星,这是因为它正好位于天球的北极点上,天球的旋转轴正好穿过它。这样有了天球的概念,就方便多了。其实现在我们知道,这个假想的天球的转动不过是地球自转的反映罢了。地球每天绕着地轴由西向东转动。相对来说,如果观测者以为自己不动,那就必然看到地球周围的星辰相反地由东向西转动,因而也就产生了天球由东向西转动的概念。根据这个道理,我们容易明白,天球的转动轴实质上就是地球自转轴的延伸,而天球的赤道也就是地球赤道面和天球面相交的一个大圆。

天球与真太阳日

现在,我们看看对于某个地点的观测者天球周日旋转的情况。把通过某地点的垂线向上下两方无延长,它与天两点。其中有一点叫做天顶点,另一点叫做天底点。把通过某个地点的地平面无限延长,与天球相交成一个大圆,这个大圆就叫做真地平。通过的大圆又和真地平相交。这个大圆叫做天子午圈;这个点叫做南点,另一个点叫做北点。天赤道圈和真地平也交于两点。一点叫做东点,另一点叫做西点。现在我们可以明白,如果点的观测者认为自己不动,那就意味着天顶点,真地平和东、西、南、北四点都不动。这时,讨论天球的旋转,就意味着天球绕轴由东向西相对于这些不动点、圈做旋转。假设有一个星正好位于天赤道上,那么由于天球周日旋转,它将在东点升出地面,然后逐渐升高。当它通过天子午圈时高度最大,这在天文学上叫做上中天。上中天后,它逐渐西落,直到西点处没人地面。如果另一星不在赤道上,则它周日运动的路径是小圆。虽然也是东升西落,但它的出升不在东点,而在另一点;降落也不在西点而在另一点。

和日历有关的是太阳的周日运动。太阳上中天时就是正午。太阳连续两次上中天的时间间隔,在天文学上叫做真太阳日,这就是我们通常说的一天。在我国古代,又把一天分成100刻,以便于更精确地计量时间。那时有一种测量真太阳时的仪器,叫做日晷,是用太阳影子的方位来决定时刻的。这种仪器现在在北京中国历史博物馆内还珍藏着一个。据初步考证,那是西汉初年的遗物,距今已经有20000多年了。

太阳的周年视运动和回归年

仔细观察太阳的视运动情况,古代劳动人民早就发现每天正午太阳在地面上的高度在变化,通过圭表测影能很精确地把这种变化测量出莱。这在前面已经介绍过了。另外一个引起人们注意的现象是:“如果每天晚上同一时刻去观察南方子午圈附近的星宿,过了一两个月以后会容易发现,原在南方的星宿已经移到西方天空,而在东方的星宿也移到南方了。”随着星空的变化,季节也在明显地变化着,这说明这两者间有着密切的联系,有着共同的起因。

把这两种现象联系起来分析,人们发现太阳除了有每天东升西落的周日视运动外,它还有一种在恒星背景上的运动。经过一定时间,它在众星中绕行一圈又回到原来起始的位置。反映在天球上,太阳的这种运动是在天球上画了一个大圆,这个大圆叫做黄道。黄道和赤道相交两点。一点叫做春分点,另一点叫做秋分点。这两点间的中点叫做夏至点,叫做冬至点。太阳在黄道上的运动就叫做太阳的周年视运动。如果以夏至点为起算点,本阳绕黄道一圈又回到了点的时间间隔就称为回归年。据现代天文测量,一个回归年等于365.2422日。

太阳在黄道上运动,每年在公历3月21日左右通过冬至点由天球南半球到北半球,此时地球上昼夜相等,即春分。在6月22日左右,太阳到达夏至点,此时地球上北半球中午的太阳高度最大,白昼最长,也就是圭表日影最短的日子。在9月23日左右,太阳通过夏至点,由天球北半球进入南半球,昼夜再次相等,即秋分。在12月22日左右,太阳到达冬至点。

其实太阳的周年视运动不过是地球周年运动的反映而已。地球围绕太阳作公转运动,一个回归年绕行一圈。地球轨道面向外扩展和天球相交的大圆就是黄道。由天文学知道,黄道面和赤道面的夹角是23度27分。此时地球北半球中午的太阳高度最低,白昼最短,也就是圭表日影最长的日子。这样,随着太阳在黄道上的位置不同,地球上的季节也由春到夏,以至秋冬。如此寒来暑往,循环不已。

地球上观测者所看到的太阳在黄道上的运动,正是地球在相反的方向上作运动的结果。例如,地球在轨道上某一点时,相对应地太阳的视位置在黄道上的某一点;而当地球运动到另一点时,太阳的视位置移动到另一点。

地球并不是一个正圆球体,而是一个在赤道部分稍稍有些鼓起的扁球体。因此,太阳、月亮等对地球引力作用的结果,会使地球自转轴(因而赤道面)每年都有微小的变动,这种现象叫做岁差。由于岁差,春分点的位置每年也有微小的移动,所以岁差对计算太阳在黄道上的运动电有微小的影响。我国晋代天文家虞喜首先发现了这个现象,为提高我国历法的精度做出了可贵的贡献。

我国古代的天文学家,是把冬至作为一年的起算点。可见只有准确地测定出冬至的时刻,才可能准确地预报季节的更替和循环。因此测定准确的冬至时刻,是我国古代制历家的重大课题。现有的史料表明,我国最早的冬至时刻的测定记录,是在春秋时代的鲁僖公五年(公元前655年)和昭公二十年(公元前522年)。

此处读者可能会说,连续两次测定冬至时刻,不就得出回归年长了吗?我们说,说来容易做来难。这是因为,古人用圭表可以直接测得冬至日,因为冬至这一天正午表,影的长度,比一年中任伺一天正午表影的长度都要长(我国古代称这一天为日南至)。但是每次太阳到达冬至的时刻并不一定正好是在正午。古人为了得到比较准确的冬至时刻,是采取连续测量若干年冬至日正午的影长,一旦确定了两个冬至时刻之后,再用这两个冬至时刻之间的年数去除它的,总日数,就得到了一个回归年的长度(日数)。

春秋末年(公元前5世纪),我国开始使用的《四分历》,其回归年长(我国古代称为岁实)定为36514日,即365.25日。也许有人会说,不是应该先测量朔望月的长度,然后将12个朔望月加起来,就是一个回归年的长度吗?我们说,否。因为那又回到纯阴历上去了。阴阳合历的回归年和朔望月长度的测定顺序恰恰相反,它是先测定回归年长,而后再去推求朔望月的长度。具体地说,朔望月长度的推算是这样的,我国最迟在春秋时代就发现了19年7闰的规律。就是说,在19年中要设置7个闰月,使得历法和季节变化相协调。如此说来,《四分历》的朔望月长度是这样算得:

365.25×19=6939.75(日)

12×19+7=235(月)

6939.75÷235=29.530851(日)

岁实365.25日、朔望月29.530851日,现在看来很容易算得,但在当时,尤其是岁实365.25这个数据,是世界上最精密的数据。因此,我们可以实事求是地说,《四分历》的创制是一项具有世界意义的大事!

《四分历》定岁实为365.25日,虽然较为精确,但与当时实际的岁实365.2423相比,毕竟大了0.0077日,这个误差看起来不算大,但请不要忘了积少成多的道理,你看一年大0.0077日,那么100年就大了0.77日(约18小时四分)。这样久而久之,就必然发生历法预推的时刻要比实际天象来得晚的现象,而且越来越显著。这种现象后来果然被制历家们发现了,但在相当长的时期内,没能认识到这一现象的实质。一直到东汉末年的刘洪才认识到这是由于《四分历》岁实太大的缘故。所以,在他制订的《乾象历》中,首次将岁实减小为365145598,即365.246180日(相应的朔望月长为29.53054日)。这样我国古代历法的精度又提高了一步。

《乾象历》比《四分历》的精度确是提高了,但刘洪测定冬至时刻的方法,可能还是沿用了传统的方法。显然要想进一步提高历法的精度,必须从测量方法上加以改进。古人果然想到了这一点。首先这样做的,当推南北朝时代的祖冲之。他的方法是:不直接用圭表测量冬至日正午的太阳影长,而是测量冬至日前后20余日太阳正午的影长,而后取其平均值,从而求出冬至的日期和时刻。祖冲之根据实测制订的《大明历》的岁实为365.24428日,这个精确的数值,一直到五六百年之后的宋代,才达到或超过它的水平。而在欧洲,一直到16世纪以前所实行的《儒略历》中,岁实的数值均采用与《四分历》相同的数值365.25日。

继祖冲之之后,改进测量方法的是北宋的姚舜辅。他在修订《纪元历》时,打破了历史上采用1组观测确定冬至时刻的传统方法,而采用1年多组观测,再取平均值确定冬至时刻的全新方法。由于测量方法的革新,冬至时刻以及岁实的确定越来越准确了。到了南宋杨忠辅制订《统天历》时,他首先采用了岁实365.2425日这个极为精确的数值。元代郭守敬等人在制定《授时历》时,根据实测肯定了岁实365.2425日为历史上最精确的数值。现今世界通用的阳历——格里历的岁实也是365.2425日,但它与《统天历》相比,大约晚了400年。

我国古代制历家们,从不满足于前人的成就,总是力求有所发现、有所前进。正是在这种严谨的治学态度激励下,明代末年的邢云路,进一步改进圭表,精心实测。艰苦的劳动终于结出了丰硕之果。他测得的岁实为365.24219日,这和用现代理论推算的数值365.242217相比,仅仅小0.000027日,即一年大约才相差2.3秒。而在欧洲,丹麦天文学家第谷于1588年测定的最精确的岁实为365.2421875日,其误差1年大约为3.1秒。

从以上的介绍可以知道,我国古代制历家在测定冬至时刻、推求岁实方面,做出了卓越的贡献。

月亮的视运动和朔望月

我们在前面已经谈过月亮的盈亏,天文学上把这种盈亏现象叫做月相变化。现在我们都知道,月球本身是不发光的,它只是反射来自太阳的光。早在东汉时期,我国著名的天文家张衡在他的著作《灵宪》中就明确地说明了这一点:“月光出于日之所照,魄生于日之所蔽,当日则光盈,就日则光尽也。”意思是,月光来自日光的照射,对着太阳时月亮就全发光,而为满月;背着太阳时月亮就不发光,不见了。明白了这个道理,月相的变化就很容易说明了。太阳光从右方射来,中间E代表地球,围绕地球的是在轨道上不同位置的月球,最外面一圈画出了地球上观测者所看到的月相。我们看到,在望时,地面观测者所看到的正是月球朝着太阳的一面;而在朔时,看到的是月球背着太阳的一面。从朔到朔,或从望到望,时间间隔为29.53059天,这个长度叫做一个朔望月。朔望月是农历中最基本的周期之一,因各个时代观测精度的不同,在制历中各用稍有不同的近似值。

月亮绕地球旋转的轨道不是一个正圆,而是一个较明显的椭圆。离地球最近的一点叫近地点,和它正相对的离地球最远的一点叫远地点。在近地点附近,月亮在轨道上运动较快,而在远地点附近,运动较慢。因此月亮的运动不是均匀的。我国东汉时期的天文家刘洪,根据他长期辛勤的观测,首先发现了“月行迟疾”的运动不均匀现象,为后来的历法改革打下了坚实的科学基础。

我国的农历是以朔望月作为记月的一个基本单位(朔望月是指连续两次朔或望之间的时间间隔)。所以我国古代制历家们都十分重视对月亮运动的观测和研究。春秋末期使用的《四分历》。所采用的朔望月长(古称朔策)是29.530851日,这与现代测定值29.530588日相比,误差仅为0.000263日。在隋代以前的制历家们一直以朔望月的长度来推算、安排各月的历日。每个月的第一天叫作朔日。但由于朔望月的长度不是整天数,而是比29.5日稍大,所以就采取大月30日、小月29日,一个大月一个小月相间排列的方法。这样大月比朔望月的实际日数多了半天,小月就少了半天,但两者并不能相互抵消,所以大约每隔17个月就安排一个连大月来加以调整。

古人在观测和研究月亮的实践中,发现一个朔望月并不等于月行一周天。在《淮南子·天文训》中就明确记载有“日行一度,月行十三度又十九分之七”。由此不难算出,月行一周天需要365.25÷13119=27.321850日。这说明我国很早就有了恒星月的概念。当然推求恒星月并不是古代制历家们的目的,他们所需要的是月亮的每日运行的度数,有了这个数值以便用来推算月亮在恒星间的经度位置。

我们知道,月亮绕地球运行的轨道与地球绕太阳运行的轨道一样,都是椭圆形的,所以月亮过近地点时,运行速度最快;相反,在过远地点时运行速度最慢。我们将月亮从近地点出发,运行一周又回到近地点的时间间隔,叫做一个近点月。战国时代的石申大概已经认识到了月亮运动的不均匀性,可惜记载简略,不足为证。东汉的李梵、苏统等人明确地指出了月亮运行速度有快慢的变化。贾逵不仅认识到了月亮运行的不均匀性,而且指出这是由于月道有远近造成的。他又进一步指出,这个近道点(即近地点)经过一个月(即近点月)向前移行了三度。九年之后,这个点移行一周又回到了原来的地方。

后来的刘洪进一步研究了月行快慢的规律性,并在他制订的《乾象历》中首次加以考虑。按《乾象历》的算法,近点月数值Z7.554629日,这与近代的测算值27.554550日相比,误差仅为0.000079日。此后,历代多数制历家都较为重视近点月数值的测定,并取得了越来越精密的数值,其中以隋张胄玄制订的《大业历》的数值27.554552日最为精密。

古人对月行快慢的研究和计算,其主要目的是为了推算日月食发生的时刻和位置,而这项工作又促使古人对交点月(月亮从黄、白道的升或降交点起,运行一周又回到相应的位置所需要的时间,称为一个交点月)进行精细的研究和计算。祖冲之在他制定的《大明历》中,第一个求得交点月的数值是27.21221日,与今测值27.21222日相比,仅差0.00001日。以后的历法家们所推求的数值无不达到了很高的精度。

张子信发现了太阳运动的不均匀性之后,为进一步研究定朔提供了有利条件。从隋代的刘焯、张胄玄开始,在制订历法推求定朔时刻时,将日行和月行的不均匀性同时加以考虑,这在中国历法改革史上是值得庆幸的重大进步。

南北朝时代的何承天,在他制订《元嘉历》时,首先倡议用定朔安排历日。可惜由于传统的守旧势力的反对而未能实现。唐初傅仁均制订的《戌寅元历》虽然开创了使用定朔法的先例,但终因守旧势力的顽强反对,致使半途而废。直到半个世纪之后,李淳风制订《麟德历》时,才最终战胜了守旧派,名正言顺地采用定朔法安排历日。

尤其难能可贵的是,刘焯在推算定朔的时候创立了等间距二次差的内插法公式,使古代数学的先进成就在制订历法中得到了实际应用。到唐代的僧一行又有了新的进展,他采用了不等间距二次差的内插法公式来计算定朔,这无疑又进一步提高了精度。元代的郭守敬继前人之后更进而刨立了平立定三次差的内插法公式,从而把我国古代的天文历法成就推向了一个新的高峰!在前面的叙述中,我们多次使用了“定朔”一词,而且采用定朔是我国古代制历史上的一个进步。那么什么叫“定朔”呢?我们说,“定朔”是相对于“平朔”而言的。因此要介绍定朔需要从平朔说起。由上面的介绍读者已经知道,由于近点月和朔望月的长度是不相等的,所以月亮圆缺一次所需要的时间也是不相等的。这样古代所推算的朔望月日数,只是月相变化一周的一个平均数。以这个平均化的朔望月长度所求得的合朔时刻就叫作“平朔”。当把月亮和太阳运动的不均匀性考虑进去,从它们的实际运动出发所求得的合朔时刻就叫作“定朔”。或者说,对平朔作月亮和太阳运动不均匀性的改正之后,所求得的合朔时刻就是定朔。

我国古代制历方面的成就,虽然不能在此作全面的详尽的介绍,但在我们所涉及的几个方面,还是作了较为系统的说明。由此不难看出,古代制历家们为了制订一部精密的历法,无不付出艰巨的劳动。俗话说“功夫不负有心人”。正由于此,我国古代的制历工作在相当长的历史时期内确实走在世界的前列,而且有一些历法还为外国所采用,从而成为中外文化交流的见证。据初步统计,仅南北朝、隋唐时期,日本就曾采用过五部中国历法。