内容梗概:前几次说到冬至是从阴到阳的转折点,“日北至”,“一阳生”。但冬至不是某一天而是一个时刻。如何测量这一时刻?最常见的方法是测量冬至前后几天的影长。但如果那几天阴天怎么办?冬至时刻不是正午怎么测量影长?祖冲之提出了巧妙的方法解决了这一问题。这种方法后来为历代所采用,它所用的数学和几何原理非常简单,初中生都明白,但却蕴含着科学发现的普遍规律:长期观测、分析数据、深入思考、提出假设、实验验证。
一周以后,老师和学生又在老地方碰面了。这天餐厅里有些拥挤,中间的大长条桌坐满了人,好像在聚餐。他们好不容易找到了一个靠墙的座位。
刚一坐下老师就问:“上次我们提到的那位中国古代科学家,你猜到了吗?”
“是祖冲之吧?” 学生说道。
“对,正是他。”
“提到圆周率就想到了祖冲之,以前只知道他是数学家,还真不知道他还测量过冬至时刻!” 学生说到。
“除此之外,祖冲之还对天文历法做出了很大的贡献!你记得祖冲之是什么时候的人吗?”
“是南北朝的?”
“对,也就是公元500年左右,距今已经1500多年了。那时既没有望远镜、也没有精确的秒表,更不用说其它先进的仪器和设备了。”
“那祖冲之是用什么工具来测量冬至时刻的呢?” 学生不解地问道。
“只是用一根杆子而已,测定正午时分杆子投射在地面上的影长。当然准确的叫法应该是圭表。”
“就这么简单?”
“是的,如果仅仅是想知道冬至大概是在哪一天,那么只需要测量冬天正午影子最长的那一天即可。但是由于“景之差行,当二至前后,进退在微芒之间”,冬至附近影长变化经历了一个拐点,本来变化就不明显,再加上冬天日影变淡,很难精确测量,所以根据《左传》等资料推算,那时连冬至日都测不准,通常会有2-3天的误差。”
“可是我有个疑问:冬至那几天要是“阴天”怎么办? 就没法测量日影了吧?”
“是的,这是个棘手的事情,毕竟天气没法轻易改变。其实,祖冲之还有更大的挑战呢!”
“什么挑战?” 学生问道。
“冬至不是一个日子,而是一个时刻。而要精确地测量出冬至时刻,才能够帮助制定出准确的历法。但我们知道冬至时刻每年都在变,不一定正好是正午,如果冬至时刻在晚上,那又如何测量影长呢?古人总不会绕过大半个地球跑到美国去测量正午时分的影长吧!”
“那该怎么办呢?”
“这说明,单单测量影长已无法准确得到冬至时刻,必须进行推算。祖冲之之前的何承天,他连续测量十年,并且利用古人提出“要取其中”的方法来推算冬至时刻。但是具体如何做,现在已经不可考了。祖冲之长袖善舞,提出了一种很巧妙的方法,化解了阴天无日影问题、冬至时刻不在正午的问题。他提出的方法不局限在一定要在冬至这一天测量影长,而是在冬至前后几十天的范围内挑选几个晴天的日子测影长,然后进行一些简单计算就可以了,这样一来,天气的原因对于祖冲之来说就不是问题了。”
“哦,是吗?真巧妙!那需要测量多少次呢?”
“需要三天正午的测量数据,因为不知道未来会不会阴天,为了保险可以多测几次,但做计算时只要有三次的有效影长的数据就够了。”
“只需3次的数据?”
“是的。”
“我对祖冲之越来越好奇了”,学生感叹道:“他究竟是个什么样的人呢?既精于数学,又通天文!”
“你说的没错,一个人的性格、经历和治学态度,决定了他采用的方法,而方法又决定了成就大小。”
“嗯。祖冲之的家庭是怎么样的呢?”
“祖冲之生于429年,在他出生前九年,东晋灭亡。接下来中国进入了南北朝时期,形成了南北对立的局面。 祖冲之生活在南朝的宋和齐两个朝代,都城是建康,也就是今天的南京。祖冲之家族属于低级士族,地位不高,但是有世代钻研学习的传统。祖冲之的祖父祖昌善于发明,在朝廷担任过大匠卿,父亲祖朔之是皇帝的侍从官员。根据《隋书》记载,祖家世代掌管历法。祖冲之自幼生活在这样的家庭里,对天文学和数学非常感兴趣,广泛搜罗阅读钻研前朝留下的著作,但是他发现古人留下的论述中又有一些不可靠的地方,所以他每每“亲量圭尺,躬察仪漏,目尽毫厘,心穷筹策”,“不虚推古人”。”
“这让我想到了欧洲十六、七世纪的开普勒。开普勒继承了他的老师第谷留下的大量观测数据,同时又不拘泥于古人的结论,终于推翻了行星轨道是圆形的观念。”
“是的,既能够占有大量数据,又自己亲自测量和计算,不囿于古人的结论和成法,从而才能开创出一片新天地。祖冲之自己是这样说他如何利用古人的文献资料的:
“搜炼古今,博采沈奥。
唐篇夏典,莫不揆量。
周正汉朔,咸加核验。
罄策筹之思,究疏密之辨”。
祖冲之对张衡的天文著作、东汉时期刘洪的《乾象历》和三国时期杨伟的《景初历》都进行了系统研究考察,对前人的观点批判地继承。”
“比如说呢?”
“例如祖冲之看到东汉初年班固所写的《汉书》里提到了六种古代历法:《皇帝历》、《颛顼历》、《夏历》、《殷历》、《周历》和《鲁历》。后人曾以为是这几个朝代当时所采用的历法,而经过祖冲之的推断发现,这些只不过是后人的伪作而已,他说:“古术之书,皆在汉初周末,理不得远”。”
“祖冲之在哪里进行研究呢?”
“祖冲之在青年时代就进入了南北朝时期宋朝设立的华林学省的机构,专门从事天文历法和数学研究。因为工作出色,被朝廷“省赐宅宇车服”。后来祖冲之虽然出任了地方官,但仍然没有中断天文测量和研究。”
“那祖冲之是如何利用手头的影长数据来推算冬至时刻呢?”
“虽然说祖冲之的方法只需要进行三次测量,但是实际上祖冲之每天都坚持观测,并且积累了大量的一手数据,并且他还利用工作上的便利接触到大量的古代观测数据。他平时没事就去琢磨这些数据。”
“那他从中琢磨到了什么吗?”
“就比如关于影长的观测数据吧,他经过长年累月的观察,发现冬至前后影长的数据都与下表类似。比方说有这么一组由于阴天导致观测记录不完整的杆子影长数据:
日期 | 影长 |
---|---|
十月三十 | 12尺 |
十一月初一 | 12.06尺 |
十一月初二 | 12.12尺 |
十一月初三 | *阴天没有影长数据 |
十一月初四 | 12.12尺 |
十一月初五 | 12.06尺 |
十二月初六 | 12尺 |
十二月初七 | *阴天没有影长数据 |
“你能看出有什么规律吗?” 老师问道。
“让我看看,影长一开始不断增加,突然来了一个阴天,后来又不断减少,又来了一个阴天。总体趋势是这样先增加后减少的。”
“对。”
“既然如此,那么从增加变得减少的拐点应就是冬至日。”
“对,如果假设冬至前后影长增加的速度和减少的速度都是均匀的,冬至前每天增加0.06尺,冬至后每天减少0.06尺。即使有两天是阴天,那么我们也可以估计出十一月初三那天应该是影子最长,是冬至日。”
“嗯,同意!”
“祖冲之手头上积累了很多这样的数据,分析研究这些数据是他从事研究的基础。换句话说,现代科学研究也是如此:大量占有数据,并且深入思考、科学地进行分析才有可能取得突破。”
“嗯。”
“祖冲之经过仔细琢磨得到了两个基本判断:冬至前影长增加,冬至后影长减少,并且基本对称。影子的变化速度是近似均匀的。”
“那根据这两个假设就能够计算出冬至时刻吗?”
“还要加上一点点最基本的几何知识。”
“什么样的几何知识呢?” 学生问道。
“两个相似三角形的对应边长成比例。”
“就这么简单吗?”
“方法是简单,但是能想到这一方法本身并不简单。它需要十年如一日的观测,翻阅几百年的观测数据,还要有恒心、细心和毅力才可以。在祖冲之之前,就已经有了测量冬至时刻的粗糙方法。北朝的周琮指出:“晋、汉历术,多以(至)前后所测晚晷,要取其中。” 但是古人是如何“要取其中”,却没有明确交代,因此具有很大的主观性和随意性,而祖冲之是第一个从严格的数学意义上推导出冬至点的观测方法。”
“那么他是具体怎么测量的呢?”
“祖冲之曾经简要介绍了自己的计算方法,我在手机里查到了南朝《宋史 历律志》里的原文:
“大明五年十月十日影一丈七寸七分半,
十一月二十五日一丈八寸一分太,
二十六日一丈七寸五分强,
折取其中,则中天冬至应在十一月三日。
求其蚤(早)晚,令后二日影相减,则一日差率也,倍之为法;
前二日减,以百刻乘之为实。
以法除实,得冬至加时在夜半后三十一刻,在元嘉历后一日,天数之正也”。”
“是什么意思呢?”
“ 简单翻译一下就是,
- 大明五年十月十日影长为10.775尺,
- 十一月月二十五日影长为10.8175尺(“太”是古代的一个计数符号,是最小单位的3/4),
- 十一月二十六日影长为10.7508尺(“强”也是古代的一个计数符号,是最小单位的1/12)。
- 十月十日的影长落在十一月二十五日和二十六影长之间,所以根据对称原理,冬至日应在十月十日和十一月二十五日之间,也就是十一月三日。
- 令十一月二十五日和二十六日测得的两个影长相减:10.8175-10.7508=0.0667,
- 然后乘以2倍,0.0667 x2=0.1334,这个值称为“法”。
- 再令十月十日和十月二十五的影长相减:10.8175-10.775=0.0425,
- 这个值乘以100(古代每天等分成100刻)得到4.25,称为“实”。
- 用“实”除以“法”:4.25/0.1334=31.86刻,
- 即大明5年的冬至点是在11月3日31刻多一些。”
“让我换算一下,一天是100刻,那么31.86刻就是在一天的三分之一附近,也就是早上8点前一点,大约是现在的早上7点37分26秒。那具体是怎么计算的呢?”
“如果把三天的影长按照时间顺序分别是a,b和c,那么计算的公式就是:
冬至在一天100刻中所处的相对时刻:100(b-a)/2(b-c)。”
“哦,这个计算真简单,加减乘除四则运算就够了。可是这只是具体的计算方法,那背后的原理是什么呢?” 学生问道。
“后人推测祖冲之应该是利用了相似三角形的原理。”
“相似三角形?果然有初中几何知识就够了。”
“嗯。首先,祖冲之在冬至前后选择了A/B/C三天,正午的影长分别为a,b,c。我们可以把这三个影长画在时间轴上(如图),横轴代表日期,而纵轴代表影长。a的影长介于b和c之间,根据对称性,所以冬至日应该在A和B中间的那一天,我们标识为D日零时。也就是说A在冬至前N天,B在冬至后N天,C在冬至后N+1天。有了这三天的数据就可以推算冬至时刻了,这样即使冬至日是阴天也没有关系,因为并不需要在冬至那一天进行测量。退一步讲,即使A/B/C三个测量日期是阴天也没关系,只要把A提前一天,把B和C分别推后一天,我们就可以利用新的数据来计算了。”
“太妙了!”
“对。下面我们就开始验证祖冲之的脚步开始推算了,你准备好了吗?”
“想想都激动,这可是祖冲之一千五百多年前使用的方法!”
“让我们开始吧”。老师说道。
- 首先,既然冬至日D是AB的中点,所以AD=DB 。
又因为D是冬至日子夜零时,所以冬至时刻在D右边的E点,且DB=DE+EB。
这个E点的位置就是我们要找的冬至时刻,换句话说只需求出DE的长度就能确定冬至时刻。
- 接下来,因为冬至前后影长是对称的,而且a介于b和c之间,c 所以可以得到:AE=EA1,即AD+DE=EB+BA1。
- 然后,我们很容易推导出DE刚好是BA1的一半。(推导方法:把AD=DB=DE+EB带入到上式,就得到了AD+DE=DE+EB+DE=EB+BA1,约去左右的EB,得到2DE=BA1)”
既然我们要求出DE,那么可以先求出BA1,然后减半就可以求得DE了!
“那怎么求BA1的长度呢?”
“关键之处就要找出两个相似三角形。”
“找哪两个相似三角形呢?”
“我们一起看一看。既然是要求BA1,那其中一个三角形肯定和BA1有关,它刚好对应了一个小三角形B'FA'1的底边,而GC'刚好是另一个大三角形B'GC'的底边,GC'的长度是B的正午和C的正午的间隔,刚好是一天100刻(注:古代一天分为100刻,1刻相当于现在14.4分钟)。那么就找到了这两个相似三角形。小三角形的竖直边长b-a,大三角形的竖直边长b-c。”
接下来,根据三角形相似的原理,我们就有:(b-a)/(b-c)=BA1/BC。
所以,BA1=(b-a1)·BC/(b-c)。
而BC为25日至26日1昼夜时长100刻,也就是祖冲之原话中的“百刻”,因此BA1=100(b-a)/(b-c)。
而DE是BA1的一半,所以BA1=100(b-a)/2(b-c)。
“那祖冲之测量到的冬至时刻与理论值有多大误差呢?”
“误差大约是20刻,这个值远远小于历代的误差。例如东汉四分历测得的公元173年冬至的误差是239刻,晋朝杨伟的景初历测的237年冬至的误差是221刻,王朔之的永和历测的351年冬至时刻误差是102刻,与祖冲之同时代的何承天“立八尺之表,连测十余年”,他的元嘉历在公元442年测的误差是50刻,这已经比前人的误差缩短了一半,而祖冲之的测量误差比何承天又小了一多半。祖冲之的方法首次提出一种明确的数学表达式来计算冬至时刻。”
“那祖冲之为什么把冬至前后三个日子的距离拉得那么大呢?前后有四十多天。”
“道理也很简单。这样就克服了冬至前后影长变化不明显问题。把测量日期提前或推后到冬至前后二十多天,那时影长的日变化量比冬至大很多,超过了六分,更容易测量影长变化。”
“祖冲之的测量和计算方法对现在有什么意义呢?” 学生问道。
“它的意义在于,用简单的测量工具和简单的数学计算得到了非常高的测算精度,这是当前科学研究和工程实践追求的目标。”
“能举个例子吗?”
“如果用一句话来说,就是奥姆卡剃刀原理,又叫“简单有效原理”,即“如无必要,勿增实体”。你看在祖冲之的测量方法里没有任何一步是多余的,你无法再精简了。”
“为什么精简的就好呢?”
“精简的东西人们更容易记住,也更容易流传下来。祖冲之测量冬至时刻所发明的这个方法也被后人所继续使用,元代的郭守敬后来继续改进了测量的圭表,让它的的精度又进一步提高。”
“那郭守敬是如何改进圭表的测量的呢?”
未完,待续...
参考文献:
郭蕊,《数学泰斗祖冲之》,吉林出版集团,2011-1. ISBN 9787546341040
陈美东. 祖冲之的天文历法工作[J]. 自然辩证法通讯, 2002, 24(2):68-73.
陈美东. 论我国古代冬至时刻的测定及郭守敬等人的贡献[J]. 自然科学史研究, 1983, 2(1):51-60.
《全齐文》卷十六 祖冲之
白寿彝,《中国通史(第二版)》,上海人民出版社 江西教育出版社,2013-7