历史年代

公元581年,总揽北周军政大权的杨坚迫使周静帝宇文阐(即宇文衍)让位,建立隋朝,年号开皇。开皇九年(589),隋灭陈,结束了西晋灭亡以来二百七十余年的分裂局面。

武德元年(618)三月,隋炀帝在江都被杀。五月,李渊在长安逼隋代王杨侑退位,自己做了皇帝,改国号称唐,年号武德。天祐元年(904),朱全忠迫使唐昭宗迁都洛阳,不久,朱全忠杀昭宗,另立昭宗子李祚(即李柷)为帝,是为哀帝。开平元年(907),朱全忠废哀帝,自立为帝,另建梁朝,遂开始了五代的历史。

隋自公元581年建立,到618年灭亡,历时凡三十七年。唐自公元618年取代隋朝,到907年灭亡,历时凡二百八十九年。

历法

隋唐两代制定的历法很多,隋有《开皇历》、《皇极历》,唐有《戊寅历》、《麟德历》、《光宅历》、《景龙历》、《大衍历》、《至德历》、《五纪历》、《正元历》、《观象历》等。其中以《皇极历》、《戊寅历》、《麟德历》、《大衍历》的科学价值较高,也有较大的影响。

皇极历

《皇极历》为隋刘焯所制定。刘焯,信都(今河北冀县)人,他聪明好学,是个博学之士,当时有人认为他是“数百年已来,博学通儒,无能出其右者”。他写《历书》10 卷,所制定的《皇极历》是当时最好的历法。刘焯的创见很多,例如,他算出的岁差数值最精确。什么是岁差数值?按照天体运行的规律,地球绕太阳一周是一年。但准确地说,这一个冬至点到下一个冬至点的位置是有变化的,冬至点在黄道(从地球上看太阳一年在天空移动一圈,实际上地球绕太阳一圈,人们看到的太阳移动路线就叫黄道)上大约每年西移50.2秒,就71年8个月差一度。这种冬至点在黄道上的移动距离就是岁差数值。

晋代以前,我国天文学家还不知道有岁差存在。晋成帝(325 —342在位)时,虞喜第一次提出,50年冬至点西移一度。南北朝时,祖冲之首先在历法中考虑到岁差,但他认为45年11个月岁差一度。到了隋代,刘焯在历法中使用75年差一度的岁差数值。这与准确的岁差数值已经非常接近。当时,西方还是沿用100年差一度的数值,可见刘焯的《皇极历》是先进的。

刘焯的另一贡献,是在《皇极历》中采用了定朔的方法。

定朔是针对平朔而言。月亮绕地球运行的轨道是椭圆形的,当月亮运行到近地点时速度最快,到远地点时速度最慢。由于运行的速度有变化,由这一个朔日到下一个朔日也不是固定的。有时长达29天19小时多,有时则仅有29天6小时多,其平均长度为29天12小时44分03秒。根据这个平均数来决定朔日即为平朔。当然,古代并没有把数字推算得如此准确。

朔日这一天的特点,是月球和太阳的黄经相等,也就是日、月几乎是同时出没。用平朔法决定朔日和这种实际情况不完全一致。于是,南朝刘宋时何承天撰《元嘉历》就主张用定朔法决定朔日,也就是把日、月黄经相等时,即日、月同时出没这一天定为朔日。但由于定朔法可能导致四个大月相连和三个小月相连的情况,遂遭人反对而未实行。

刘焯继承了何承天、祖冲之等人的先进思想,制定《皇极历》时采用了定朔法,考虑了祖冲之的岁差法。同时,还创用一种内插法,也就是计算定朔的校正数的方法。

刘焯的各种成就,使《皇极历》的科学程度大有提高,虽因太史令张胄玄的反对而未被采用,但其科学价值是不容忽视的。

戊寅历

《戊寅历》为道士傅仁均所制定。傅仁均,滑州白马(今河南滑县)人。因他“善历算、推步之术”,武德初年由太史令庾俭、太史丞傅奕推荐,被高祖召令改修旧历。他向高祖上疏,指出旧历的缺点很多。例如,日蚀或在月末或在月初,不在朔日;月蚀或在望日前或在望日后,不在望日。还有月末月亮在东,朔日月亮在西。这都是采用平朔法制历的结果。为改正这些缺点,他用定朔法制定《戊寅历》。他的历书,虽然遭到中书令封德彝、吏部郎中祖孝孙、太史丞王孝通等人的反对,但他据理力争,最后公布实行。这是中国古代第一部由朝廷颁布的采用定朔法的历法。采用定朔法,虽然比较准确地反映了太阳、月亮、地球之间的关系,但由于连续出现大月或小月的问题没有解决,贞观十九年(645),还连续出现四个大月。于是,平朔法又取代了定朔法。到麟德二年(665),高宗又颁行了《麟德历》。

麟德历

《麟德历》为李淳风所制定。李淳风,岐州雍(今陕西凤翔)人,他“博涉群书,尤明天文、历算、阴阳之学”。贞观十五年(641)为太常博士,不久又为太史丞。贞观二十二年(648)迁太史令。他参与过《晋书》及《五代史》(《梁书》、《陈书》、《北齐书》、《周书》、《隋书》)的编写,其中的《天文》、《律历》、《五行志》,都是他撰写的。

贞观十九年(645)以后,由于《戊寅历》中存在的问题不易解决,另外制定新历就成了社会的必然要求。龙朔年间(661—663),李淳风参考刘焯的《皇极历》,另撰新历,于麟德二年(665)颁布施行,故称《麟德历》。

《麟德历》也采用定朔法,但李淳风用变通调整的办法,解决了四个大月或三个小月连续出现的问题。例如,把朔日提前一天,使第四个大月成为小月;把朔日推迟一天,使第三个小月成为大月。这样一来,反对派就失去了指责定朔法的口实。这种变通调整的办法一直沿用到元朝。

在计算方法方面,李淳风简化了计算过程。他废除了古历中用章(19年7闰月为一章)、蔀(四章为一蔀)、纪(二十蔀为一纪)、元(三纪为一元)的计算,并以1340为各种天体运动周期(如回归年、朔望月等)的奇零部分的公分母,大大简化了计算步骤。同时,还废除了闰周(闰月的周期),完全由观测和统计来求得回归年和朔望月的长度。

《麟德历》在当时得到了好评,被认为是较精密的历法。从此以后,定朔法一直在历法中沿用下来。

大衍历

《大衍历》为僧人一行所制定。一行,本名张遂,魏州昌乐(今河南南乐)人。他聪敏好学,“博览经史,尤精历象、阴阳、五行之学”。当时就有人把他和孔子的高足颜回相提并论,是一位有名的学者。武则天侄武三思慕其学行,想与其交友,他遂出家为僧隐于嵩山。后来,又到荆州当阳山学习梵律。开元五年(717),玄宗强征其至京,“访以安国抚人之道”。由于《麟德历》在行用过程中常有误差,故玄宗于开元九年(721)命一行“考前代诸家历法,改撰新历”。一行就是在这种情况下制定《大衍历》的。

一行为编制新历做了很多准备工作。他组织了一批天文学工作者进行观测,取得了一系列关于日、月、星辰运动的第一手资料,发现了恒星的位置与汉代相比较,有了相当的变化。于是,他废除了沿用八百多年的二十八宿的相距度数,重新测定二十八宿的相距度数。这样,必然提高新历的精确程度。

为了取得可信的资料,他在全国选择了几个观测点,利用他发明的测量仪器“复矩图”进行测量。在他的组织领导下,南宫说等人在河南的白马(今河南滑县)、浚仪(今河南开封)、扶沟(今河南扶沟)、上蔡(今河南上蔡)等四个地方的测量最重要。这四个地方相距不远,大体上处于南北一条线上,这里的测量取得了重要成果。一行还测量了子午线一度的长度。根据实测,南北两地相差351里80步(相当于今制129.22公里),北极高度相差一度,这就是子午线一度的长度。这个数值,与现在实测所得数一度长111.2公里比较,虽然还有差距,但在世界上他最早用科学方法测量子午线。

开元十五年(727),《大衍历》修成,年仅四十五岁的一行于当年去世,玄宗赐谥曰大慧禅师。开元十七年(729),根据《大衍历》编纂的历书颁行全国。开元二十一年(733)又传入日本。

《大衍历》以刘焯的《皇极历》为基础,并加以发展。例如,他指出刘焯对于太阳运动规律的认识是错误的。刘焯认为:春分前一天太阳运动的速度最快,后一天运动的速度最慢;秋分前一天太阳运动的速度最慢,后一天运动的速度最快。一行指出“其说非是”。一行认为:冬至太阳运动的速度最快,夏至太阳运动的速度最慢,这是“自然之数也”。事实证明,一行的看法是正确的,他纠正了刘焯的错误。

《大衍历》颁行后,曾遭到天竺历数家瞿昙罗的反对。瞿昙罗在高宗时曾制定经纬历,与《麟德历》参照实行;武则天时又作《光宅历》,未成而罢。由于他未能参与《大衍历》的制定,心怀不满,遂上疏玄宗,指责《大衍历》沿袭了他从天竺介绍到中国来的《九执历》,而且还不完备。经过太史令的认真比较,《大衍历》优于《九执历》。这说明《大衍历》的科学水平是很高的。宋代史学家认为:“自太初(前104—前101)至麟德(664—665),历有二十三家,与天虽近而未密也。至一行,密矣,其倚数立法固无以易也。后世虽有改作者,皆依仿而已”。这个评价,也说明《大衍历》是有其重要历史地位的。