《授时历》圭表影长数据测量地点考

2019-01-25 07:11孙小淳
中国科技史杂志 2018年4期
关键词:影长太史

肖 尧 孙小淳

(中国科学院大学人文学院,北京 100049)

元至元十三年(1276),元世祖忽必烈(1215—1294)命王恂(1235—1281)、郭守敬(1231—1316)等人编订新历,历时四年,于至元十八年(公元1281年)完成并正式颁行,名为《授时历》([1],页86—87)。郭守敬认为,“历之本在于测验,而测验之器莫先仪表”([2],页3847),所以他特别重视天文实测,而圭表测影对于确定冬至时刻,进而提高整部历法的精度,至关重要。为提高圭表测影的精度,郭守敬发明了四丈高表和景符,取得了较为精确的影长数据。《元史·历志》“授时历议”中,记载了郭守敬在1277至1280年间98天的影长数据。对于这些数据,此前学者多关注用这些数据推定的历法常数精度如何,如据陈美东推算,“授时历议”中给出的冬至时刻,误差皆在1刻(相当于14.4分钟)以内[3]。也有学者根据这些影长数据分析了夏至、冬至点测算精度[4,5],或采用模拟测量的方法来研究郭守敬的测影精度[6—8],这些工作对于研究郭守敬的天文测量都非常重要。

关于郭守敬的天文测量,我们认为还有一方面的问题也是有意义的,就是关于测量的具体情况,比如测量的地点问题。《元史》中关于这方面的信息未有记述,我们只能通过对影长数据的分析来进行探讨。有意思的是,我们分析郭守敬的圭表测影数据,发现其有明显的分组倾向,其分为两组:前一组对应较低的地理纬度,后一组对应较高的地理纬度。由此我们推测,这98条测影数据的测量,很可能前后在两个地点进行。那测量的地点究竟在哪里?是不是当时的观象台?就成为可以探讨的问题。

元大都的太史院建于1279年春[9]。那么之前的测量在何处进行?郭守敬会不会利用金朝存留的金中都司天台进行天文观测?本文对这段时间里郭守敬等人的测影过程进行梳理,分析98天的影长数据,结合史料考证,试图确定郭守敬圭表测影的观测地点。

1 《授时历》影长数据对应的观测点地理纬度

《元史·历志》“授时历议”中记载了从至元十四年(1277)到至元十七年(1280)四年间98天正午的四丈高表影长,并且记载了如何使用这些影长数据推定夏至和冬至时刻。这些影长记录的日期,最早为至元十四年六月初五(公元1277年7月7日),最晚为至元十七年正月朔日(公元1280年2月2日)。其中测影日期在冬至前后(11月,12月,1月以及10月底和2月初都算作冬至前后)的测量有67次,其他日期进行的测量有31次。具体观测的日期和影长数值见表1。

表1 《授时历》中98个日期高表测影数据及其对应地理纬度

续表1

续表1

续表1

根据史料,元朝建太史院设天文仪器用以颁行新历的测量之用,依常理,这98天的测影数据最有可能在元朝太史院中进行测量,但1279年春之前元太史院尚未建立,如此一来,1277年至1278年的测影数据在何地测量就成为一个问题。对于这个问题,我们决定从已有的98天测影数据入手,先假定这些测量都是准确的,在此基础上反推出98个地理纬度,再来分析推得的纬度值的分布规律。

已知确定日期的正午影长数据,可以推算出测量地点的地理纬度。首先,用公式

算出太阳当日正午的视地平高度角α,其中h表示高表高度,x表示影长。然后消去蒙气差ε(蒙气差计算时假定温度为10℃[注]不同的温度对蒙气差有影响,这个影响对我们后续的分析造成的偏差可忽略。如以30℃计算蒙气差,与以10℃计算的蒙气差,相差在2″以内。)得太阳的真地平高度β,即

β=α-ε

查出当日正午时太阳的赤纬δ,根据公式

φ=90°-β+δ

计算得到观测地点的地理纬度φ。

这里需要说明一点,在查询正午太阳赤纬时,我们假定了测影地点的经度为东经116°26′17″,以此查出每日(地方)正午时太阳的赤纬。选取这个经度值是因为据考古所的徐苹芳研究,元朝太史院的位置在今天北京建国门内五号中国社会科学院内[10],其经度为东经116°26′17″。实际上,考虑到测影地点应在元大都(包括金中都旧址)城范围内,而金中都西城墙经度约为东经116°21′21″,元大都东城墙经度约为116°26′30″,在这个范围内,不同经度值对应的正午太阳赤纬相差在1″以内,其影响可以忽略。

我们根据《元史·历志》中记载的98个有确定日期的正午影长数据,计算得到98个测影地点的地理纬度,这些数据见表1。

2 观测点地理纬度值的成两组集中的分布

我们把推得的98个测影地点的地理纬度值按观测日期顺序绘制成图1(纵坐标为地理纬度,横坐标为以时间顺序排列的地理纬度值数目),发现地理纬度值大体上呈现出两组集中的分布趋势,前一组集中在39.84°附近,后一组集中在39.88°附近。这一分布还不太明显,是因为一部分地理纬度值有较大的误差。

图1 98个地理纬度值分布图

根据三角函数的知识,在太阳地平高度角较大时,公式①中的影长x的变化将引起太阳地平高度角β的较大变化,再根据公式③,则纬度值φ也有较大的变化;当太阳高度角较小时,则相反。因为夏季的正午太阳高度角较大而冬季的较小,所以我们根据影长数据推算的观测点地理纬度值,用夏季影长推得的地理纬度会有较大的误差,而用冬季影长推得的地理纬度误差较小。因此,我们选取冬至前后影长数据推得的67个地理纬度值,舍掉其它影长数据推得的31个地理纬度值,重新绘制地理纬度值分布图(图2)。为了方便查看,我们在表1中将这67个地理纬度值加粗标示。

图2 70个地理纬度值分布图

图2中的地理纬度值有非常明显的分两组集中的分布,前一组集中在39.84°附近,后一组集中在39.88°附近。由此我们认为这98天的测影数据很可能是先后在两个地点进行测量的。

更进一步,我们分别计算这两组地理纬度值的平均值和标准差,前一组地理纬度值(39个数据)的平均值为39°50′24″,标准差为16.6″,后一组地理纬度值(28个数据)的平均值为39°52′47″,标准差为17.7″,两组数据的离散程度都很小,因此我们先将这两个纬度值视为先后测影地点的纬度值,即1277年11月17日至1279年1月5日这段时间的测影地点纬度为北纬39°50′24″,1279年10月26日至1280年2月2日这段时间的测影地点纬度为北纬39°52′47″。这两个地点的地理纬度相差2′23″,南北距离相距约3.4公里。

3 郭守敬前后两个测影地点的位置

从数据分析上来看,郭守敬的圭表测影很可能先后在两个地点进行。那么,这两个地点具体位置在哪里?结合历史记载和相关研究,我们对这两个测影地点进行考证。

(1)郭守敬后一个测影地点:元大都太史院司天台

元至元四年(公元1267年),元朝在金中都的东北郊区建造新城,即元大都城。[11]至元十三年(公元1276年),元世祖忽必烈“六月……甲戌,以《大明历》浸差,命太子赞善王恂与江南日官置局更造新历” ([2],页183)。至元十五年“二月戊午,……置太史院,命太子赞善王恂掌院事,工部郎中郭守敬副之,集贤大学士兼国子祭酒许衡领焉。”([2],页198)至元十六年“二月……太史令王恂等言:‘建司天台于大都,仪象圭表皆铜为之,宜增铜表高至四十尺,则景长而真。又请上都、洛阳等五处分置仪表,各选监候官。’从之。”([2],页209)

从1276年忽必烈下令改历之后,元朝的天文官员们就开始了紧锣密鼓的改历工作。根据《太史院铭》的记载,元朝太史院“十六年(1279年)春,择美地,得都邑东墉下”[9](农历正月、二月、三月为春)。同时,太史院内建有司天台和四丈铜制高表。按照常理,在元朝太史院司天台和四丈高表建成后,郭守敬会在此处进行圭表测影。

前文已经说过,元朝太史院的位置在今天北京建国门内五号中国社会科学院内,其地理纬度为北纬39°54′28″(今中国社会科学院大楼纬度)。这与我们前文数据分析推得的后一个测影地点的地理纬度(北纬39°52′47″)接近,但两者还是相差了1′41″,这应是郭守敬测影的系统误差所致。[注]导致系统误差的因素有多种,如立表不完全垂直、圭面不完全水平、表与圭长度不准等。结合史料和数据分析,我们认为,至少从1279年冬始,郭守敬的圭表测影地点在元朝太史院司天台。

(2)郭守敬前一个测影地点:金中都司天台

公元1214年,金南迁至汴(今开封),1215年蒙古军占领金中都。据《金史》记载,“贞祐南渡,以浑天仪熔铸成物,不妨毁拆,若全本以运,则艰于辇载,遂委而去”[12],因此金朝南迁时把浑天仪等天文仪器留在了金中都的司天台中。1271年,元朝“始置(回回)司天台”([2],页2297),1272年忽必烈下旨“回回、汉儿两个司天台都交秘书监管者”[13],“汉儿司天台”指金中都的旧司天台。同年十月,两个司天台合并,但实际上是各干各事,独立汇报工作[14]。所以元朝太史院司天台未建成前,金中都的司天台是一直被使用着的。

又《元史》“郭守敬传”中记载,“守敬首言:‘历之本在于测验,而测验之器莫先仪表。今司天浑仪,宋皇祐中汴京所造,不与此处天度相符,比量南北二极,约差四度;表石年深,亦复欹侧。’守敬乃尽考其失而移置之。既又别图高爽地,以木为重棚,创作简仪、高表,用相比覆” ([2],页3847)。这段记载了郭守敬接到改历任务后进行的一系列举措,其中说到郭守敬移置金中都司天台上的浑仪等仪器,这有可能是为新制天文仪器腾出地方。

如此看来,在1279年春元朝太史院建成前,当时仍被使用的金中都司天台是一个不错的高表测影地点。对此,我们进一步结合数据分析的结果,两相综合进行考证。

上文中我们从纬度值分布中推得了前一个测影地点的地理纬度北纬39°50′24″,假定郭守敬4年间的测影精度水平基本不变且保持着相当的系统误差,则将北纬39°50′24″加上系统误差导致的纬度偏差1′41″,可得前一个测影地点的地理纬度为北纬39°52′5″。

通过《北京历史地图集》[15]中元朝大都城和现代电子地图中北京地区的对照,结合元朝的城墙遗址位置,我们得到元朝当时使用的金中都城和元大都城的南北城墙地理纬度。元大都城的北城墙地理纬度为北纬39°58′30″,南城墙纬度为北纬39°54′26″;而金中都城的北城墙纬度为北纬39°54′6″,南城墙纬度为北纬39°51′40″。我们推定的前一个测影地点地理纬度北纬39°52′5″,恰在金中都城的南北城墙两条纬度线之间,更靠近南城墙。这样看来,郭守敬的前一个高表测影地点确应在金中都城内,金中都旧司天台无疑是最合适的测影地点。

由此我们认为郭守敬的前一个高表测影地点很大可能即是金中都司天台,而对金中都司天台的具体位置,我们也有一些推测。金中都司天台的具体位置,至今没有定论,前人对其有过两种推测,一认为在今白云观附近([11],页45),二认为在今右安门外东南一带[16]。元朝吴师道曾写《城外纪游诗》,其中两句“城南靡靡度阡陌,疏柳掩映连枯荷。清台突兀出天半,金光曜日如新磨。”(清台即是金中都司天台),这说明金中都司天台确在金中都城内。而中国古代司天台的位置通常设在都城的东南隅,结合我们所得的前一个测影地点的纬度值北纬39°52′5″,我们推测金中都司天台可能靠近金中都阳春门一线,根据《北京历史地图集》中的地图,我们绘制了元大都城、金中都城以及明北京城的相对位置简图(图3),并在其中标明了元太史院位置和金中都司天台的推测位置。

图3 元大都太史院与金中都司天台位置示意图

4 郭守敬测影地点的变动:从金中都城到元大都城

金朝灭北宋后,获取了北宋的诸多天文仪器、典籍和天文学人才,这使得金朝的天文历法研究实力得到加强。金朝灭北宋10年后(1137),颁行了杨级所造的《大明历》,但使用不久后,便“占候渐差”,于是命司天监赵知微重修大明历,于1181年历成。金朝颁行了两部新历法,但都是在姚舜辅(北宋人,生卒年不详)的《纪元历》基础上修改而来,并未有新的测量数据使用[17]。

元朝1215年占领金中都城,之后一直有少量人员在金中都的司天台内工作,到1260年,忽必烈登汗位,正式在当时的燕京(金中都)设立司天台官署,开展天文历法工作([14],页309—310)。1276年农历六月甲戌(7月23日),忽必烈下令更造新历,各方天文官员开始准备编订新历,这其中郭守敬主要负责天文观测工作。

按照《元史》“郭守敬传”中的记载,“自丙子年立冬后,依每日测到晷景,逐日取对,冬至前后日差同者为准”([2],页3848),说明郭守敬从1276年立冬(10月30日)开始,已经在进行圭表测影。1276年立冬到1279年春这段时间,元朝太史院司天台尚未建成,郭守敬应是在另一处地点进行的圭表测影。这个地点极有可能就是当时仍在使用的金中都司天台。

我们知道,自汉以来,中国圭表测影使用的大多是八尺表。郭守敬为了提高测影精度,别出新意,改八尺表为四丈表,并制作景符辅助测影。今天来看,这些改动是相当成功的,但郭守敬在未使用四丈高表和景符进行实测之前,并不能确定其测影的实际效果。因此,郭守敬需要通过一段时间的实测来摸清高表和景符的测影效果。

1279年农历二月忽必烈改太史局为太史院,王恂和郭守敬等人上奏请建司天台和四丈铜表,郭守敬“当帝前指陈理致,至于日晏,帝不为倦”([2],页3848)。此时郭守敬已经进行了两年有余的圭表测影,对四丈高表的测影效果也已经有清楚的了解,因此,他才有把握向忽必烈建议造四丈铜表。并且当时来看,制造四丈铜表需要消耗可观的人力和物力,郭守敬充分确定了四丈高表的测影效果之后再建议皇帝建造四丈铜表,更合常理。等到元朝太史院的司天台和四丈铜表建成后,郭守敬从金中都司天台转移到元大都太史院司天台进行圭表测影。根据上文的数据分析,至晚在1279年冬至前,郭守敬开始在太史院的司天台中进行圭表测影。

因此,在金元交替时期,郭守敬为制定《授时历》而做的圭表测影,很可能是先后在金中都城司天台和元朝太史院司天台进行的。金朝存留的旧司天台不仅是郭守敬前期测影的地点,也很可能是太史院未建成之前进行其他天文观测的场所。元朝制定天文历法,不仅吸收外来知识[18],而且对前朝的天文台址和仪器也加以充分的运用。由此可见中国古代天文学继承与发展之一斑。

猜你喜欢
影长太史
“拐弯”的影子
在平行光线照射下利用影长计算物体的高度
刀口
三周的救赎(五)
三周的救赎(四)
平行光下物高与影长问题的解法
三周的救赎(二)
太史笔
基于多元非线性优化理论的影长定位