古人如何知道冬至是哪一天?

摘要:但中国历法却将冬至作为一岁之始,一岁的长度(岁实)是两次冬至之间的间隔。在中国人的观念中,冬至的时候寒冷到达了极点,阴气盛极而衰,阳气开始生发,因此是生命的起点,于是把冬至作为一个太阳年的起始,这是中国天文学的独特之处。

今天是冬至,北半球一年中 白昼最短 的日子。大早醒来看到这篇文章的你,也许还没能看到太阳从窗外升起。

熟悉天文学的读者可能知道,现代天文学是以春分作为一年的开始,两次春分之间的间隔就是一个回归年。

但中国历法却将冬至作为一岁之始,一岁的长度(岁实)是两次冬至之间的间隔。 在中国人的观念中,冬至的时候寒冷到达了极点,阴气盛极而衰,阳气开始生发,因此是生命的起点,于是把冬至作为一个太阳年的起始,这是中国天文学的独特之处。

今天,我们有各种各样的电子日历提醒我们各种节气的到来,但在古代,人们是怎么判定冬至的到来呢?

立杆为影

在冬至附近的一段时间,历家(即研究、制定历法的人)会用“圭(guī)表”测量正午影子的长度,以此确定冬至的确切时刻。立起来的杆称作“表”,表高为八尺(约1.8米),地面上测量影子长度的大尺子叫做 “圭” (又叫量天尺),圭表朝向正北,每日正午的时候,太阳在正南,就可以测得一天中最短的影子。有了冬至附近数日的正午影长数据,便能算出冬至的确切时刻了。

圭表测量示意图

(图片来源:《中国古代天体测量学及天文仪器》图11-3)

冬至测影在中国有着非常悠久的历史。在中国古代天文学中, 圭表测影最主要的作用是推定冬至时刻, 因此观测精度就非常重要。

位于北京古观象台后院的圭表模型

(图片来源:北京古观象台官网)

而在古希腊天文学中,测影则主要是为了论证宇宙模型,因此古希腊人并不需要过分追求精度。这样的思路也影响到中世纪,圭表测影技术在欧洲一直没有得到很好的发展,这也使得欧洲在很长一段时间里都将一年的长度定为365.25天。

在阿拉伯世界,对太阳的观测主要靠日晷而非圭表,原因在于穆斯林每天需要做五次祷告,这就要求要有准确的时间。

实际上,如果从天文观测的角度来说,太阳直射点在冬至附近移动缓慢,好几天内可能都难以观察到日影长度的变化,而在春分秋分点附近移动最快,很容易就能观察到日影变化,选用春分来测量晷影、考算岁实是更好的选择。但很多事情并不是单一因素可以决定的,中国人对天道的认知在此时胜过了出于天文观测的考量。

冬至的具体时刻如何计算?

在测得冬至附近几个正午影长的数据之后,应该怎样计算冬至的具体时间呢?换句话说,怎样通过计算得知一年中影长最长的时刻呢?

《宋书·律历志》留下了一段祖冲之计算冬至时刻的方法,翻译成现代语言,参照示意图,就是:

大明五年十月十日(公元461年11月27日)(A),测量得到影长a=10.7750尺(约2.5米);

十一月二十五日(公元462年1月11日)(B),影长b=10.8175尺;

十一月二十六日(C),影长c=10.7508尺。

祖冲之假设影长以冬至为中心对称,影长的变化是一条直线(当然,实际情况是类似抛物线的曲线,且并不以冬至为中心对称)。

a和b、c很接近,所以冬至日期在十月十日和十一月二十五、二十六日的中点,该年十月有30天,所以十月十日到十一月二十五日有45日,所以 冬至在十一月三日 。那么具体时刻是什么呢?

祖冲之这样算 :“令后二日影相减,则一日差率也。倍之为法,前二日减,以百刻乘之为实,以法除实,得冬至加时在夜半后三十一刻。”即:

(b-a)/[(b-c)*2]

=(10.8175-10.7750)/[(10.8175-10.7508)*2]

≈0.3186

也就是三日零点加上0.3186日,1日=100刻,得到 冬至在十一月三日31刻

祖冲之测算冬至时刻法示意图

(图片来源:作者据《中国科学技术史(天文学卷)》图4-13重制)

祖冲之并没有解释为什么要这样算,我们可以按下面这样理解。设A为十月十日正午,B为十一月二十五日正午,C为十一月二十六日正午,a、b、c分别为这三日的正午影长。则必可在B、C之间找到影长也等于a的F点。祖冲之假设影长以冬至点为中心对称,作均匀线性变化。则BC之间影长每日变化b-c尺,每刻变化(b-c)/100尺。所以BF=(b-a)/(b-c)日=(b-a)/(b-c)×100刻。

又设D为AB的中点(即AD=DB),则D为十一月三日夜半。设E为AF中点,即E为冬至时刻,在十一月三日的某一刻。

由图可见,DE+EF=DB+BF,已知AD=DB,AE=EF,则DE+AE=AD+BF,因此BF=DE+(AE-AD)=2DE,所以DE=1/2BF=(b-a)/[(b-c)×2]。

这就是中国古代推算冬至时刻的算法。 我们只要找出三个点A、B、C,其中A在冬至前,B、C是冬至后相邻的两天,且A的数值在B、C之间,那么冬至的日期就在AB中点的那天,具体时刻就是(B-A)/(B-C)/2。 如果连续测量几年的冬至时刻,取平均值,就能算出一个回归年的长度。

分毫毕现

从祖冲之以来,冬至测影的算法至少就一直没变过,那么冬至时刻观测精度的提高是怎么实现的呢?

靠的是观测仪器的改进。

测影的表自古以来都是八尺高,到了元代,郭守敬将表加高到四丈(1丈=10尺,合9.81米),在大都、上都、阳城等全国五处地方都设立了高表,可惜留存至今的仅有位于阳城(今登封告成镇)的一处。阳城高表直接用砖石修造的观星台来代替铜表,这样做的好处是节省费用,省时省工。

台顶架了一条横梁,横梁和下方的直壁留有一些空隙。圭则直接躺在地上,由水槽来保证水平。正午阳光穿过横梁,在圭上投下一道阴影,这就是影子的长度。影子相较以前的测量方法更长,因此测量就会更加精确。

位于登封告成镇的郭守敬观星台

(图片来源:大河网)

有一个小细节值得注意。新表的长度(四丈)是旧表的五倍(八尺)。为什么设计成五倍,而不是四倍或者六倍呢?

在中国古代,最小长度单位是毫,约等于现在的0.024毫米;那么五毫就相当于0.12毫米(0.024*5=0.12mm)。

郭守敬希望“毫厘差异分别”,也就是影长要能够精确到一毫(0.024毫米),但是肉眼能够识别的最小长度大约是0.1毫米,在传统的八尺表下无法实现这样的读数。若将圭表放大五倍,就能读取最小五毫(1.2毫米)的数据,折算成八尺表,就是一毫。这是郭守敬选择四丈高表的原因。

但是还有一个问题是,当表的长度增加之后,影子就会变得模糊。我们在生活中也能感受得到,太阳底下,自己的影子边缘似乎很柔和,一点也不分明。

为解决这个问题,郭守敬发明了“影符”,实际上就是一个倾斜着的有一个小孔的铜板。

将影符放在量天尺上影端虚影处,使得太阳、横梁、小孔呈一条直线,光线透过小孔,在量天尺上投一下个小光斑,横梁的阴影在光斑上显现出一道米粒大小的阴影,边角分明,微调影符位置,使得阴影正好处在光斑的中间,这样就可以读到准确的数据。 这正是利用的小孔成像原理。

复原铜制影符

(图片来源:肖尧《登封四丈高表与圭表测影》)

通过这两项改进,再加上连续数年的不懈观测,以及古代的观测记录, 郭守敬测量出了自古以来最准确的回归年数值:365.2425日, 与当时的精确数值365.2422日相比,误差只有26s。巧合的是,我们现在使用的格里高利历一年的长度也是365.2425日。

贯通古今的理想

冬至测影在中国有着非常悠久的历史。传说冬至测影从三千年前的周公就开始了,但真正的起点应该更早,部落时代的人们可能就已经会测量日影了。而留存至今最早的有明确数据的记载,是上文祖冲之的观测结果。

此后,历代历家测量了六组数据,得出六个可靠的冬至时刻。在祖冲之测量冬至日的817年之后,郭守敬也接过了接力棒,进行了自古以来最准确的测量。

郭守敬在《授时历议》中说,将这六组数据,取相距日数,用相距年数来除,就能得到相应那段时间的回归年长度,用祖冲之测影(公元461年)到他自己测影(公元1278年)的日数除以年数,得到每年长度为365.2425日。

他具体是怎么算的呢?郭守敬也没有给出解释,我们可以自己来算算。

上文已知,祖冲之推算出的461年冬至是十一月三日3186分,郭守敬测算出来的1278年冬至是十一月二十九日未初三刻,换算成万分制就是5750分,两次测影相隔298403日、817年。用日数除以年数,(298403.5750-0.3186)/817=365.242664,和郭守敬说的365.2425略有差距,这说明他应该还考虑了其他多方面因素。

数百年测量的价值还在于极小的误差。在计算回归年长度时,即使我们把具体时刻都去掉,只保留整数日,298403/817=354.242350,这比365.2425更符合当时的理论值。也就是说,在这么长的时间跨度中,我们只要知道冬至是在哪一天,就能算出非常精密的回归年长度。这正是这项超长期观测的意义所在。

结语

古代历家相信,天道流转恒常不变,历法的追求就是尽量吻合天道。因此在制定历法时,历家一方面自己测算当时的影长,一方面又要利用古代的天象记录,把尽可能多的数据纳入自己的历法之中,这样才能下可推今,上可考古。古代天文记录不仅有冬至时刻(用来测定一岁起始、测算回归年),还有中星记录(用来计算岁差)、日月食记录等等,这些记录都是在制作历法时需要考虑到的。不过,受限于天象记录的模糊性以及历法技术本身的水平,还是有相当一部分古代记录难以符合历法,在预测日食时也不时失败,历家虽然尽量扩大“历数之常”的范围,但也对“天道之变”无可奈何。昭明而又难测的天道一直高悬在历家头顶,敬天法古的精神同样在历法中流淌着。

来源:东窗史谈一点号

相关推荐