中國通史(第六卷) · 第一章年代與曆法

第一節歷史年代 公元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),歷有二十三家,與天雖近而未密也。至一行,密矣,其倚數立法固無以易也。後世雖有改作者,皆依仿而已」②。這個評價,也說明《大衍曆》是有其重要歷史地位的。 ①《舊唐書》卷一九一《一行傳》。 ①《新唐書》卷二七下《歷志》三下。 ②《新唐書》卷二七上《歷志》三上。