滕艷輝
(西北大學(xué) 數(shù)學(xué)與科學(xué)史研究中心,西安 710127)
唐 泉
(咸陽(yáng)師范學(xué)院 數(shù)學(xué)與信息科學(xué)學(xué)院,陜西 咸陽(yáng) 712000;西北大學(xué) 中國(guó)思想文化研究所,西安 710069)
在《開(kāi)禧歷》行用其間,近地點(diǎn)平黃經(jīng)最小值為269°20'41″,最大值為270°4'54″,可得τ的最大值為0.66°,最小值為0°。于是用式(7)減去式(8),得到近地點(diǎn)誤差δτ近似公式,其形式仍然是分段二次函數(shù)。根據(jù)其周期性及二次函數(shù)的性質(zhì),易知其最值出現(xiàn)在x=(180-τ/2)和x=(360-τ/2)時(shí)。計(jì)算可得,《開(kāi)禧歷》近地點(diǎn)誤差最大值是當(dāng)x=359.77°時(shí),δτ=36.1179,約合 3 分鐘;最小值是當(dāng) x=179.77°時(shí),δτ= -36.1179??梢?jiàn),近地點(diǎn)與冬至點(diǎn)的不重合對(duì)定朔結(jié)果的影響是較小的。從式(7)的形式上也可以看出當(dāng)太陽(yáng)中心差按周期變化時(shí),近地點(diǎn)誤差也按其周期變化。它是包含在日月改正數(shù)誤差之中的。
“朔”是中國(guó)古代歷法基本元素之一。人們最早通過(guò)平朔來(lái)推算朔日,但隨著對(duì)天文現(xiàn)象的長(zhǎng)期觀(guān)測(cè),發(fā)現(xiàn)依照平朔方法所編排的歷譜用來(lái)計(jì)算日月位置以及日月食越來(lái)越不能滿(mǎn)足人們生產(chǎn)生活和祭祀占卜的需要。為了提高精度,古人對(duì)平朔進(jìn)行日月不均勻性的修正,試圖得到真正的朔——定朔。唐代《麟德歷》之后的歷法,都要給出計(jì)算定朔的算法[1]。
對(duì)定朔的研究,不僅使我們能夠了解中國(guó)古代的定朔算法是什么,還具有更重要的意義。通過(guò)對(duì)歷法中定朔的恢復(fù)和比較,有助于再現(xiàn)古代歷法的精度情況及實(shí)用程度,還可以梳理出古代歷法在推朔精度上的變化與演進(jìn)過(guò)程,若與同時(shí)期其他各文明的精度相比,又可以為客觀(guān)評(píng)價(jià)中國(guó)歷代各部歷法在歷法史上的地位提供重要依據(jù)。日月食的精度很早就受到天文學(xué)家和天文史家的關(guān)注,但至今沒(méi)能從數(shù)學(xué)的角度給出中國(guó)古代日月食誤差產(chǎn)生的根源。計(jì)算定朔是計(jì)算日月食的前提,其精度會(huì)直接影響日月食的精度[2—3]。搞清定朔精度及誤差產(chǎn)生的根源,得出其在日月食計(jì)算上的影響,將會(huì)為中國(guó)古代日月食理論及相關(guān)研究提供有用的資料和依據(jù),并為古代天象記錄的恢復(fù)及其在天文學(xué)和地球科學(xué)中的應(yīng)用提供線(xiàn)索[4—5]。
對(duì)定朔算法及其相關(guān)的研究,引起了一些研究者的高度關(guān)注,并做出了重要的工作[6—12]。然而,由于定朔算法被認(rèn)為是中國(guó)古代歷法中最簡(jiǎn)單的算法之一,沒(méi)能使得很多學(xué)者做更深入的研究,在許多地方仍需要有意義的補(bǔ)充。
本文的主旨,是在前人研究工作的基礎(chǔ)上,選擇宋代最具代表性的歷法——《開(kāi)禧歷》,完全依照其推算定朔的過(guò)程,編制計(jì)算機(jī)軟件。計(jì)算出《開(kāi)禧歷》行用期間任意一個(gè)月份的定朔時(shí)刻,然后與理論值相比較,統(tǒng)計(jì)分析其推算定朔的精度。計(jì)算結(jié)果中包含有定朔所在日干支及具體時(shí)刻信息。比較分析定朔算法理論模型及歷法中的定朔算法,結(jié)合精度,對(duì)其誤差的來(lái)源進(jìn)行探討,找出影響定朔推算誤差的根源所在,進(jìn)而對(duì)中國(guó)傳統(tǒng)歷法中的定朔模型做更深入的評(píng)價(jià)。
按照古代歷法中的思路而建立的定朔算法理論模型由藪內(nèi)清給出[6],其表達(dá)式如式(1):
式(1)中Tr為定朔時(shí)刻,Tp為平朔時(shí)刻為太陽(yáng)改正數(shù)為月亮改正數(shù),cs為太陽(yáng)中心差,而cm則為月亮中心差的相反數(shù)。
中國(guó)古代的定朔算法在宋代已經(jīng)發(fā)展完善,《開(kāi)禧歷》的定朔算法與主流算法一致,其算法的基本模型是[9]:
《開(kāi)禧歷》是南宋行用時(shí)間最長(zhǎng)的歷法,行用45年[13]。嚴(yán)格按照《開(kāi)禧歷》推算定朔的過(guò)程編寫(xiě)計(jì)算機(jī)程序,并依據(jù)其有關(guān)常數(shù)與數(shù)表,可以推算任意一個(gè)定朔時(shí)刻?,F(xiàn)代天文學(xué)計(jì)算定朔的方法是迭代法,通過(guò)三次至五次迭代即能得到很精確的定朔時(shí)刻,因此可以將現(xiàn)代計(jì)算值看做是真實(shí)的定朔值,即理論值。由于用現(xiàn)在的天文引數(shù)去計(jì)算1000多年前的天文數(shù)值,要考慮到地球自轉(zhuǎn)的影響,不同人的計(jì)算結(jié)果會(huì)有些差異,這里采用張培瑜《三千五百年歷日天象》[14]中“合朔滿(mǎn)月表”所給出的定朔數(shù)據(jù)。
考慮到利用古代歷法計(jì)算出的定朔值是以當(dāng)時(shí)帝都或觀(guān)測(cè)臺(tái)所在的位置為標(biāo)準(zhǔn)的,而張培瑜推算的定朔值采用的是北京時(shí)間,即120°E的地方時(shí)。為了方便比較,需將所得的定朔時(shí)刻轉(zhuǎn)化成依北京時(shí)間所表示的時(shí)刻。我們推算了《開(kāi)禧歷》行用期間的所有定朔,將其轉(zhuǎn)化為北京時(shí)間,并與用現(xiàn)代天文方法計(jì)算所得的理論值做比較,得到《開(kāi)禧歷》任意一個(gè)定朔的推算誤差。
在其545次定朔推算中,誤差在0.5小時(shí)以下的400次,占73.39%;在1小時(shí)以上的僅有16次,而在0.25小時(shí)以下的卻有250次,占到了45%以上;沒(méi)有大于2小時(shí)的失誤推算。誤差的最大值為1.8279小時(shí),出現(xiàn)在1211年4月15日這次定朔的推算中。該日入芒種氣13日,其下胐朒定數(shù)是-1774.842;入轉(zhuǎn)日是2日,入轉(zhuǎn)胐朒定數(shù)為-2964.45。其誤差平均值為0.1443小時(shí),約合9分鐘;誤差絕對(duì)值的平均值也達(dá)到了0.3510小時(shí),約合21分鐘,僅比《授時(shí)歷》的18.4分鐘多了不到3分鐘。它把我國(guó)古代推算定朔的精度又向前推進(jìn)了一步。《開(kāi)禧歷》推朔誤差的分布情況如圖1所示。
圖1 《開(kāi)禧歷》定朔推算誤差圖
在誤差統(tǒng)計(jì)中,可以得到一條擬合直線(xiàn),能夠從整體上反映《開(kāi)禧歷》推算定朔精度隨時(shí)間的變化情況。直線(xiàn)的截距可以代表歷法推算誤差的初始精度,斜率則反映出歷法隨時(shí)間推移精度逐漸下降的趨勢(shì)。經(jīng)計(jì)算,其推朔精度每年降低4.5秒左右?!堕_(kāi)禧歷》行用45年,仍能保持這樣的高精度,單從推算定朔方面,可以說(shuō)它是南宋最好的歷法。為了更直觀(guān)反映《開(kāi)禧歷》行用期間(1208—1251年)定朔誤差逐年的變化趨勢(shì),我們?nèi)∶磕暾`差的平均值和絕對(duì)值的平均值,其分布情況如圖2所示。
圖2 《開(kāi)禧歷》定朔誤差逐年變化圖
《開(kāi)禧歷》大于0.5小時(shí)的定朔誤差絕大部分以正值出現(xiàn),說(shuō)明其定朔推算先于實(shí)際合朔時(shí)刻。而且大部分定朔的入轉(zhuǎn)日在二十一日至二十七日之間,說(shuō)明其定朔算法在此時(shí)所做的調(diào)整過(guò)大,此時(shí)的月亮實(shí)際速度小于《開(kāi)禧歷》調(diào)整后的速度;而此時(shí)的太陽(yáng)又大都運(yùn)行至春分點(diǎn)與夏至點(diǎn)之間,其大于0.5小時(shí)的145次誤差中有43次是在此其間。這種誤差在隨著歷法行用時(shí)間的增長(zhǎng)呈現(xiàn)出更加密集和放大的趨勢(shì)。
定朔誤差會(huì)直接影響到日月食的推算。產(chǎn)生誤差的因素除去觀(guān)測(cè)本身的影響外,便是對(duì)基本天文常數(shù)進(jìn)行的調(diào)整和推朔模型本身。觀(guān)測(cè)的誤差又與當(dāng)時(shí)的技術(shù)水平與設(shè)備精度密切相關(guān),不是我們所討論的范圍,而對(duì)模型本身所產(chǎn)生的誤差進(jìn)行討論是必要的。
由式(2)可知,定朔計(jì)算的誤差來(lái)源于以下三項(xiàng):推算經(jīng)朔所產(chǎn)生的誤差,記為δ0;太陽(yáng)改正數(shù)的計(jì)算誤差,記為δ1;月亮改正數(shù)的計(jì)算誤差,記為δ2。將式(2)與理論模型式(1)比較,即得定朔誤差δ,
式(1)中,如果cs、cm、vs和vm分別表示任意時(shí)刻太陽(yáng)中心差、月亮中心差、太陽(yáng)的速度和月亮的速度,則定朔可以精確的求出。根據(jù)紐康公式,給定任意時(shí)刻,上述四個(gè)參數(shù)亦可方便的求出,即日月改正數(shù)是關(guān)于時(shí)間的函數(shù),這樣,最終求出的定朔結(jié)果與用現(xiàn)代天文學(xué)中的迭代算法所求得的定朔值是一致的。
對(duì)于經(jīng)朔誤差δ0,它只與朔望月的長(zhǎng)度和經(jīng)朔起算點(diǎn)有關(guān)。根據(jù)計(jì)算經(jīng)朔的算法,如果計(jì)算的結(jié)果大于60,則要用60減之,因此經(jīng)朔計(jì)算結(jié)果的取值范圍在0到60之間;當(dāng)用歷法計(jì)算的經(jīng)朔值減去理論的經(jīng)朔值時(shí),如果其誤差大于一個(gè)朔望月,則要減去一個(gè)朔望月。這樣,經(jīng)朔誤差在計(jì)算過(guò)程中會(huì)被抵消掉一部分,即以不同的經(jīng)朔起算點(diǎn),不同的朔望月長(zhǎng)度計(jì)算得到的經(jīng)朔,其誤差會(huì)保持在一個(gè)朔望月之內(nèi)。因此,經(jīng)朔誤差δ0在理論上是一個(gè)周期函數(shù)。其誤差周期只與朔望月的精度有關(guān),設(shè)理論上的朔望月的長(zhǎng)度為u*,歷法中的朔望月長(zhǎng)度為u,則其周期T0可近似表示成
但這個(gè)周期是相當(dāng)長(zhǎng)的,在宋代,朔望月的精度在1秒以下,這個(gè)周期都會(huì)達(dá)到幾百萬(wàn)年。因此,在對(duì)歷法精度分析時(shí),經(jīng)朔誤差可以近似為一常數(shù),當(dāng)作系統(tǒng)誤差處理。
考慮到式(2)中的日月改正數(shù)Δs和Δm是關(guān)于日月中心差的函數(shù),而中心差又是關(guān)于時(shí)間的函數(shù),這樣可以認(rèn)為日月改正數(shù)之和也是關(guān)于時(shí)間的函數(shù),即任給定一個(gè)時(shí)間,都可以得到一個(gè)改正數(shù)值。又太陽(yáng)改正數(shù)Δs是以回歸年為周期的函數(shù),月亮改正數(shù)Δm是以近點(diǎn)月為周期的函數(shù),則它們的和也是一個(gè)周期函數(shù)。因這個(gè)周期的真實(shí)值相當(dāng)大,在實(shí)際應(yīng)用中,根據(jù)需要,利用回歸年與近點(diǎn)月的連分?jǐn)?shù)展開(kāi),取其漸近分?jǐn)?shù),得到不同精度的準(zhǔn)周期T1。
理論模型中的日月改正數(shù)Δs和Δm,如果忽略其長(zhǎng)周期及不規(guī)則擾動(dòng)項(xiàng),則其和Δs+Δm也是關(guān)于時(shí)間的一元周期函數(shù)。如果再忽略回歸年的誤差與朔望月的誤差,則理論模型中的日月改正數(shù)之和與歷法中日月改正數(shù)之和的周期就可認(rèn)為是一致的。這樣對(duì)于日月改正數(shù)的誤差和δ1+δ2也可近似的看成是以T1為周期的周期函數(shù)了。定朔誤差δ也自然可視為一個(gè)周期函數(shù),更近似的,其周期可用日月改正數(shù)誤差周期T1來(lái)表示。
經(jīng)朔是一個(gè)相對(duì)的概念,起算點(diǎn)不同,其值差別很大?,F(xiàn)代天文學(xué)中,已經(jīng)不再計(jì)算經(jīng)朔,如果需要,則可以取日月平黃經(jīng)相同的時(shí)刻[15]。而宋代歷法卻是以上元為起算點(diǎn),然后累加朔望月長(zhǎng)度而得到的,這使得用古今兩種方式得到的經(jīng)朔不同。因此用歷法推得的經(jīng)朔值與用現(xiàn)代方法計(jì)算的經(jīng)朔值進(jìn)行比較是沒(méi)有意義的,兩者的差值并不能反映歷法推算經(jīng)朔的精度,經(jīng)朔誤差也就失去了意義。然而中國(guó)古代歷法確實(shí)是計(jì)算經(jīng)朔的,它對(duì)定朔的精度也是有影響的,我們勢(shì)必要求得它對(duì)定朔精度到底起到了多大作用。這樣,必須假定理想的上元是存在的,以它為起算點(diǎn),累加理論的朔望月才能得到理論上的經(jīng)朔。用歷法計(jì)算的經(jīng)朔值與理論值相比較才能得到經(jīng)朔誤差。
求解理論上的上元是很艱難的,而且是不必要的[16]。日月改正數(shù)之和是關(guān)于時(shí)間的周期函數(shù),在一個(gè)周期內(nèi),由于正負(fù)抵消,其函數(shù)值的代數(shù)和為0。自然,近似的,日月改正數(shù)的誤差和在其一個(gè)周期內(nèi)的代數(shù)和也應(yīng)該是0??紤]到影響定朔精度的主要因素只有式(3)中的三項(xiàng),那么若不考慮經(jīng)朔誤差,在我們所計(jì)算的誤差結(jié)果數(shù)據(jù)中按日月改正數(shù)的周期長(zhǎng)度選擇數(shù)據(jù),它們的代數(shù)和也應(yīng)該是0,如果不是,有理由肯定,這些數(shù)據(jù)的代數(shù)和就應(yīng)該是經(jīng)朔誤差。這樣,若忽略回歸年、朔望月及近點(diǎn)月的誤差,通過(guò)連分?jǐn)?shù)展開(kāi)得到的誤差準(zhǔn)周期為9年119個(gè)近點(diǎn)月,合112個(gè)朔望月。《開(kāi)禧歷》的45年數(shù)據(jù),也近似以9年為周期波動(dòng),與此結(jié)果相吻合。我們以周期T1來(lái)選取數(shù)據(jù),計(jì)算其代數(shù)和,可以得到歷法的經(jīng)朔誤差。
歷法行用初期,回歸年、朔望月、近點(diǎn)月的誤差以及地球自轉(zhuǎn)長(zhǎng)期變化的影響是較小的,通過(guò)周期法所得到的“經(jīng)朔誤差”更接近于實(shí)際情況。經(jīng)計(jì)算,《開(kāi)禧歷》的經(jīng)朔誤差為8.808分鐘,占總誤差的40%?!堕_(kāi)禧歷》朔望月常數(shù)為29.530591716日,《中國(guó)天文年歷》提供的某年Y的朔望月長(zhǎng)度標(biāo)準(zhǔn)值按下式計(jì)算,
算得《開(kāi)禧歷》朔望月誤差為0.3982秒,則其經(jīng)朔誤差會(huì)以每年4秒左右的速度減少。這樣,除去其朔望月誤差的累積值,其行用初年經(jīng)朔誤差的平均值應(yīng)該是8.4363分鐘。誤差擬合直線(xiàn)的截距與之很接近,實(shí)際上,它就代表了《開(kāi)禧歷》的經(jīng)朔誤差。
公式(3)是一個(gè)線(xiàn)性關(guān)系式,即當(dāng)日月中心差越大時(shí),所求定朔的誤差也就越大,這與圖1所顯示的結(jié)果相吻合。但日月改正數(shù)的誤差僅會(huì)通過(guò)對(duì)某一次具體的定朔推算來(lái)體現(xiàn)其對(duì)歷法整體精度的影響。若只考查模型本身的精度,則日月改正數(shù)的誤差計(jì)算公式可表示為
日月改正數(shù)誤差的最小值為太陽(yáng)和月亮中心差互相抵消,代數(shù)和為0時(shí),其誤差值也為0;其最大值出現(xiàn)在太陽(yáng)和月亮中心差同時(shí)取最大值時(shí)?!堕_(kāi)禧歷》太陽(yáng)中心差的最大值為2.36古度,月亮中心差的最大值為5.48古度。而事實(shí)上《開(kāi)禧歷》所采用的太陽(yáng)中心差偏大,據(jù)開(kāi)普勒方程推算的太陽(yáng)中心差最大值為1.9765度,而月亮中心差最大值的上下限分別為7.75度和5.05度。這樣,太陽(yáng)改正數(shù)的最大值為24.10分鐘;月亮改正數(shù)的最大值為321.00分鐘和6.08分鐘,取其平均值也達(dá)到了122.23分鐘。因此,《開(kāi)禧歷》的定朔誤差中,日月改正數(shù)誤差,尤其是月亮改正數(shù)誤差是最主要的誤差。其最大推朔誤差為1.8279小時(shí)(合109.67分鐘)是可以解釋的。
中國(guó)古代歷法基本上把太陽(yáng)的近地點(diǎn)當(dāng)作冬至點(diǎn),這樣就使得太陽(yáng)近地點(diǎn)的平黃經(jīng)始終選擇270°,而且年代越早,近地點(diǎn)平黃經(jīng)誤差越大[17]。為了方便,將《開(kāi)禧歷》的太陽(yáng)改正數(shù)中的“胐朒積”ys近似寫(xiě)作
其中x表示太陽(yáng)平黃經(jīng),α、β為待定系數(shù),不同的歷法由于日躔表的構(gòu)造不同會(huì)略有差異。經(jīng)過(guò)計(jì)算,在《開(kāi)禧歷》中,α、β的取值分別為66.1990和0.3678。若近地點(diǎn)與冬至點(diǎn)相差τ度,則依近地點(diǎn)所得“胐朒積”的近似公式為
在《開(kāi)禧歷》行用其間,近地點(diǎn)平黃經(jīng)最小值為269°20'41″,最大值為270°4'54″,可得τ的最大值為0.66°,最小值為0°。于是用式(7)減去式(8),得到近地點(diǎn)誤差δτ近似公式,其形式仍然是分段二次函數(shù)。根據(jù)其周期性及二次函數(shù)的性質(zhì),易知其最值出現(xiàn)在x=(180-τ/2)和x=(360-τ/2)時(shí)。計(jì)算可得,《開(kāi)禧歷》近地點(diǎn)誤差最大值是當(dāng)x=359.77°時(shí),δτ=36.1179,約合 3 分鐘;最小值是當(dāng)x=179.77°時(shí),δτ= -36.1179。可見(jiàn),近地點(diǎn)與冬至點(diǎn)的不重合對(duì)定朔結(jié)果的影響是較小的。從式(7)的形式上也可以看出當(dāng)太陽(yáng)中心差按周期變化時(shí),近地點(diǎn)誤差也按其周期變化。它是包含在日月改正數(shù)誤差之中的。
由于近點(diǎn)月常數(shù)與理論值有誤差,使得經(jīng)過(guò)累加近點(diǎn)月而求得的入轉(zhuǎn)日數(shù)值會(huì)有所改變,從而影響月亮改正數(shù)的精度。設(shè)近點(diǎn)月常數(shù)的歷法值與理論值分別為g與g*,《開(kāi)禧歷》月離表中每日損益率為φm,其日法為A,則由于近點(diǎn)月常數(shù)誤差累積導(dǎo)致的月亮改正數(shù)誤差δg可表示為
類(lèi)似的,可以得到由于回歸年常數(shù)誤差累積而導(dǎo)致的太陽(yáng)改正數(shù)誤差δt為
式中t、t*分別為回歸年常數(shù)的歷法值與理論值,φs為《開(kāi)禧歷》日躔表中的每日損益率。
在表1中,我們給出了各相關(guān)因素的影響值。
表1 《開(kāi)禧歷》的有關(guān)常數(shù)及誤差
月亮的運(yùn)動(dòng)是極其復(fù)雜的,存在著規(guī)則的與半規(guī)則的周期性,而中國(guó)古代定朔算法中所用的月亮模型僅僅是以一個(gè)近點(diǎn)月為周期,從而進(jìn)行月離表的設(shè)計(jì)與入轉(zhuǎn)日的推算。因而在中國(guó)古代,人們不能更好的把握月亮運(yùn)動(dòng)的真實(shí)規(guī)律,使得有關(guān)月亮的計(jì)算誤差較大。表1中可以看到,近點(diǎn)月誤差是最大的。
月亮運(yùn)動(dòng)在一個(gè)近點(diǎn)月內(nèi)的特定時(shí)刻與在下一個(gè)近點(diǎn)月內(nèi)的同一時(shí)刻的速度并不相同,這樣,利用同樣的方法得到的“經(jīng)朔入轉(zhuǎn)”與下一個(gè)近點(diǎn)月內(nèi)的值不同。但中國(guó)古代歷法只對(duì)一個(gè)近點(diǎn)月內(nèi)的月行速度進(jìn)行調(diào)整,而不同近點(diǎn)月之間的月行速度及近點(diǎn)月常數(shù)本身并不做修正。如果歷法行用時(shí)間過(guò)長(zhǎng),近點(diǎn)月誤差的累積值就會(huì)很明顯,歷法中同一入轉(zhuǎn)日下所對(duì)應(yīng)的月行速度的差異也會(huì)加大。不同的入轉(zhuǎn)日下,《開(kāi)禧歷》定朔誤差絕對(duì)值平均值統(tǒng)計(jì)分析如圖3所示,可以看到,在近地點(diǎn)附近的調(diào)整情況要劣于遠(yuǎn)地點(diǎn)附近。雖然回歸年常數(shù)與太陽(yáng)運(yùn)行速度也存在著類(lèi)似影響定朔精度的情況,但一個(gè)回歸年內(nèi)太陽(yáng)中心差的調(diào)整是對(duì)稱(chēng)的,且太陽(yáng)中心差的平均誤差較月亮的小得多。
圖3 不同入轉(zhuǎn)日下的定朔誤差平均值
事實(shí)上,定朔的誤差是經(jīng)朔誤差與日月改正數(shù)誤差綜合作用的結(jié)果。經(jīng)朔誤差是影響歷法推算精度的重要因素,它使得定朔的推算整體上早于或遲于真朔。但基本天文常數(shù)的不精確和對(duì)太陽(yáng)、月亮運(yùn)動(dòng)規(guī)律的認(rèn)識(shí)不足,降低了歷法的精度和實(shí)用性?!堕_(kāi)禧歷》一個(gè)朔望月的誤差僅為0.3982秒,但45年后,其累積值就會(huì)使得推朔遲于真朔近4分鐘。有意思的是,如果按此推算,《開(kāi)禧歷》的經(jīng)朔誤差會(huì)因此而減小,在其行用150年左右的時(shí)候達(dá)到最小值,這樣,此時(shí)的定朔誤差也應(yīng)因此而變的更小。但當(dāng)我們計(jì)算出了《開(kāi)禧歷》1330—1339年近10年的定朔時(shí),其誤差絕對(duì)值的平均值卻增大到了0.4128小時(shí)。可以肯定,經(jīng)朔誤差對(duì)定朔誤差隨時(shí)間的降低作用要遠(yuǎn)小于日月改正數(shù)誤差的作用,尤其是月亮改正數(shù)的作用。經(jīng)朔誤差對(duì)誤差的整體作用是線(xiàn)形的,穩(wěn)定的,日月改正數(shù)誤差對(duì)每一次的定朔影響是隨機(jī)的,不穩(wěn)定的,使得某次推算的定朔值可能會(huì)大大偏離真實(shí)值,導(dǎo)致推算失誤。而在《授時(shí)歷》以前的歷法中,傳統(tǒng)的上元積年使得經(jīng)朔誤差難以消除;定朔模型中日月的速度均為平均速度,且存在系數(shù)1/vm與1/(vm-vs)的差別;日月的中心差采用完全周期性的數(shù)據(jù),使得對(duì)日月運(yùn)行的真實(shí)規(guī)律把握欠佳;推朔模型本身簡(jiǎn)單而又粗糙,利用周期形式,不能隨時(shí)加入修正項(xiàng)來(lái)修正。因此,加之基本天文常數(shù)的測(cè)量誤差,歷法一旦頒行,使用時(shí)間不長(zhǎng)便會(huì)出現(xiàn)失算,歷法家們能做的只是重新調(diào)整常數(shù),進(jìn)而改歷。不去改變模型本身和突破推算的基本思想,改后的歷法仍不與天合,以致改而再改,造成中國(guó)歷史上各朝各代的頻繁改歷。
定朔算法在中國(guó)古代歷法中是一個(gè)構(gòu)造簡(jiǎn)單但極其重要的算法。歷算家往往把推求經(jīng)朔放在歷法的第一部分,在求得日月不均勻性的改正數(shù)后,便立即求得定朔。每部歷法前面幾章內(nèi)容中很重要的一部分是為“步月離”章中的推求定朔服務(wù)的。計(jì)算出《開(kāi)禧歷》行用期間的所有定朔時(shí)刻,經(jīng)過(guò)時(shí)差的修正,轉(zhuǎn)換成依北京時(shí)間表示的時(shí)刻。與定朔的真實(shí)值相比較,得出每一個(gè)定朔的推算誤差。其推算定朔的總體水平在21分鐘左右,最大誤差為1.8279小時(shí)。
在歷法精度對(duì)比分析的基礎(chǔ)上,分析定朔誤差產(chǎn)生的根源。定朔誤差可以表示成經(jīng)朔誤差、太陽(yáng)改正數(shù)誤差和月亮改正數(shù)誤差的線(xiàn)性組合。它會(huì)表現(xiàn)出一定的周期性特征。如果忽略其中一部分因素,便可以求出定朔誤差的準(zhǔn)周期。這個(gè)值可以近似取為9年或112個(gè)朔望月。在一個(gè)誤差周期內(nèi),日月改正數(shù)的誤差為0,從而可以求出經(jīng)朔誤差。但這種方法在歷法行用初期且其行用時(shí)間超過(guò)9年時(shí)適用。
日月改正數(shù)誤差只會(huì)表現(xiàn)為周期性的變化,并沒(méi)有減小或增大的趨勢(shì)。其最值僅出現(xiàn)在太陽(yáng)和月亮同時(shí)運(yùn)行至近地點(diǎn)附近時(shí)。近地點(diǎn)誤差也呈現(xiàn)出周期性的變化規(guī)律,它是包含在日月改正數(shù)誤差之中的,但對(duì)定朔誤差的作用較小。在眾多影響定朔的誤差中,月亮改正數(shù)的誤差作用最大。在歷法的誤差擬合直線(xiàn)中,直線(xiàn)的截距實(shí)際代表了經(jīng)朔誤差,而斜率則反映了朔望月常數(shù)誤差值累積的趨勢(shì)。
經(jīng)朔誤差是每一部歷法的固有誤差,這與中國(guó)傳統(tǒng)歷法中的上元積年有關(guān)。朔望月常數(shù)誤差會(huì)使歷法的推算精度隨時(shí)間的推移而下降。直到《授時(shí)歷》與《大統(tǒng)歷》時(shí),徹底廢除了傳統(tǒng)的上元積年,使用“歲實(shí)消長(zhǎng)術(shù)”,在推朔模型中使用月亮的即時(shí)速度,而不使用平均速度,并對(duì)基本天文常數(shù)進(jìn)行更精確的測(cè)定,才使得《授時(shí)歷》與《大統(tǒng)歷》共行用了近四百年。
1 (北宋)歐陽(yáng)修,宋祁,范鎮(zhèn),等.新唐書(shū)·律歷志[A].歷代天文等志匯編[Z].第8冊(cè).北京:中華書(shū)局,1976.559—586.
2 唐泉,曲安京.中國(guó)古代的視差理論——以日食食差算法為中心的考察[J].自然科學(xué)史研究,2007,26(2):125—154.
3 Needham J.Science&Civilisation in China[M].Cambridge:Cambridge University Press,1959.171.
4 劉次沅.古代交食記錄對(duì)地球自轉(zhuǎn)速率長(zhǎng)期變化的研究進(jìn)展[J].天文學(xué)進(jìn)展,1987,5(2):147—157.
5 李勇.中國(guó)古歷經(jīng)朔數(shù)據(jù)的恢復(fù)及應(yīng)用[J].天文學(xué)報(bào),2005,46(4):474—484.
6 藪內(nèi)清.隋唐歷法史の研究[M].東京:三省堂,1944.61—82.
7 劉金沂,趙澄秋.《麟德歷》定朔計(jì)算法[A].薄樹(shù)人,劉金沂.中國(guó)天文學(xué)史文集[C].第3輯.北京:科學(xué)出版社,1984.36—88.
8 張培瑜,等.《宣明歷》定朔計(jì)算和歷書(shū)研究[J].紫金山天文臺(tái)臺(tái)刊,1992,11(2):121—155.
9 李勇,張培瑜.中國(guó)古歷定朔推步綜述[J].天文學(xué)進(jìn)展,1996,14(1):66—76.
10 尚曉清,曲安京.《大衍歷》定朔算法及程序說(shuō)明[J].西北大學(xué)學(xué)報(bào):自然科學(xué)版,1999,29(3):193—196.
11 滕艷輝,王鵬云.《紀(jì)元?dú)v》等8部宋代歷法的定朔推步及精度分析[J].中國(guó)科技史雜志,2009,30(1):55—64.
12 滕艷輝,王鵬云.《紀(jì)元?dú)v》定朔算法模型及分析[J].西北大學(xué)學(xué)報(bào):自然科學(xué)版,2008,40(5):855—858.
13 (元)脫脫,等.宋史律歷志[M].歷代天文等志匯編[Z].第8 冊(cè).北京:中華書(shū)局,1976.2971—2995.
14 張培瑜.三千五百年歷日天象[M].鄭州:河南教育出版社,1990.
15 Meeus J.Astronomical Algorithms[M].2nd ed.Richmond:Willmann-Bell,1998.349.
16 曲安京.中國(guó)古代歷法中的上元積年計(jì)算[A].?dāng)?shù)學(xué)史研究文集[C].第1輯.呼和浩特:內(nèi)蒙古大學(xué)出版社;臺(tái)北:九章出版社,1990.24—37.
17 鄧可卉.中國(guó)隋唐時(shí)期對(duì)于太陽(yáng)運(yùn)動(dòng)認(rèn)識(shí)的演變[J].西北大學(xué)學(xué)報(bào):自然科學(xué)版,2006,36(5):847—852.