![]()
今天是二十四节气之一的冬至。冬至与我们国家的历法一直有着很深的渊源,以现代农历为例,我们需要首先通过冬至确定农历十一月的位置,然后才能定下何时为下一个农历年的起点,即正月初一。往前追溯,冬至有可能是我们的先民最早认识到的节气之一。
中国古代历法的发展其实可以看作是半部中国古代天文学,趁冬至日的到来,逐星喵尝试用万字篇幅(约1.3万字)简单梳理了从先秦到明末的三千年中国古代历法沿革,与大家分享。考虑到中国古代历法的内容异常丰富,以下论述难免挂一漏万,大家如果对一些细枝末节感兴趣,可以进一步阅读前贤大作,如《中国天文学史大系·中国古代历法》。
总的来说,中国古代历法的发展在清代以前可以大致分为五个阶段:
先秦萌芽,汉晋南北朝奠基,隋唐两宋成熟,元登峰造极,明曲折进路。
01
先秦萌芽
中国古代历法中的一些基本元素与传统,如阴阳合历、干支纪日法、岁星纪年法、二十四节气等,在先秦时期就已经出现。
阴阳合历的传统至晚在殷商时期(公元前14世纪—前11世纪)就已经出现。根据甲骨文的有关卜辞,当时的一个月有大月和小月之分,大月30天,小月29天,偶有连大月出现。这说明当时一个月的长度是以朔望月为标准。此外还有平年和闰年的分别,平年有12个月,闰年有13个月,偶尔还有一年14个月乃至15个月的记载 。这说明当时人们虽已经有了置闰的意识,但尚未完全掌握其具体规律。
干支纪日依托六十干支实现。干支分为天干和地支,其中天干共十个,地支十二个。十天干与十二地支依次配合,就能整合成六十干支。利用六十干支,就可以形成一套以60天为周期的干支纪日法,如:第一天记为“甲子日”,第二天为“乙丑日”……第五十九天为“壬戌日”,第六十天为“癸亥日”,完成一次循环。第六十一天则是下一个循环的“甲子日”。
![]()
六十干支
从殷墟出土的甲骨文表明,至晚在公元前13世纪,即商代晚期时,干支就已被普遍应用在日常的纪日当中。目前学界一般默认干支纪日从应用之日起就不曾中断,并连续应用至今。现在我们在某些日历上仍然可以看到干支纪日法的身影:例如2022年元旦就是甲寅日,60天后的3月2日也是甲寅日。干支纪日这种连续不断的特性让我们在推断、确定古代日期时有了相对明确的参考系。
岁星纪年是一种利用行星位置标记年份的方式。五颗行星中,水星和金星距离太阳较近,时常被太阳的光芒掩盖,只有火星、木星和土星能够整夜可见,而在这三颗星之中,木星的亮度是最亮且最稳定的。经过长期观察,在春秋时期人们发现木星大约每12年就会回到原来的星空背景中,遂将木星行经的星空分为12部分,将每一部份分别命名,称为“十二次”[1],这样就可以通过记录木星所在星次进行纪年。
《国语·周语下》载有:“昔武王伐殷,岁在鹑火,月在天驷,日在析木之津,辰在斗柄,星在天鼋。星与日辰之位,皆在北维。”这段话描述了周武王伐纣期间曾经出现的各种天象,其中的鹑火、析木就属于“十二次”,“岁在鹑火”即此时岁星(木星)在鹑火星次。
![]()
《国语》书影
二十四节气也在春秋战国时期趋于完整。二十四节气中最早出现的节气当属夏至和冬至,因为这分别代表了一年当中正午日影最短和最长的时节,也可以通过感知昼夜长度的变化总结出来。而从昼夜长度变化出发也不难发展出春分、秋分的概念。《左传•僖公五年》(公元前655年)载有“凡分至启闭,必书云物“,历代学者注疏都认为这里的“分、至、启、闭”指的是春/秋分(分)、夏/冬至(至)、立春/夏(启)、立秋/冬(闭)这八个重要的节气。
![]()
《左传》书影
部分节气名称也已见于先秦文献中,如启蛰(惊蛰)、清明、大暑、白露、霜降等。成书于汉初的《淮南子•天文训》中记录了完整的二十四节气,名称与后世完全一致,因此可以推断现行二十四节气至晚在战国时期正式成型。
02
汉晋南北朝奠基
中国古代天文学中的“历法”是一个很特别的概念。在先秦时期,它与如今语境下的历法并无不同,指一种为系统记录时间流逝而发明的记时规则。不过从西汉的太初历开始,中国古代历法所涵盖的内容明显超过了我们日常熟悉的历法概念。
太初历的原始术文并未得到保留,在西汉末年,刘歆在太初历的基础上发展出三统历,《汉书•律历志中》保留了完整的三统历术文。考虑到太初历与三统历的紧密联系,可以认为太初历/三统历是中国历史上流传于世的第一部完整历法。
![]()
《汉书·律历志中》的三统历术文
从术文内容看,三统历可分为六个章节,分别是统母、纪母、五步、统术、纪术和岁术。统母和纪母章节给出了和日月五星相关的一系列基本数据,这些数据会在后面的计算中使用到;五步章节列出了五大行星在一个会合周期内的动态;统术章节给出了推算历元、节气、朔日、闰余(什么时候要置闰)、月食等与日月位置有关项目的方法;纪术章节介绍的是推求五星位置和对应时刻的算法;岁术章节包含了推算岁星纪年的方法,以及十二星次和二十八宿的星度表等资料。从三统历的内容中,我们可以发现中国古代历法所囊括的内容实际上从西汉起就已经远远超出一般意义上的“历法”,而更加接近现代意义的“天文星历”。
西汉年间的太初历和三统历奠定了中国古代历法体系的基本范式,不过在细节上有诸多待完善之处。东汉末年,一部不落窠臼的乾象历将中国古代历法水平推向了新高度,制历者刘洪也被尊为一代历算宗师。
![]()
刘洪铜像
相比后汉四分历,三统历等早期历法,乾象历有许多创新与突破,其中有三大亮点最值得关注。首先是乾象历采用了更精确的月长与年长,早期历法使用的一些天文数据并不是十分精确,例如从古六历、三统历,到后汉四分历采用的年长均为365又1/4日,月长则结合19年7闰的闰周定为29又499/940日 。两者均略大于实际的回归年与朔望月 ,如此一来随着时间推移,误差积少成多,历法会不可避免地出现所谓的“后天”现象,即预报的天象时刻晚于天象实际发生的时刻,这一结果对于以历法合天为终极追求的古人而言显然是不可接受的。刘洪在乾象历中大胆突破传统,弃用两个沿用了数百年之久的常数 ,提出以365又145/589日为一年,以29又773/1457日为一月。与旧值相比,新数值更接近实际的回归年与朔望月 ,更重要的是这一举动宣告了“祖宗之法”并非金科玉律,迈出了历法得以不断精进的第一步。
![]()
《晋书·律历志中》收录的乾象历术文
乾象历的第二个创新是站在巨人的肩膀上完成的。中国古代历法作为一种阴阳历,月份编排参考的是月相变化规律,因此需要对月球的运动有准确的认识。乾象历之前的历法关于月球的运动都按匀速运动处理,但在实际观测中已有人认识到月球的真实运动并非匀速运动。东汉时贾逵就曾提到:“梵、统以史官候注考校,月行当有迟疾……率一月移故所疾处三度,九岁九道一复”。梵、统指的是后汉四分历其中两位编制者李梵与苏统,他们不仅注意到月球运动的不均匀现象,而且给出了定量的结果——月球在天空中每运行一周,其运动最快的位置会前移三度,而这一位置大约每九年回到最开始的位置。月球绕地球公转的轨道是椭圆,因此月球和地球的距离并不固定。当月球离地球最近,位于近地点时,运动速度最快。换句话说,李梵和苏统已经发现了月球近地点进动的现象。然而后汉四分历在处理涉及月球运动的内容(例如计算交食)时,仍然将月球的运动视为匀速。
![]()
现在常说的“超级月亮”实际上是位于近地点的满月,月亮看起来比一般的满月更大︱NASA
在乾象历中,刘洪在李梵、苏统的研究基础上更进一步,首次给出了具体的近点月数值,即月球连续两次过近地点的时间间隔。刘洪称月球近地点每月的进动值为“过周分”,以周天度数加上过周分,除以月球运动的平均速度,得到一个近点月为27又3303/5969日 ,该值与实际近点月相差不到2分钟。刘洪还列出了月行迟疾表,即月球在一近点月周期内的运行动态表。对于月球相对于黄道的运动刘洪也做出了探索,例如明确提出黄白交点 退行的概念并给出定量值(刘洪称“退分”),测定月球与黄道的距离(刘洪称“月去黄道度”)等。
![]()
收录在《晋书·律历志中》的月行迟疾表
刘洪对月球运动的深入研究也引出了乾象历的第三大亮点,即对日月交食规律的进一步认识。在掌握日月食原理以前,古人对日月食的预测是通寻找交食周期完成的,例如巴比伦天文学家总结的沙罗周期。
西汉文献中开始出现关于交食周期的记述,如《史记·天官书》中有“月食凡百一十三月而复始”。刘歆在三统历明确了一个135月的交食周期,在一个周期中会出现23次月食。而在乾象历,刘洪首次从原理上给出交食发生的条件,即食限的概念。理论上当太阳与月球分别处在黄白交点时,就会发生交食。在实际推算中,日、月及地影均有一定视直径,因此即使天体稍微偏离黄白交点,亦有可能出现交食。在保证交食可能发生的前提下,允许月球偏离黄白交点的最大值 ,即为食限。
![]()
食限示意图
刘洪根据自己对月球运动的认识,推算出在朔或望时,当月球距离黄白交点14°33′以内 ,就会发生日食或月食。作为对比,现代天文学规定的日食限上限约18°,下限约15°;月食限上限约12°,下限约10°。朔/望期间,月球与黄白交点的距离大于上限值一定不发生交食,小于上限值可能发生交食,小于下限值一定发生交食。
乾象历未能在东汉时颁行,到三国孙吴时(223~280)才得以行用。虽然实际行用时间并不长,但乾象历对后世的影响力是长远的。三国时期韩翊、杨伟等人所造历法都与刘洪的乾象历术有很深的渊源,其中杨伟 的景初历自237年面世后,很快获得曹魏政权青睐并颁行,随后又在两晋时期得到继续沿用,直到南北朝时期才被更晚近的历法取代,前后行用时间长达二百余年,是中国历代少有的长寿历法。景初历之长青,自然有杨伟的才华横溢,而他正是沿着刘洪开创的道路,继续在月球运动以及交食理论方面做出了许多完善,充实与提高工作。《晋书·律历志中》的“洪术为后代推步之师表”,可以说是对刘洪治历水平及学术影响的高度概括。
南北朝诸部历法中执牛耳者,当属南朝刘宋年间的元嘉历与大明历。何承天与祖冲之分别在元嘉历 与大明历中提出了推求历法基本常数的新方法,也是两部历法的最大亮点之一。
![]()
何承天雕像︱南京六朝博物馆
何承天在确定元嘉历的历法常数时运用的新算法叫调日法。日法是中国古代天文常数以分数表示时的分母数值,最初特指朔望月长度的分母,所以调日法的字面意义就是调整朔望月长度的分母取值。在实践中,使用初级观测手段可以确定某个天文常数的大致取值,如一个朔望月约为29.53日,一个回归年约365.25日。此时如果想得到一个更为精准的取值,除了在观测手段上继续精进,还可以尝试数学方法,如调日法。运用调日法的前提是已知相关的弱率与强率,例如已知一个数大于1又3/4,小于1又4/5,那么此时3/4为弱率,4/5为强率。调日法之“调”,体现为对强弱二率的分子与分母的进行不同的加权以调制出新率(亦称中平之率)的分母和分子,权重的分配取决于强弱二率何者更接近真实值。假设强率更接近真实值(1.79),则对强率的分母赋予更高权重(如3:1),那么新率的分母为4×1+5×3=19,分子为3×1+4×3=15。相比于强弱率所属的旧取值,使用新率的取值(1又15/19)更接近真实数值。
调日法的出现使得古代得以在观测技术手段没有重大突破的前提下继续提高历法精度。现在一般认为 ,元嘉历中何承天定朔望月的日法时,以26/49为强率,9/17为弱率,对强弱二率赋予不同权重(15:1),调得新日法为752,朔望月的取值为29又399/752日。
调日法最初是针对朔望月的一种数学逼近算法,而祖冲之为推求更加准确的冬至时刻,在制订大明历时也运用了一种巧妙的数学算法。中国古代推算回归年长的一般方法是通过圭表测影获得两个相隔数年的冬至时刻,将两次冬至的时间间隔除以年数,得到年长的平均值,即回归年长。故获得准确的回归年长的前提是得知准确的冬至时刻。祖冲之以前,东汉末的刘洪在乾象历中采用了更精确的回归年长 ,可惜现存的文献中并无具体推导过程。祖冲之大明历有着堪称精密的回归年长,而他使用的方法完整呈现在了《宋书·历志》,让我们后人得以窥见其中的智慧。
![]()
祖冲之纪念邮票
利用圭表测影确定冬至时刻的方法长期以来有几个痛点,其一是影子末端并不清晰,影响影长准确数值的读取;其二是冬至日天气不总是适合测量日影;其三是太阳过冬至点的时刻不必然在正午发生。第一个痛点的解决需要对观测手段作改进,对于后两个痛点,祖冲之另辟蹊径,既然在冬至测影在客观上存在一定限制,那么测影就放在其他时间进行,再借助数学手段反推冬至时刻。具体来说,祖冲之选择了三个时间,一个(A)在冬至前,两个(B、C)在冬至后,分别测量三个时间的正午影长,通过冬至后的两个影长可以求得影长每日变化值,进而推导出与A点影长相等的时间点D。由于冬至前后的影长变化可以近似看作对称,则AD的中点即为冬至时刻。祖冲之依此原理先后求得大明五年(461年)与熹平二年(173年)的冬至时刻,得到288年间的总日数,平均一年的日数就是大明历采用的回归年长——365.2428日。
![]()
《宋书·历志》书影
何承天的调日法与祖冲之的冬至时刻算法作为一类可以有效提高历法常数精度的数学手段,不仅在他们各自制定的历法中发挥了作用,也被后世治历者吸收发展,其中冬至时刻算法直到明末西法传入以前都是测算冬至时刻的主流方法。
中国古代历法属阴阳历,需要在保证日期与月相匹配的同时让月份与季节相对应,因此需要在适当的时候插入一个月,多出一个月的年份称为闰年,这一过程即置闰。早在公元前6世纪初的春秋中期,人们就认识到19个回归年与235个朔望月的时长几乎一致,于是当时的历法采用了在19年中插入7个闰月以避免历法与季节的错位。这里的19年7闰就是一个经典的置闰周期,简称闰周。而当历算家用独立的方法分别求得更为精确的朔望月与回归年时,他们意识到两者的关系并不是一个简单的19年7闰就能概括的,如何更好地调和日月运动又重新成为一个需要讨论的问题。
何承天在制定元嘉历的过程中已经注意到19年7闰不够准确 ,不过何承天更注重历法计算的简便,认为历法可以随时修正,故并未修改这个在当时已经沿用了近千年的闰周。相比之下祖冲之希望历法“将来久用,无烦屡改”,因此各项历法数据必须精益求精——大明历最终抛弃了19年7闰,采用391年144闰的全新闰周。值得注意的是历史上第一个突破19年7闰的历法并不是祖冲之的大明历,而是北朝凉的玄始历。北凉的赵(fěi)略早于祖冲之在玄始历中采用600年221闰的闰周。玄始历于公元452年颁行,行用七十余年。
03
隋唐两宋成熟
进入隋唐时期,中国古代历法迈入了成熟阶段,在充分吸收前朝优秀历法成果的同时不忘继续改革与创新。隋唐时期前后涌现超过20部历法,并有多部为后世历算家称道的名历。元代郭守敬总结前人在历法上的成就为“创法十三家”,其中隋唐历法就独占五席。
![]()
创法十三家
中国古代历法在隋唐时期迈向成熟的一大标志是这一时期的历法在诸多方面都有所“创法”。其中关于“定朔”的讨论与接纳就是典型例子之一。朔在天文学上指日月黄经重合的时刻,也是中国古代历法中一个月的起点——实际上中国古代绝大部分历法都规定朔所在的那一天为每月初一。如发现日月合朔时刻不在朔日,就说明历法出现了偏差,而“历朔不正”正是古代历法改革的主要动机之一。那么古代的天文学家如何确定合朔时刻呢?从朔的定义出发,观测太阳和月亮黄经相等的时刻即可,但由于合朔时日月同升同落,此时几乎不可能直接观测月亮的位置,因此合朔时刻都是推算得到的。
![]()
只有发生日食时,才能看到合朔时刻的月亮︱Yuri Beletsky
早期历法普遍将日月运动视为匀速运动处理,那么只需知道某一时刻月亮和太阳的位置,就能推算出下一次日月合朔的时刻,知道了合朔时刻,也就确定了下个月的初一。后续月份的初一可以通过累加朔望月长度计算。以日月平均运动推算的合朔时刻就是平朔。中国古代天文学家很早就发现月相变化的朔望月周期平均大约是29.5日,由于每个历月的日数必须取整,那么自然会出现30天的大月和29天的小月。结合平朔法,结果便是大小月交替排布,大月略多,偶尔会出现连续两个大月。
东汉时李梵、苏统注意到月行有迟疾,揭示了月球视运动并不均匀。这也意味着用平朔法给出的合朔时刻与真实天象存在偏差,例如日食按理说只会在每月初一出现,但以平朔法计算,日食就有可能在晦日(上个月最后一天)或者初二发生。于是刘洪在乾象历的交食计算部分就考虑了月球的不均匀视运动,以求得到更为精准的日月食预测结果。考虑了月球不均匀运动的影响推算的合朔时刻称为定朔。
按照理想的情况,当学者认识到月球运动不均匀,平朔作为一种简便但粗糙的概念应当被定朔取代。但在现实中,从乾象历开始到麟德历以前,汉至唐数百年间的几乎所有历法仍然以平朔编排历日。这是因为几百年间的天文学家都放任历日与天象错位的现象不管不顾吗?实际上早在刘宋年间,何承天最初编订元嘉历时就使用了定朔编排历日,然而在朝堂之上,不少官员对这种体现科学严谨的做法表示反对,其中最显眼的声音是“不合旧法”:使用定朔排历时,在月球不均匀视运动的影响下,大小月不再是交替出现,而是可能出现连续多个大月或多个小月。
这一改变如今看来似乎无关痛痒,但和过去大小月交替充满秩序感的历谱相比,定朔法给出的历谱可以称得上是混乱不堪了,尽管后者更能反映真实天象。历法的精确无误固然是历代天文学家孜孜不倦追求的目标,但一部历法的最终样貌是各利益相关方博弈、权衡,乃至妥协的结果, 学者的意志有时并不能占据主导。在元嘉历这个例子中,何承天最终按照官方的意愿恢复了传统平朔排历。
![]()
《宋书·历志》书影
北魏张子信发现太阳视运动同样存在不均匀后,定朔相对于平朔在历算精度上的优势已是显而易见,但前者取代后者的过程在隋唐时期仍然是一波三折:刘焯的皇极历和初唐傅仁均 的戊寅元历都采用了定朔,但皇极历未获官方颁行,戊寅元历则遭遇了与当年何承天相同的困境。直到李淳风制定麟德历时在采用定朔的前提下独创了一种名为“进朔” [2]独特的规则,用于规避出现连续多个大月或小月的“问题”。至此定朔与平朔之争才算落下帷幕。
除了定朔,唐代历法相对于前代历法还有一些“违背祖训”的操作,例如取消闰周。前文我们讲述了南北朝历法对于闰周的革新,但就本质而言,不管是传统的19年7闰,还是南北朝时的600年221闰,391年144闰等,终究只是对回归年与朔望月数量关系的一个近似,两者在数值上的比例关系不可能正好等于一个分数。
在二十四节气成型前,对于在何时插入闰月的问题,19年7闰能起到有效的指导作用。当二十四节气成熟以后,天文学家注意到十二中气正好可以对应十二个历月,如第一个中气雨水对应正月,中气之一的冬至对应冬月(十一月)。
![]()
十二中气与十二历月的对应
按平气法[3] ,两个中气之间的时间间隔约为30.44天,略大于一个朔望月。经过约33个朔望月后,两者产生的偏差将会达到一个朔望月的长度,表现在历法上就是出现了一个没有中气的历月,此时中气与历月的关系被打破,如果要维持原有的对应关系,就要将这个没有中气的历月定义为闰月,以前一个历月的序号加“闰”的形式命名,如闰月的前一个月是五月,那么这个闰月就叫做闰五月。西汉制定太初历时,增加了一个“无中气置闰”的历法规则,相比闰周方案只能告知在一段时间内应该有多少个闰月,无中气置闰法已经能够准确指示何时插入闰月,可以说此时闰周已经完成了自己的历史使命。不过随后数个世纪的故事大家已经知晓,闰周并没有式微,仍有学者前赴后继尝试给出更准确的数值。对闰周的扬弃同样由李淳风完成,他敏锐地意识到尽管闰周的概念古已有之,但在无中气置闰法面前已无异于形式主义,当革故鼎新。
![]()
李淳风像
唐代历法在交食算法上亦有重要突破,郭守敬在论述创法十三家时就提到“一行造大衍历……定九服交食之异……徐昂造宣明历,始悟日食有气、刻、时三差”,郭守敬这里指的是一行在大衍历当中留下的九服食差算法以及徐昂在造宣明历时提出的日食三差。
自张子信发现了月球视差现象并作了定性描述后,历算家们很快就注意到月球视差对于交食预测的影响。以日食为例,月球视差对日食预报的影响具体体现在日食发生的时间、日食食分大小以及日食持续时间。在隋唐以前的历法中,基本上以定朔时刻作为日食食甚的时刻,进而以此时的月球位置推求日食食分以及日食持续时间等数据。由于存在月球视差,定朔时刻与实际的食甚时刻之间并不重合,而是存在一个时间差,食甚时月球的位置也不再是定朔时刻时的位置。隋唐时期的历算家们的一大课题就是寻找能够消除月球视差对交食预报影响的算法,日食三差的概念就是在这一背景下诞生的。
![]()
《新唐书·历志六上》的日食三差术文
对日食食甚时刻的修正值称为时差,对月球位置的修正值称气差与刻差,由于两者共同影响日食食分大小,故又合称食差。时差与气差概念最早在隋代大业历出现,一行结合天文大地测量的结果提出九服食差算法,通过比较各地与阳城的日中晷影,巧妙地将基于阳城计算的食差转化为各地食差,从而达到预测各地日食食分大小。唐宣明历首次奠定以时、气、刻三差修正日食推算。
![]()
在一次日食期间,不同地理位置看到的日食食分不尽相同︱NASA
两宋诸历以北宋纪元历与南宋统天历为执牛耳者,其中纪元历出自北宋历算家姚舜辅之手,他同时也是占天历的作者。姚舜辅在制历期间引用最新恒星观测数据,提出通过观测金星确定太阳方位,在历法推算中开发出简便而精密的算法,以上工作让纪元历得以成为两宋乃至10~13世纪华夏大地最有影响力的历法之一。纪元历自崇宁五年(1106)起行用,是北宋行用的第十部也是最后一部历法。
靖康之变导致北宋覆灭,纪元历术也因此不知去向,直到绍兴二年(1132)时,宋高宗才辗转寻获纪元历并重新启用,纪元历也成为南宋行用的第一部历法。此后南宋又经历了多次改历,但纪元历仍在发挥余热,常与现行历法相互参校。
统天历是南宋历算家杨忠辅的作品,行用时间仅十年(1198~1207),之所以将其与纪元历并称,一是杨忠辅在历中首创“岁实消长”概念,明确回归年的长度会随着时间推移出现变化,并给出了具体算法;二是统天历再一次挑战了中国古代历法中看似重要但对历法推算无实际帮助的上元概念,虚设而实废上元积年。元代郭守敬曾将纪元历列为创法十三家之一,郭守敬领导制定的授时历能够成为中国古代历法的一座高峰 ,宋代纪元历与统天历的影响不容忽视。
04
元登峰造极
至元十三年(1276)元军攻下南宋首都临安后,成立太史局,征召许衡,以及刘秉忠的学生王恂、郭守敬等人负责新历事宜。至元十七年(1280)冬至历法定稿,忽必烈赐名“授时历”,次年正式颁行。
![]()
忽必烈
授时历的特点可总结为“考正者七事”与“创法五事” 。具体而言,授时历以实测数据为基准订正了冬至时刻、回归年长、太阳位置、月球位置、黄白交点、二十八宿距度、日出入昼夜时刻等七类天文常数,并重新设计了太阳不均匀视运动、月球不均匀视运动、黄赤道差、黄赤道内外度、白道交周等五项内容的算法。严格来说,以上这些工作不过是让授时历拿到了迈入了优秀历法行列的入场券,真正让授时历成为中国传统历法最高峰的,是以下几项改革与创新。
授时历相比前代历法的一项重要变化是对上元概念的扬弃,改用实测历元。一部历法的推算起点称为历元,依据定义历元又可细分为上元,近距历元与实测历元。其中上元通常意味着是甲子日午夜,同时日月五星皆位于冬至点。古人认为这代表了宇宙混沌初开的状态,因此历来备受推崇与重视,大部分中国古代历法选取的历算起点都是上元。在现实中,完全符合条件的上元不会存在,此外推求上元所需计算量巨大,因此唐初就有历算家尝试摆脱推求上元的桎梏:傅仁均的戊寅元历曾一度采用实测历元(618年为戊寅年,戊寅元历由此得名),但不敌上元法论者的攻击,不得不重新回归上元。唐中晚期曹士的符天历以显庆五年(660)为历元,使用了近距历元,不过符天历只在民间流行,不属官方历法。
到南宋时期的统天历时,杨忠辅表面上选取了一个甲子年冬至日作为“演纪上元”,但这一年的冬至日并非甲子日,更没有出现日月五星共聚的天象。在具体推算时,统天历也不用“演纪上元”作为统一的起点,各项数据有各自的实际推算起点。虚设上元的做法免去了计算上元过程中庞大而无用的计算量,还有助于提高有关历法问题计算的精确度。然而杨忠辅在统天历中对上元传统阳奉阴违的做法遭受了诸多批评,统天历本身行用仅八年便遭取代。授时历沿袭了统天历的做法,取至元十八年(1281)冬至为历元,给出各天文数据周期起点与历元的时间差,如气应(冬至距前一个甲子夜半的时间)、闰应(冬至距十一月平合朔的时间)、转应(冬至距月过近地点的时间)、交应(冬至距月过黄白降交点的时间)等。自唐初起六百余年后,授时历终于成功应用了实测历元法,实现了前代部分历家的历元理论。
![]()
《元史·历志二》中有关授时历使用实测历元的记载
对于历法计算中相关数学算法,授时历也进行了更新,最具代表性的要数高次招差术和弧矢割圆术。招差术是一种中国古代历算家计算任意时刻日月五星位置时采用的代数方法,按照精度一般可分为线性内插法,二次差内插法,三次差内插法等。使用最基础的线性内插法时,拟合出来的日月五星视运动只能是匀速运动,与实际天象偏差较多。隋唐时期的历算家如刘焯、一行等在推导天体位置时引入二次修正项,出现二次差内插法,此时可以拟合出天体的匀加速或匀减速视运动,使得这一时期有关日月五星位置的推算精度提升了一个台阶。辽金两宋时期,部分历法在处理太阳运动时已尝试引入三次修正项,构造出三次差内插法,拟合出太阳的变加速/减速视运动。到元代授时历时,日月五星的位置推算普遍使用三次差内插法,时称平立定三差法,具体形式为F(x)=ax+bx²+cx³,其中a、b、c均为常数,分别称为定差、平差和立差。
![]()
招差术算法演进过程
弧矢割圆术是授时历中进行黄、赤、白道坐标计算与变换时运用的一种算法,不使用三角函数,而是结合勾股定理与会圆术求解球面三角。所谓会圆术是北宋沈括提出的一种借助弦长、矢高等已知量计算一段弧长的算法,在一个公式中描述了圆的弧、弦、径、矢之间的关系。沈括在《梦溪笔谈》中没有给出公式的推导过程,一般认为沈括是根据《九章算术》中的弧田术(弓形面积近似公式)得到了弧长公式。
授时历集合了前代各家历法的优点于一身,可谓集大成之作,不愧为中国传统历法的最高峰。授时历自1281年起一直行用至1367年元朝灭亡。朱元璋称帝后,明代施行的历法名为大统历,而其内涵基本沿袭授时历。可以说授时历在明代又以“大统历”的身份继续行用了3个多世纪,累计施行近400年,是使用时间最长的中国古代历法。
05
明曲折之路
元代末年,民变四起,身为后来大明开国皇帝的朱元璋自然是其中的主要势力。在朱元璋看来,能在众多反元势力中脱颖而出,自己对于天象观测的重视起到了相当的作用,特别是对相关天象星占学意义的解读。朱元璋时常依据天象占验的结果进行军事部署,考虑到一部分天象可以事先推算,为了占得先机,朱元璋自然也对历法推算的准确性相当重视。
![]()
明太祖朱元璋
称帝以后,朱元璋沿袭元代的做法,设立回回司天监,同时招募回回天文学家至南京翻译阿拉伯天文历法。当明初漏刻博士元统上书称授时历法渐差天度需要做出必要的修正时,朱元璋立马将他提拔为钦天监监正并负责修历。洪武十七年(1384),《大统历法通轨》(下称《通轨》)面世,成为明代历法推算的基础。我们一般认为大统历就是授时历,因为《通轨》是一部基于授时历框架的作品。但细究起来,两者在具体使用的天文常数以及算法上存在区别。另外《通轨》有着更为浓厚的实用色彩。元统编写《通轨》时特意根据公式事先编算好立成表,通过查表法进行计算,从而简化了计算过程。中国古代历法推算通常用两种方法,一种是直接代入原始公式计算,是为公式法;另一种则是根据原始公式事先编算好一份算表,具体计算是通过查表的方式得到结果,提前制作的算表称“立成”,故后一种方法也称立成法。立成表在历法推算中起到的作用可以类比电子计算机出现以前流行的计算尺,两者都可以大幅简化运算过程,提高效率。立成表并非元统的创造,唐大衍历以后的历法在推算时大都使用了立成法,不同之处在于元统在《通轨》中对立成法的运用更为彻底,不仅把大量符合条件的公式转换为立成表,还将计算过程改造成类似填写表格的方式,进一步降低历法推算难度。使用者只需按照表格所示的步骤,将每步计算的结果填入表格中指定的位置,就可以逐步完成全套计算。
![]()
元统《大统历法通轨》︱韩国首尔大学奎章阁图书馆藏
元统对授时历的一番改造是有成效的,《通轨》在明初对于交食预测精度要高于原来的授时历。然而隐去原始公式完全依赖查表填表的方法固然降低了历法推算的门槛,但钦天监的传人们逐渐只知其然不知其所以然,不能充分领悟立成表背后的历法原理。这一隐患在一个世纪后开始显现:从15世纪中期起,大统历的推算开始产生可观的误差,钦天监对此看似无所作为,实则有心无力。
从成化年间(1465~1487)至万历年间(1573~1620),两个世纪不到的时间里由于历法推算出现误差产生了不下十余次的改历呼声,而这一时期官方多以“当今历法已至精至密”、“无通博之才不可擅议历法”等理由屡次驳回这些改历的奏请。官方历算界长期依赖便捷算法导致对历法的理解退化,能力不足的现状自然会孕育墨守成规的想法,从而进一步强化历算领域长期以来存在的崇古之见,改历之事无疑阻力重重。隆庆年间(1567~1572)负责重刊《大明大统历法》的周相就感叹,如今严格依据世代相传的历法规章行事,仍会担心推算不够周详以致失职,还谈何改变旧制,另创新法呢?套用某个已经过气的流行语就是“光是活着就已经竭尽全力了”。
![]()
弘治年间礼部对某次改历奏请的回复︱《礼部志稿·卷九十七》
到万历年间,有关改历的讨论已不是单纯的是否改,而是如何改,以及由谁牵头改。期间影响较大的改历推手有明代宗室朱载堉 与布衣学者邢云路 ,同一时期西方传教士开始进入中国传教,他们敏锐地捕捉到官方的改历需求以及上层人士对于欧洲科技的兴趣,开始有意识地将西方天文学体系引入中国以换取达官要人们的信任。
崇祯二年(1629)的一次日食成为明代改历的关键节点。这一次日食发生以前,崇祯皇帝眼前有三份预报,分别来自大统历,回回历法以及“新法”。所谓“新法”即当时由欧洲传教士带来的西方天文学方法,这一次日食“新法”的相关推算由徐光启完成。在日食结束后,崇祯决定让时任礼部左侍郎的徐光启 组织成立历局负责改历事宜 。
![]()
1629年6月21日日全食,北京可见食分0.167的偏食︱NASA
徐光启对西方的了解主要来自来华传教的耶稣会士利玛窦。透过利玛窦,徐光启不仅了解到来自西方的天主教,也让他认识到当时的欧洲科学技术要比明朝的水平更上一层楼,因此萌生了学习西学的念头。利玛窦希望结识更多士大夫以便完成传教的任务,而徐光启则看中了跟随着传教士一同到来的西方科技知识,两人虽抱着不同目的,却一拍即合。1603年,徐光启受洗加入天主教会。1604年中进士入翰林后,徐光启得以有更多时间与当时已定居北京的利玛窦交流学习,共同探讨天文、地理、数学、水利等学问。
![]()
位于上海徐汇区的徐光启雕像
徐光启虽推崇西学,但没有打算不加思考地吸收西学,而是设计了一条“会通超胜”的路线:“欲求超胜,必须会通;会通之前,先须翻译”。徐光启引入西学的最终目的是要让中学超越西学,是谓“超胜”;而想要达成这一目标,就要将西学中的知识与中国的学术传统相结合,也就是“会通”;在此之前,则需要充分理解西学知识,故“翻译”是万里长征的第一步。“翻译”这一步,他与耶稣会士利玛窦合译的《几何原本》前六卷就是最好的例证。至于“会通”,徐光启在崇祯授意下主持编订的《崇祯历书》是结合当时客观实际的一次实践。徐光启提出了“熔彼方之材质,入大统之形模”的改历方针,所谓“彼方之材质”指的是西方天文学的基本理论和方法,而“大统之形模”则是指以大统历为代表的中国传统历法形制,可以说徐光启是借助了改历的契机将自己“中西会通”的思想付诸实践。
![]()
利玛窦
《崇祯历书》中主要采纳了第谷的宇宙体系作为理论框架,而实际上全书参考的内容并不限于第谷的相关著作,还包括了托勒密、开普勒、哥白尼、伽利略等人的作品。徐光启在编修历法之初就定下了历书的总体框架,从理论层次看可分为基本五目(法原、法数、法算、法器、会通),按具体内容则可划为节次六目(日躔历、恒星历、月离历、日月交会历、五纬星历、五星交会历)。基本五目中徐光启认为最基本同时中国传统历法中最欠缺的是“法原”(基本天文学原理与理论),《崇祯历书》共137卷,其中法原部分共计四十余卷,占全书约1/3的篇幅,当中着重阐述了托勒密、哥白尼与第谷的理论工作。
![]()
现代重新汇编出版的《崇祯历书》书影
徐光启希望藉此次改历从根本上提高中国的天文学乃至整个科学技术的水平,具体是将改历当中取得的天文与数学成果加以推广,应用到其他领域,如气象、水利、乐律、军事、财务、建筑、地理、医疗等,最终惠及国计民生的方方面面,以完成最后对西方的“超胜”。不过徐光启没能走到“超胜”这一步,他甚至没能看到《崇祯历书》这部“会通”之作的完工。1633年11月8日徐光启与世长辞,临终前他举荐李天经接替他在历局的工作,继续主持《崇祯历书》的编纂。1635年1月2日(崇祯七年十二月初三),李天经向皇帝进呈了第五批,也是最后一批历书,此时可以认为新历书已经修竣。但直到1644年时,崇祯帝仍未下定决心颁行新历,而此时明朝气运已尽。满清入关后,原在历局工作的传教士汤若望借花献佛,将《崇祯历书》删改为103卷,连同所编的新历本一起进呈清廷,得到颁行。新历定名为《时宪历》。删改的《崇祯历书》改称为《西洋新法历书》。
![]()
《西洋新法历书》书影
参考&拓展
[1]十二次规定冬至点所在次为星纪,冬至点位于星纪正中,星纪向东依次为玄枵(xiāo)、娵(jū)訾(zī)、降娄、大梁、实沈、鹑首、鹑火、鹑尾、寿星、大火、析(xī)木。
[2]进朔是使用定朔的前提下,为避免出现连续四个大月或三个小月而人为规定的历法规则。最早由李淳风修麟德历时提出,此后诸历多采用之,具体进朔方法略有区别。大衍历的作者一行虽已指出进朔无此必要,但仍沿循其法。宋代周琮也曾表示进朔法有违自然规律,但也仅限议论并未有所改革。元授时历彻底废除了进朔。
[3]平气是确定二十四节气位置的一种方法,与之相对的概念是定气。平气规定两两节气之间的时间间隔相等,相当于把一个回归年24等分;而定气规定两两节气之间太阳在黄道上运动的距离相等,相当于将黄道24等分。在张子信发现太阳视运动不均匀现象以前,通过两种方法得到的二十四节气位置没有区别。
往期热门
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.