王玉民
(北京天文館古觀象臺(tái),北京 100005)
研究中國古代歷法時(shí),我們時(shí)常為古人計(jì)算動(dòng)輒精確到小數(shù)點(diǎn)后6、7位,或使用巨大分子分母構(gòu)成的精確數(shù)而驚嘆,按說,用如此精密算法修成的歷法,其可靠性也應(yīng)該同樣令人驚嘆,然而,縱觀各朝各代,一部歷法經(jīng)常使用幾十年就因不合天而被廢棄,使用壽命超過百年的屈指可數(shù),這與歷法推算中的表現(xiàn)精度完全不成比例。
在現(xiàn)代科學(xué)研究中,對(duì)精度的追求是一項(xiàng)系統(tǒng)活動(dòng),具體在對(duì)天體運(yùn)行規(guī)律的把握中,需要觀測(cè)精度、模型精度、計(jì)算精度的高度統(tǒng)一才能達(dá)到理想狀態(tài)。古代歷法家由于缺少誤差思想的指導(dǎo),在對(duì)觀測(cè)精度遠(yuǎn)遠(yuǎn)沒有達(dá)到、對(duì)天體運(yùn)行的規(guī)律掌握尚有限的情況下,經(jīng)常單純追求計(jì)算的高精度,以求修成的歷法“止于至善”。但實(shí)際上,古人在這方面付出的努力多為事倍功半,因?yàn)橛?jì)算結(jié)果比計(jì)算本身更重要,沒有意義的數(shù)字位數(shù)參與運(yùn)算是一種資源的浪費(fèi)。
本文以現(xiàn)代誤差和近似計(jì)算思想為指導(dǎo),對(duì)古代歷法的誤差思想空缺現(xiàn)象做初步的梳理和探討,以期從這一不引人注意的角度進(jìn)一步來加深我們對(duì)古代歷法的了解和認(rèn)識(shí)。
中國歷史上各朝頻頻改歷,小部分是政治因素,大部分是“驗(yàn)天不合”或“不精”造成的。
在“天不變,道亦不變”思想的指導(dǎo)下,古人存在一種能夠?qū)μ煨小敖K極把握”的理想,認(rèn)為天體的運(yùn)行周期可以通約(至少在中古前是這樣認(rèn)為的)。戰(zhàn)國秦漢時(shí)代的“四分歷”,認(rèn)為一回歸年為365天,閏周為19年7閏,于是現(xiàn)代人根據(jù)這兩個(gè)數(shù)值替古人推
在追求對(duì)天行終極把握理想的推動(dòng)下,各朝歷法都設(shè)法使其精度在前人的基礎(chǔ)上有所提高,這種提高是符合科學(xué)精神的,但也由此形成了一種觀念,認(rèn)為歷法就應(yīng)該是一種不斷改變的東西。甚至直到清初,引進(jìn)西學(xué),歷法精度大幅提高時(shí),著名歷法家王錫闡仍說:“歷之道主革,故無百年不改之歷”[1],把改變歷法當(dāng)成了常態(tài)??墒?,由于天體運(yùn)行的復(fù)雜性,使其運(yùn)行周期找到通約的理想永遠(yuǎn)無法實(shí)現(xiàn)。中歷是陰陽歷,即使僅僅單純考慮日、月兩天體的運(yùn)動(dòng),也無法找到一個(gè)理想的會(huì)合周期(如朔望月的發(fā)生原理非常簡(jiǎn)單,但每月的長度都各自不同,而且找不出這種長度變化的周期),更何況其他天體運(yùn)行周期的通約了。
于是古人試圖尋找另外的途徑作為補(bǔ)充,以輔助實(shí)現(xiàn)這一目標(biāo)。我們的先輩很早就發(fā)現(xiàn),樂律是有明顯周期的,既然日長、年長都有周期,于是他們認(rèn)為天體運(yùn)行也會(huì)像樂律一樣遵守簡(jiǎn)明的數(shù)理關(guān)系,因此從很早開始,歷法就和樂律聯(lián)系在一起,稱“律歷”,歷法的某些參數(shù)需要符合黃鐘、律呂之?dāng)?shù);另外,根據(jù)古代根深蒂固的數(shù)字神秘觀念,古人還認(rèn)為,某些數(shù)字存在萬能的功用,包含著萬物之理,所以人們經(jīng)常讓歷法的某些參數(shù)與一些神秘?cái)?shù)字相合(如乾象、大衍之?dāng)?shù)等)。綜合這些因素,古人認(rèn)為一部完美的歷法應(yīng)該是既合天,又相合與樂律和神秘?cái)?shù)字的。
隨著時(shí)代的發(fā)展,觀測(cè)精度逐漸提高,人們發(fā)現(xiàn)那種簡(jiǎn)單的通約關(guān)系(如“19年7閏”)并不能合天,但多數(shù)人仍相信天體運(yùn)行周期是有通約關(guān)系的,只是更復(fù)雜而已。于是古人使用了一些更為“精密”的參數(shù),如西漢《太初歷》取一個(gè)朔望月為29日,東漢劉洪(約公元129~約210)的《乾象歷》定回歸年長為365日,南朝祖沖之(公元429~500)取閏周為392年144閏等等。這些數(shù)據(jù)包含有實(shí)測(cè)的成分,但也包含有靠樂律、神秘?cái)?shù)來制造高精度的愿望,帶有力求“完全精密”的理想主義的觀念。
上元積年的使用是古人追求對(duì)完美天行把握的最典型體現(xiàn)。上元是古代歷法家尋找的一個(gè)理想推算起點(diǎn),他們相信,按照他們觀測(cè)獲知的日、月、五星的運(yùn)行周期,疊加回推,最后總能找到一個(gè)理想時(shí)刻:這一刻是一個(gè)甲子日的夜半,又是日月合朔的時(shí)刻,又恰是太陽過冬至點(diǎn),同時(shí)在冬至點(diǎn)發(fā)生罕見的“五星聯(lián)珠”(即五大行星在視線聚集于冬至點(diǎn)準(zhǔn)備出發(fā))。正式推算上元積年的工作是從西漢的劉歆開始,他在《三統(tǒng)歷》中一直推到143,127年前,才找到這個(gè)理想時(shí)刻。[2]后來隨著交點(diǎn)月、近點(diǎn)月等周期的發(fā)現(xiàn),這些參數(shù)也常被加入到歷法的上元推算中去,隨著各種參數(shù)的精密化,理想推算起點(diǎn)變得越來越難找,只好繼續(xù)向遠(yuǎn)古推去,求出的上元積年的數(shù)字也越來越龐大,到唐代的《大衍歷》達(dá)到96,661,740年([2],623 頁),金代的《重修大明歷》更達(dá)到了 383,768,657 年([2],1266頁)。
古人這么孜孜以求龐大的上元積年,除了基于天行完美的假設(shè)外,還有這樣一種觀念:想為歷法推算、天體位置和天象的推算找到一個(gè)通用程序,真正達(dá)到孟子說的“千歲之日至,可坐而致也”[3]的隨心所欲不逾矩境界。古代通常的演算方法是“籌算”,用擺放和移動(dòng)算籌(小竹棍)來排列算式,非常費(fèi)時(shí)費(fèi)力,這樣,太大的計(jì)算量就會(huì)成為歷法家沉重的負(fù)擔(dān)。
在對(duì)中國古代歷法的研究中,推算上元積年的方法因?yàn)樯婕敖庖淮瓮嗍?,是?shù)學(xué)史上的一大貢獻(xiàn),被大加贊賞,但因其推算的思想不甚“科學(xué)”而經(jīng)常被忽略或淡化。實(shí)際上,推算上元積年從方法和思想上都是古代歷法最核心的內(nèi)容,它可以解開歷法中的很多謎團(tuán)。陳遵媯曾說:“一部中國歷法史,幾乎可以說是上元的演算史。”[4]上元積年的確定需要同時(shí)考慮許多長短不齊的周期,尤其是這些周期達(dá)到小數(shù)點(diǎn)后許多位的精度時(shí),回推上去想找到一個(gè)共同的“起跑線”,具有非常高的難度,精確的位置恐怕永遠(yuǎn)也找不到,今人研究發(fā)現(xiàn),古人設(shè)定上元時(shí)并不完全是客觀運(yùn)作的。
曲安京經(jīng)過研究證實(shí),古代圍繞著上元積年的計(jì)算,存在著一個(gè)天文常數(shù)系統(tǒng),推導(dǎo)上元積年時(shí)只用60干支周期、朔望月和回歸年長度進(jìn)行推導(dǎo)。如果布列的同余式組無解,或求出的上元積年超過1億年,說明取的朔望月和回歸年長度“不合用”,需要用何承天調(diào)日法“設(shè)計(jì)”新的朔望月和回歸年長度,再重新計(jì)算,若所得結(jié)果小于1億年,說明該上元符合要求,于是定出上元和上元積年。至于恒星年、近點(diǎn)月、交點(diǎn)月、五行星會(huì)合周期等數(shù)值,按這億年數(shù)量級(jí)的尺度作出調(diào)整,總是能找到一個(gè)既滿足上元起點(diǎn)、又非常符合今日位置的長度周期的。[5]①這是關(guān)于中國古代歷法的一個(gè)重大發(fā)現(xiàn),關(guān)系到歷法制定和推算本質(zhì)的全局問題,也是關(guān)系到歷法精度的重要問題,是涉及整個(gè)“森林”生態(tài)而不是只考察某棵樹木的問題,但一直沒有在學(xué)界得到廣泛的重視。且不說取朔望月和回歸年長度也靠改換數(shù)字、閉門造車來遷就理想上元,就說恒星年、近點(diǎn)月、交點(diǎn)月、五行星會(huì)合周期等數(shù)據(jù)在上億年的漫漫歷史長河中一分配,雖然得到一個(gè)與當(dāng)時(shí)觀測(cè)長度相近的值,但有沒有誤差,誤差究竟是多少,就無法再去考慮了,結(jié)果這些參數(shù)僅符合了當(dāng)時(shí)和較近的過去,行用日久必然會(huì)不合天。
古人確定上元積年時(shí),還常求出理想上元的“總周期”,即上一次上元完美天象到下一次重復(fù)出現(xiàn)的時(shí)間間隔,其數(shù)字更為龐大,據(jù)高平子研究,后漢四分歷的總周期年數(shù)有18位,遠(yuǎn)遠(yuǎn)超過今日“大爆炸宇宙學(xué)”設(shè)定的宇宙年齡,故這種周期大數(shù),根本沒有任何實(shí)際意義。有人認(rèn)為上元的確立說明古人有宇宙學(xué)的“開辟”思想,高平子曾尖銳指出:即使真有一個(gè)氣、朔、日月五星的“上元起點(diǎn)”,也不過是視象的會(huì)合,與一個(gè)原始的出發(fā)點(diǎn)是兩回事,所以這種“開辟”思想離科學(xué)很遠(yuǎn)。[6]
上元積年本來是一種良好設(shè)想,但后來在歷法推算中,歷算家們常過分執(zhí)著于這種設(shè)想,就成了一種對(duì)理想精度不切實(shí)際的追求,在這種追求過程中,歷法家不惜削足適履,將那些本該完全靠實(shí)測(cè)求出的天體運(yùn)行周期安排成“導(dǎo)出常數(shù)”,但其實(shí)際意義與現(xiàn)代天文學(xué)中的“導(dǎo)出常數(shù)”完全不同。由于古人不了解誤差出現(xiàn)的必然性和使用近似計(jì)算的必要性,所以這種追求完美的結(jié)果反而更不完美——?dú)v法幾十年一換。
元代的李謙(1233~1311)在《授時(shí)歷議》中曾對(duì)上元積年,以及其中的人為運(yùn)作有過這樣中肯的判斷:“昔人立法,必推求往古生數(shù)之始,謂之演紀(jì)上元。當(dāng)斯之際,日月五星同度,如合璧連珠然。惟其世代綿遠(yuǎn),馴積其數(shù)至逾億萬,后人厭其布算繁多,互相推考,斷截其數(shù)而增損日法,以為得改憲之術(shù),此歷代積年日法所以不能相同者也。然行之未遠(yuǎn),浸復(fù)差失,蓋天道自然,豈人為附會(huì)所能茍合哉?!?[2],1360頁)
由于后世歷法家的質(zhì)疑,到中、近古,經(jīng)唐宋時(shí)代的曹士蔿、楊忠輔等作了嘗試性的改革以后,元代郭守敬(1231~1316)在創(chuàng)制《授時(shí)歷》中徹底廢除了上元積年。
清代學(xué)者王錫闡(1628~1682)在評(píng)價(jià)一部歷法的優(yōu)劣時(shí),曾提出這樣的原則:“合則審其偶合與確合,違則求其理違與數(shù)違,不敢茍焉以自欺而已”。([1],607頁)上元積年的湊數(shù)字,就有一種求偶合的傾向,用這種方法產(chǎn)生的歷法,也難以達(dá)到真正的確合,結(jié)果造成理不違而數(shù)違。
在追求對(duì)天行完美把握觀念的指導(dǎo)下,古代歷法家對(duì)誤差觀念十分模糊,特別是唐代以前,只用絕對(duì)精確的數(shù)字——整數(shù)和分?jǐn)?shù)來表示天體運(yùn)行的各種周期及其關(guān)系,計(jì)算時(shí)也盡可能追求絕對(duì)的精度。實(shí)際上,計(jì)算只是歷法編制的一個(gè)方面,從科學(xué)的角度講,只有做到觀測(cè)精度、模型精度、計(jì)算精度的統(tǒng)一,才能編制出一部好的歷法來。
按現(xiàn)代誤差理論,在科學(xué)研究中,定量的誤差主要有3種:
(1)觀測(cè)誤差。就天文觀測(cè)來說,測(cè)量儀器、測(cè)量方法、測(cè)量人員的因素,都會(huì)產(chǎn)生誤差。儀器的安裝準(zhǔn)確程度、刻度盤(尺)的調(diào)準(zhǔn)程度、刻度精密程度,瞄準(zhǔn)的精確程度、讀數(shù)的精確程度對(duì)誤差的產(chǎn)生都有重要影響,我們只能將其控制在一定范圍內(nèi)而不可能將其徹底消除。
(2)模型誤差。就天體運(yùn)行模型來說,古人對(duì)日、月、五星的運(yùn)動(dòng)描述時(shí)總是進(jìn)行抽象簡(jiǎn)化,往往沒發(fā)現(xiàn)或忽略掉次要因素,如對(duì)行星的南北向運(yùn)動(dòng)、早期對(duì)天體的不均勻運(yùn)動(dòng)等,這樣得到的數(shù)學(xué)模型只是近似描述。
(3)截?cái)嗪蜕崛胝`差。在作天體位置推算的過程中,用數(shù)值方法求的總是近似解,比如用有限過程逼近無限過程只能取有限項(xiàng),計(jì)算過程的四舍五入、取不足或過剩近似值等。這些誤差積累起來也是很驚人的,這是計(jì)算方法造成的誤差,又稱方法誤差。
我國古代,對(duì)天體位置、運(yùn)行以及相應(yīng)時(shí)間的測(cè)量精度如何呢?隨著測(cè)量儀器的出現(xiàn)、完善,以及測(cè)量方法的不斷改進(jìn),測(cè)量的精度也在隨著歷史的演變逐漸提高,但其精度與同時(shí)代的“計(jì)算精度”相比,總是非常低的。
最早出現(xiàn)的天文儀器是圭表和渾儀。圭表由直立的表(用來生成日影)和水平放置、朝向正北的圭組成,圭上標(biāo)有刻度,當(dāng)正午時(shí),表的影子恰好完全落在圭上,通過圭上的刻度可以直接讀出影子的長度。開始人們是尋找正午影子最短的一天,這天即為夏至,兩次夏至的間隔即為一年[7]。
冬至是一年中正午影子最長的一天,測(cè)量冬至表影同樣可以確定年長。后來人們改為主要測(cè)、甚至專測(cè)冬至表的影子長度來確定回歸年長了。測(cè)量冬至日影就需要把圭的長度大大增加,至少在漢代,圭表已經(jīng)定型為“圭”長于“表”的制式?!度o黃圖》中記載:“長安靈臺(tái)……有銅表,高八尺,長一丈三尺”[8],測(cè)量冬至影長也成為定規(guī)。對(duì)這種改變的原因,典籍中沒有記載,按現(xiàn)代誤差理論,用同一方法測(cè)量長的樣本時(shí),比測(cè)量短的樣本會(huì)獲得更高的精度,因?yàn)闃颖驹介L,讀數(shù)的相對(duì)誤差就越小。古人可能也是這么想的,這是古人改進(jìn)測(cè)量精度的良好愿望,被后代認(rèn)可,所以沿用下來,直到清末。
但實(shí)際上,這種改進(jìn)不但沒有提高測(cè)量精度,而且適得其反,降低了測(cè)量精度。日影長是一種特殊的樣本,并不遵循“樣本越長,讀數(shù)的相對(duì)誤差就越小”這一規(guī)律。具體地說,一個(gè)物體的影子越長,其影端由于太陽圓面造成的半影帶就變得越寬,模糊的區(qū)域會(huì)按比例增加,所以與測(cè)量短影相比,測(cè)量長影并不會(huì)改善測(cè)量的相對(duì)誤差。而對(duì)于圭表來說,由于冬至投影的傾斜角相對(duì)于夏至來說大大減小,會(huì)進(jìn)一步加劇影子的彌散,使半影帶在圭面上變得更寬,測(cè)量的相對(duì)誤差精度不但不會(huì)維持在短影的水平,相反會(huì)降得更低。例如在北京,太陽冬至投射角約為26.5°,夏至為73.5°,取二者余弦的倒數(shù)之比,可知圭面上冬至半影的彌散度是夏至半影彌散度的3.2倍。據(jù)筆者對(duì)北京古觀象臺(tái)復(fù)原的郭守敬八尺銅圭表的多年觀察,冬至前后,中午投射在圭面上的表影非常模糊,從正上方拍得的照片看,影緣若有若無,很難確定其位置,而夏至的表影則要清晰得多。后世長圭的圭表除了用于冬至測(cè)影外,當(dāng)然還可以測(cè)量各節(jié)氣的日影長度,這是非常必要的,但就利用圭表專門測(cè)量冬至影長求回歸年這一點(diǎn)來說,這種技術(shù)“改進(jìn)”實(shí)際上是一種倒退。
鑒于這種測(cè)冬至影長的傳統(tǒng),直到元代以前,圭表測(cè)影的精度一直很低,直到郭守敬發(fā)明景符后,利用針孔成像原理獲得清晰的影端,測(cè)影長的精確度才明顯提高。北京古觀象臺(tái)在1985~1986年,利用復(fù)原的郭守敬八尺銅表,加上景符進(jìn)行不間斷的仿古模擬觀測(cè),測(cè)得夏至前后影長誤差值為0.1~0.2厘米,冬至前后誤差為0.4~0.7厘米。[9]這也證明了我們上文的分析:使用景符,冬至日半影模糊帶成比例增加的難題被克服了,但不同投射角造成的彌散度問題依然存在,因?yàn)楣缑嫔隙涟胗暗膹浬⒍仁窍闹涟胗皬浬⒍鹊?.2倍,所以才有仿古模擬測(cè)影的上述冬、夏至誤差值的差別。
據(jù)郭盛熾等人利用元代高表加景符的模擬觀測(cè),發(fā)現(xiàn)其誤差平均也在0.47厘米左右,[10]與北京古觀象臺(tái)的模擬測(cè)影精度相仿,看來使用景符可以獲得一個(gè)較高、較穩(wěn)定的絕對(duì)精度,但不知古人是否意識(shí)到,即使采用景符,測(cè)量冬至影長的誤差仍遠(yuǎn)遠(yuǎn)高于測(cè)夏至?xí)r的誤差。
在有可以實(shí)際測(cè)量的圭表以前,年長的數(shù)據(jù)精度非常之低,《尚書·堯典》中提到一年的長度為“期三百有六旬有六日”,[11]這不僅是舉成數(shù),也是測(cè)的不準(zhǔn),日下余分是未定之?dāng)?shù)([6],90頁),等于只準(zhǔn)確到“天”。由于圭表的觀測(cè)目的是求出冬至?xí)r刻,進(jìn)而求出回歸年長,前者難以達(dá)到較高精度,因?yàn)槎敛灰欢ㄇ『迷谡?,即使發(fā)生在正午前后,也不易判定其細(xì)小的偏差,但古人掌握了用多年測(cè)量求平均數(shù)的辦法來改進(jìn)年長數(shù)值,以求達(dá)到較高精度〔劉宋時(shí)代何承天曾“立八尺之表,連測(cè)十余年”([2],1083頁)〕?!八姆謿v”的回歸年長為365日,精度相對(duì)提高了很多,應(yīng)是由圭表多年連續(xù)觀測(cè)獲得。東漢劉洪的《乾象歷》,取年長為365日,更接近了我們現(xiàn)在知道的回歸年長度。以后各朝一直到元明,回歸年長的精度逐漸在提高,但比起同時(shí)代算術(shù)的發(fā)展水平和計(jì)算精度,仍然是很低的。至于測(cè)冬至的時(shí)刻,精度則一直很低,南朝宋何承天測(cè)冬至的誤差在50刻左右,隨后祖沖之采用在冬至前后若干天測(cè)影長,再用比例歸算的科學(xué)方法,測(cè)冬至的誤差仍有20刻,宋代誤差為10刻,元代郭守敬發(fā)明高表、景符,才使冬至測(cè)定的誤差降到1 刻。[12]
東漢四分歷中對(duì)五星會(huì)合周期的測(cè)定,木星誤差為55分,土星47分,水星6分,火星則達(dá)到581分,數(shù)據(jù)內(nèi)部這么大的差別,已經(jīng)失去了統(tǒng)計(jì)學(xué)意義。到中古時(shí)代,五星恒星周期的測(cè)定誤差比較穩(wěn)定,也僅是在1刻上下。([12],398~399頁)
渾儀是按照渾天說宇宙體系,將地平、子午、赤道、黃道、四游等圈環(huán)嵌套組成的“法象為器”式的天文儀器,觀測(cè)者通過照準(zhǔn)天體,可以利用環(huán)圈上的刻度來測(cè)量天體的坐標(biāo)位置。在讀數(shù)上,清以前渾儀的精度一直處在一個(gè)很低的水平。唐和唐以前的儀器都以“度”為最小單位,觀測(cè)時(shí)僅可精確到半度,[13]北宋期間才出現(xiàn)了度以下的單位“少”(1/4度)、“半”(1/2 度)、“太”(3/4度),[14]元代郭守敬的簡(jiǎn)儀,刻度刻到 1/10 度,可以估量到1/20度。([14],86頁)由此可見,大多數(shù)朝代,還是停留在“一度少弱,一度少強(qiáng)”的水平上,據(jù)研究,宋及宋以前的儀器觀測(cè)精度在某種意義上甚至不如目視直接估測(cè)的精度。[15]
古代已經(jīng)有人意識(shí)到了儀器的測(cè)量誤差問題,明代禮部尚書范謙曾說:“歷家以周天三百六十五度四分度之一,紀(jì)七政之行,又析度為百分,分為百秒,可謂密矣。然渾象之體,徑僅數(shù)尺,布周天度,每度不及指許,安所置分秒哉?至于臬表之樹,不過數(shù)尺,刻漏之籌,不越數(shù)寸,以天之高且廣也,而以尺寸之物求之,欲其纖微不爽,不亦難乎?”([2],1468頁)表明當(dāng)時(shí)人對(duì)儀器測(cè)量精度的懷疑??上]有人把它與天體運(yùn)行模型,以及計(jì)算程序的精度聯(lián)系起來考慮。
至于漏刻測(cè)時(shí),誤差也很可觀。漢代漏刻至少有1/3刻的誤差,到元代《授時(shí)歷》才提高到1/20刻。([12],205~210頁)時(shí)間的測(cè)量是“牽一發(fā)而動(dòng)全身”的事,其誤差對(duì)觀測(cè)數(shù)據(jù)、計(jì)算結(jié)果都會(huì)有重要甚至層層放大的影響。陳美東曾指出:漏壺測(cè)時(shí)如果差一刻,那么測(cè)量太陽行度的誤差就會(huì)有3.6度。([12],90頁)現(xiàn)代誤差理論證明,起始數(shù)據(jù)冬至?xí)r間的測(cè)定誤差如果是一刻,那么無論用什么精密方法進(jìn)行的歷法推算,其預(yù)報(bào)結(jié)果的平均精度也不會(huì)比一刻更高。
而且,今人研究有時(shí)得出的古人觀測(cè)精度也是虛假的。如唐梁令瓚在公元732年測(cè)的黃赤交角為24度,只精確到“度”,但被今人換算成現(xiàn)代度數(shù),就成了23°39'57″,仿佛精確到了秒,然后與現(xiàn)代推算的當(dāng)時(shí)黃赤交角理論值23°36'20″比,只差3'30″,于是虛假的精度就出來了。([12],99頁)其實(shí)“24度”這值說明其精度不會(huì)好于1/2古度。
《后漢書·律歷志》引《石氏星經(jīng)》的話,提到黃道軌“去極百一十五度”,這也不過是個(gè)精確“度”的值,但經(jīng)今人手里點(diǎn)化:一個(gè)象限弧為365度÷4=91度,115度 -91度=23度,化成小數(shù),就成了23.6875度,[16]“去極百一十五度”成了精確到小數(shù)點(diǎn)后4位的數(shù)。實(shí)際上古代是到唐中葉才有十進(jìn)小數(shù)的(以前只是偶見用十進(jìn)制度量衡單位表示的類似小數(shù)的數(shù)目),古人很可能以為他們那“去極百一十五度”是完全精確的,不知什么是“精確度”,更談不上精確到“小數(shù)點(diǎn)后4位”。
古人的歷法活動(dòng)被后人贊為“先以密測(cè)”,“繼以數(shù)推”。([12],30頁)模型精度是與觀測(cè)精度緊密關(guān)聯(lián)的,沒有精密的觀測(cè)結(jié)果,就沒有建立精確模型的基礎(chǔ),也發(fā)現(xiàn)不了舊有模型的偏差。中國描述天體運(yùn)行的模型是“代數(shù)體系”——這個(gè)所謂“代數(shù)”,實(shí)際方法是根據(jù)一定間隔的天文觀測(cè),將觀測(cè)數(shù)據(jù)列表,在了解了天體的運(yùn)行周期和盈縮后,據(jù)此輔之以內(nèi)插等代數(shù)方法來預(yù)測(cè)天體的位置,其模型多是直接來自觀測(cè)數(shù)據(jù)的經(jīng)驗(yàn)外推,只考慮視運(yùn)動(dòng),并不究其幾何關(guān)系。何況,較低的后續(xù)觀測(cè)精度至多也只是改良一下過去的方法而已,難以發(fā)現(xiàn)舊模型的問題,因此這樣的“繼以數(shù)推”就大為可疑了。由于中國古典數(shù)學(xué)體系的非邏輯思維特性(主要通過直覺、想象、類比、靈感等思維方式解決數(shù)學(xué)問題),影響到歷法模型上,就少有改進(jìn)和證偽的潛力,雖然有一次、二次內(nèi)插法等創(chuàng)造,但總的來說,古人更重視推算的準(zhǔn)確性而非天文模型的合理性,不重視對(duì)對(duì)象的解釋,結(jié)果嚴(yán)重影響了模型的精度。比如,用“寫子換母”方法修改數(shù)據(jù),定好上元再確定一些天文周期,這都會(huì)嚴(yán)重影響對(duì)天文模型的思考,也會(huì)大大降低模型的精確性。
隋代劉焯(公元544~610)首次把太陽的不均勻運(yùn)動(dòng)引入歷法推算,這在歷法史上是一個(gè)創(chuàng)舉,值得高度肯定,因?yàn)檫@樣做會(huì)使歷法的精度大大提高,也為深入了解天體的運(yùn)動(dòng)打下基礎(chǔ)??墒牵瑒㈧淘O(shè)立的太陽不均勻運(yùn)動(dòng)的模型有些不可思議:冬至?xí)r太陽運(yùn)行最快,然后減慢,又加快,到春分點(diǎn)前的開區(qū)間達(dá)到最快,過了春分點(diǎn)又突然改成最慢,然后又波動(dòng)到了秋分……(圖1),即便考慮到古人不懂得動(dòng)力學(xué)上加速必須是一個(gè)漸進(jìn)過程這一原理,我們也難以接受這樣大起大落的跳躍式“無級(jí)變速”模型。這種模型不像是觀測(cè)所得,而更像是主觀臆測(cè),即使是觀測(cè)所得,也說明觀測(cè)精度太低,觀測(cè)者把觀測(cè)的“噪音”、誤差都當(dāng)成真實(shí)的太陽運(yùn)動(dòng)了。且不說它與今天觀測(cè)到的太陽不均勻運(yùn)動(dòng)符合多少,只說這樣一個(gè)丑陋的模型,劉焯還在用他發(fā)明的插值法精確地計(jì)算,結(jié)果只能是南轅北轍,從實(shí)用的角度來說,這種計(jì)算還不如不算。
圖1 劉焯的太陽不均勻運(yùn)動(dòng)模型(引自文獻(xiàn)[17])
歷代天文觀測(cè)、天體運(yùn)行模型的精度在以很有限的速度提高。與此相比,古人在歷法的計(jì)算過程上一開始就追求高精度,而且越古,這種追求高精度的欲望就越強(qiáng)。唐及唐以前,天文歷算一直使用分?jǐn)?shù),今天的歷法史家經(jīng)常把這些分?jǐn)?shù)展成小數(shù),然后把古人追求的精度隨心所欲地定位在小數(shù)點(diǎn)后4位或7位上,實(shí)際上今人這樣做還是低估了古人的理想主義,古人對(duì)天體推算的目標(biāo)很可能是“絕對(duì)精確”,所以才使用分?jǐn)?shù),因?yàn)榉謹(jǐn)?shù)是實(shí)現(xiàn)這一目地的最好手段——用今天的術(shù)語說,分?jǐn)?shù)的有效數(shù)字是無窮多位,有真正理想的精確度。
問題是,計(jì)算只是歷法制定過程中的一個(gè)手段,它不是目的,計(jì)算的精確度應(yīng)與所給數(shù)據(jù)的精確度相當(dāng),而算得數(shù)據(jù)的精確度應(yīng)與結(jié)果的實(shí)際需要、或?qū)嶋H能觀測(cè)到的精確度相當(dāng),否則,其精確度再高也是無效的。古人沒有這些觀念,所以常把他們計(jì)算數(shù)據(jù)的精度搞得與觀測(cè)數(shù)據(jù)的精度非常不成比例。比如古代歷法中有些數(shù)據(jù),在計(jì)算中精度高的我們可以把它展到7位數(shù),而觀測(cè)得來的原始數(shù)據(jù)卻是“加一度少弱,減一度少強(qiáng)”,這樣計(jì)算得到的結(jié)果貌似極為精確,其實(shí)早被不精確的原始數(shù)據(jù)吞沒淡化了,至于后續(xù)的觀測(cè)驗(yàn)證,由于古代漏刻、渾儀的精度都十分有限,這些虛假結(jié)果的精度也很難用儀器“證實(shí)”或“證偽”。
所以說,古人用分?jǐn)?shù)計(jì)算歷法并不是一種單純的求簡(jiǎn)心理(希望有個(gè)簡(jiǎn)單的分?jǐn)?shù),比十進(jìn)小數(shù)省力),而是有一種對(duì)絕對(duì)精確和完美的追求趨向。這是古人的理想,但是用今天的眼光來看,這實(shí)際是陷入了一個(gè)不注重誤差的“誤區(qū)”。
保存到現(xiàn)在最早的真正傳世歷法(不光歷譜,也包括“七政”的推算),是明欽天監(jiān)大統(tǒng)歷科編的《大明嘉靖十年歲次辛卯七政躔度》,其中所有的表格中,推算天體位置是宿度只精確到“度”,時(shí)間則精確到“刻”——這是真正可用的推算結(jié)果,至于計(jì)算過程中那么高的精度到此全部抹平了,又回到觀測(cè)時(shí)的“一度少弱,一度少強(qiáng)”水平。明代尚且如此,再古的歷法就更可想而知了。[18]明代禮部尚書范謙對(duì)此曾說:“其差在分秒之間,無可驗(yàn)者,至逾一度,乃可以管窺耳,此所以窮古今之智巧,不能盡其變與?”([2],1468頁)
可以拿我們今日的科學(xué)活動(dòng)與古代比較:現(xiàn)代科學(xué)技術(shù)在誤差和近似理論的指導(dǎo)下,測(cè)量、模型和計(jì)算三者的精度可以在很高的水平上合理匹配。現(xiàn)在,衛(wèi)星導(dǎo)航的時(shí)間準(zhǔn)確度要求在±10納秒之內(nèi),而原子鐘完全可以做到這一點(diǎn);對(duì)天體軌道的確定需要天文觀測(cè)的精度達(dá)到10-3角秒,現(xiàn)代大型的專業(yè)望遠(yuǎn)鏡也完全可以做到這一點(diǎn)。當(dāng)然,現(xiàn)代的巨型電子計(jì)算機(jī)的運(yùn)算可以達(dá)到極高的精確度,比如可以把圓周率計(jì)算到小數(shù)點(diǎn)后超過60萬億位(2011年IBM藍(lán)色基因/P超級(jí)計(jì)算機(jī)計(jì)算結(jié)果),但天文學(xué)家不可能用這樣的圓周率去進(jìn)行天體軌道的計(jì)算,因?yàn)榫同F(xiàn)有的觀測(cè)、模型精確度來說,圓周率超出小數(shù)點(diǎn)后十幾位的計(jì)算,對(duì)精度的提高已經(jīng)沒有任何幫助了。
到了清代,受西方歷法體系、數(shù)學(xué)思想的沖擊,加上對(duì)過去制定歷法經(jīng)驗(yàn)的積累、對(duì)歷法思想的反思,歷法家們對(duì)歷法誤差問題開始有了比較清晰的認(rèn)識(shí)。比較有代表性的是王錫闡,他曾對(duì)歷法誤差問題做過較為系統(tǒng)的分析,他認(rèn)為導(dǎo)致歷法誤差的主要原因,是制定歷法的基本指導(dǎo)思想的失誤,“當(dāng)時(shí)亦各自謂度越前人,而行之未久,差天已遠(yuǎn),往往廢不可用,何也?是在創(chuàng)法之人,不能深推理數(shù),而附和于蓍卦、鐘律以為奇,增損于積年、日法以為定?!?[1],592頁)
同時(shí),王錫闡提出誤差分三方面:數(shù)差、法差和理差。其中數(shù)差是在“以人驗(yàn)天”過程中產(chǎn)生的,相當(dāng)于測(cè)量誤差;法差是在歷法推算過程中因數(shù)學(xué)方法產(chǎn)生的,相當(dāng)于計(jì)算誤差;理差是由于對(duì)天體運(yùn)行的固有規(guī)律未能窮究而產(chǎn)生的,相當(dāng)于模型誤差。不過,王錫闡只強(qiáng)調(diào)了測(cè)量誤差,稱“人明于理而不習(xí)于測(cè)”“器精于制而不善于用”“一器而使兩人測(cè)之,所見必殊”“一人而用兩器測(cè)之,所見必殊”“所測(cè)之時(shí),瞬息必有遲早也”等,對(duì)理差只泛泛說“數(shù)非理也,而因理生數(shù),即因數(shù)可以悟理”,([1],615、593頁)而對(duì)法差基本沒解釋。事實(shí)上,法差,也即推算中的誤差是古代歷法推算中的很關(guān)鍵因素,也一直是被古今學(xué)者在相當(dāng)程度上忽略的因素。當(dāng)代學(xué)者在研究古代歷法時(shí),曾對(duì)歷代冬至太陽所在宿度的測(cè)算作了詳盡的誤差分析,總結(jié)出了九種可能的誤差,但主要考慮的是觀測(cè)誤差和模型誤差,幾乎沒有考慮計(jì)算方法誤差。([12],90~92頁)
由于古人缺乏近似值的科學(xué)概念和對(duì)誤差思想的空缺,對(duì)觀測(cè)精度、模型精度、計(jì)算精度的不統(tǒng)一認(rèn)識(shí)不足,所以在歷法計(jì)算安排上對(duì)高精度的追求經(jīng)常只流于表面和一廂情愿。近、現(xiàn)代學(xué)者們對(duì)古代歷法的研究,對(duì)古人觀測(cè)、模型、參數(shù)制定的精度作了很多有益的探討,證明歷代以來,歷法的精度越來越高,(其綜合成果見文獻(xiàn)[12],180~184頁)但很少有人從理論上分析歷法計(jì)算過程中的精度、誤差問題。本節(jié)主要以《授時(shí)歷》為案例,以古代其他歷法的部分事例為補(bǔ)充,通過歷法中的某些具體計(jì)算過程來對(duì)此問題作一初步分析。
對(duì)誤差問題的理性思考來源于在計(jì)算過程中對(duì)計(jì)算結(jié)果和原始數(shù)據(jù)比較的深刻認(rèn)識(shí),按說中國古代歷法推算的“代數(shù)體系”本應(yīng)及時(shí)發(fā)展出對(duì)誤差問題的觀念,但實(shí)際上,直到明末西法傳入以前,古代歷算家一直沒有對(duì)誤差問題有明確認(rèn)識(shí),包括元代郭守敬的《授時(shí)歷》及其改換名稱后明代沿用的《大統(tǒng)歷》也是如此。日本學(xué)者中山茂曾對(duì)此現(xiàn)象說過一句意味深長的話:《授時(shí)歷》是數(shù)值至上主義。[19]其意思很明了:授時(shí)歷過分依賴數(shù)值方法,不關(guān)心天體的真實(shí)運(yùn)動(dòng)模型,也忽略了可能的觀測(cè)誤差,只沉浸在數(shù)值的精度中。其實(shí)不光《授時(shí)歷》如此,以前的歷法基本都如此。
在實(shí)用計(jì)算中,不掌握近似計(jì)算的規(guī)律會(huì)嚴(yán)重加大計(jì)算量,在手工計(jì)算的時(shí)代此問題尤其突出。對(duì)天體位置的推算,人們總是希望精度越高越好,但是時(shí)刻、天體位置度數(shù)的初始觀測(cè)精度都很低,模型也遠(yuǎn)不能精確反映天體運(yùn)行狀況的條件下,不掌握近似計(jì)算就不止是“事倍功半”了,按筆者模擬推算的經(jīng)驗(yàn),不考慮近似計(jì)算時(shí),計(jì)算量會(huì)多10倍甚至幾十倍,而精確度毫無提高。古代的計(jì)算工具是算籌,運(yùn)用算籌計(jì)算的速度很慢,想必很多時(shí)間都耗費(fèi)在無意義的計(jì)算中了。
舉例來看,北宋《儀天歷》中的漏刻計(jì)算冬至后損益差:
將 n=93.7412 代入,得 G2=91.5844。([12],195 頁)
其實(shí)只要保留二位小數(shù)=93.74,就可達(dá)到測(cè)得精度91.6,也就是說,沒有必要用精確到4位的小數(shù)作數(shù)據(jù),n取二位小數(shù),就可得到精確至0.1度的結(jié)果,而計(jì)算量只有原來的幾十分之一。
我們可以舉一個(gè)普通的計(jì)算過程來說明這個(gè)問題:
例:求測(cè)量數(shù)據(jù)11.66的平方、立方。
查平方表11.662=135.9556;查立方表11.663=1585.242296
如果測(cè)得誤差為0.01,測(cè)得數(shù)據(jù)為11.67,
那么11.672=136.1889;11.673=1589.324463
兩相比較,測(cè)得誤差僅為0.01時(shí),求出結(jié)果的小數(shù)位就根本無用了。
追求絕對(duì)精確、又不懂誤差原理時(shí),經(jīng)常會(huì)對(duì)計(jì)算過程中誤差過大的數(shù)值渾然不覺。雖然古人在很早就有了類似“舍入”的計(jì)算記載,[20]但歷法推算時(shí)對(duì)此常常認(rèn)識(shí)不足,如南朝祖沖之在根據(jù)觀測(cè)值計(jì)算冬至?xí)r刻的過程中,對(duì)時(shí)間值的31.86刻,計(jì)算的下一步就成了31刻,取了不足近似值,([16],90頁)這樣算出的結(jié)果必然無形中加劇了誤差。
觀測(cè)誤差和模型誤差在一系列的計(jì)算程序中可能會(huì)被傳遞、放大。如果數(shù)據(jù)的初始誤差小、模型合理,某一步運(yùn)算對(duì)后一步的影響較小,隨著計(jì)算的繼續(xù)進(jìn)行,可使結(jié)果偏離真實(shí)位置的時(shí)刻來得較晚或很晚,較長久的計(jì)算結(jié)果仍是合天的。反之,如果初始數(shù)據(jù)誤差本來就突出、模型偏差較明顯,再加上計(jì)算程序中對(duì)誤差過大的步驟渾然不覺(如不合理的舍入等),一些步驟會(huì)對(duì)后一步的影響加大,會(huì)導(dǎo)致誤差逐步積累,計(jì)算結(jié)果就遠(yuǎn)離了應(yīng)有的答案,不是“先天”就是“后天”了。對(duì)此,曲安京曾一針見血地指出:“古代歷算誤差太高,很多殫思極慮、苦心孤詣的東西,都被淹沒在誤差中,使歷法幾十年一換?!保?1]
《授時(shí)歷》是中國古代歷法的頂峰,下面我們就通過對(duì)《授時(shí)歷》有關(guān)內(nèi)容的分析,看一看在中國古代歷法的頂峰時(shí)期,天文歷法家對(duì)誤差思想和近似計(jì)算認(rèn)識(shí)到了什么程度。
《授時(shí)歷》的確是中國古代最好的一部歷法,清代歷法家梅文鼎曾對(duì)《授時(shí)歷》作出這樣的贊嘆:“《授時(shí)歷》不用積年,一憑實(shí)測(cè),故自元迄明,承用三四百年無大差,以視漢、晉、唐、宋之屢差屢改,不啻霄壤。故曰:《授時(shí)》集諸家之大成,蓋自西歷以前,未有精于《授時(shí)歷》者也?!保?2]《授時(shí)歷》從元朝至元十八年到至正二十八年(1281~1368),共用了88年;明代沿用《授時(shí)歷》,改名《大統(tǒng)歷》,從洪武元年(1368)到南明小朝廷1662年,元、明共用382年,是歷代歷法中使用時(shí)間最長的一部。
但是,即使是在這樣一部優(yōu)秀、自覺擯棄了完美主義上元積年觀念的歷法中,對(duì)誤差思想和近似計(jì)算也是相當(dāng)忽視的。試舉幾例來看:
載于《元史·歷志》的《授時(shí)歷》以365.2425日為回歸年,每百年減少0.0001日(明《大統(tǒng)歷》廢棄了歲實(shí)消長,即每百年減少的部分),以365.2575度為周天(相當(dāng)于恒星年),以上的精度都是萬分之一日。
而朔望月(朔策)是29.530593日,精度提高成百萬分之一日,交點(diǎn)月(交終)27.212224日,精度也是百萬分之一日,近點(diǎn)月(轉(zhuǎn)終)27.5546日,又降回萬分之一日,精度各不相同。這樣在計(jì)算過程中,實(shí)際上精度高于萬分之一日的部分根本無效,一般情況下僅起到加大計(jì)算量的作用。
對(duì)回歸年的分割更能說明問題。《授時(shí)歷》中一年的節(jié)氣長是這樣確定的:氣策==15.2184375日,精度居然高到千萬分之一日,這是在回歸年(歲實(shí))=365.2425000日的假設(shè)下得出的,而那時(shí)對(duì)回歸年的測(cè)定不可能會(huì)到這樣高的精度,所以節(jié)氣長(氣策)這樣的高精度只有“數(shù)值至上”的意義而沒有實(shí)用意義。
還有,在對(duì)太陽不均勻運(yùn)動(dòng)的校正計(jì)算中,取“縮初盈末限”春正至夏至為93.712025日,冬至至春正為88.909225日,也都比“基本常數(shù)”歲實(shí)的精度毫無必要地高了100倍。
在步日躔具體計(jì)算中有這樣的算式:
每日定行度=四正后每日行度±日差
計(jì)算時(shí),原有的基數(shù)(行積度)取小數(shù)點(diǎn)后4位,“每日行度”取小數(shù)點(diǎn)后6位,“日差”則取小數(shù)后7位,精度不一,前后差了1000倍,相加時(shí)后者的高精度完全被前面的低精度吞沒。([22],656、660 頁)
計(jì)算月行疾遲時(shí)有同樣的問題:
初限損益分=定差0.1111-平差0.000281-立差0.00000325
=0.11081575
三項(xiàng)的精度也差了1000倍,如果第一項(xiàng)稍有誤差,后兩項(xiàng),尤其是第三項(xiàng)就會(huì)變得毫無意義。([22],673頁)
對(duì)于月平行度(每天運(yùn)行的度數(shù)),《授時(shí)歷》取的是13.36875度,比周天度365.2575的精度也高了10倍。在“步交食”的推算中,月平行度取13.36875度,而交終度取363.7934度,正交度又取357.64度,日食陽歷限取6度,精度愈來愈低,如果一個(gè)算式以上幾個(gè)值同時(shí)出現(xiàn),其結(jié)果只能準(zhǔn)確到“度”,可謂極度的不精確了。([22],663頁)
“步五星”中也有類似的問題,如木星動(dòng)態(tài),“平度”數(shù)據(jù)有精確到小數(shù)點(diǎn)后2位的,有小數(shù)點(diǎn)后5位的,限于篇幅,不再詳細(xì)列舉。([22],684頁)
這些事例都說明,在中國傳統(tǒng)歷法中,即使最頂尖水平的歷法家,對(duì)誤差和近似計(jì)算觀念也是混亂的,古代一以貫之的“絕對(duì)精確”觀念仍然占主導(dǎo)地位,否則這么多參差不齊的精確度無法用理性解釋。
最后,我們?cè)倏匆豢粗摹盎∈父顖A術(shù)”問題。
弧矢割圓術(shù)是中國特有的一種球面三角理論,是繼先人的相似勾股術(shù)、沈括會(huì)圓術(shù)后郭守敬的一項(xiàng)杰出創(chuàng)造?;∈父顖A術(shù)在中國傳統(tǒng)歷算上的貢獻(xiàn)和影響,史界早有定論,本文不再贅述,只在這里分析一下使用弧矢割圓術(shù)時(shí)郭守敬在誤差思想上的一些空缺。
郭守敬在推演弧矢割圓術(shù)時(shí),采用的一周天度數(shù)為365.2575度,周天半徑為60.875度(弧矢割圓術(shù)中,線長度也用“度”),后者是怎么來的呢?原來,他取圓周率π為3,這樣365.2575÷3=121.7525,原文為“徑121度七十五分少”,將“少”略去,近似為121.75,取其半就成了60.875度。([2],1479頁)
在南北朝時(shí),祖沖之已經(jīng)把圓周率π的值計(jì)算到了小數(shù)點(diǎn)后7位,雖然這個(gè)結(jié)果幾乎被后人忘記,但人們?cè)谶M(jìn)行有關(guān)圓周與直徑關(guān)系的運(yùn)算時(shí)還是經(jīng)常使用比3更精確的3.14或3.1416。過去歷法較少使用圓周率,而郭守敬不用則已,一用就用了最粗疏的古率3,這實(shí)在讓我們感到不安,因?yàn)橛?或用3.1416,此一項(xiàng)誤差就達(dá)4.7%。圓周率的有效數(shù)字只有1位時(shí),其他的數(shù)據(jù)再精確,有效數(shù)字再多,計(jì)算起來也是只增加計(jì)算量,計(jì)算結(jié)果的有效數(shù)位還是1位。求周天半徑時(shí),求出的121.7525已經(jīng)偏差很大了,接著又把0.0025略去,只保留兩位,除以2時(shí)又得60.875,保留3位——對(duì)精度的這些設(shè)定,實(shí)在是過于隨心所欲了。
在隨后的演算中,郭守敬又取黃赤大距為24度,與周天半徑為60.875度相比,精度又陡降為“度”,按這不甚準(zhǔn)確的周天半徑和精度極低的黃赤大距推算,如圖2,求出了OK即黃赤大股q=56.0268度,DK即黃赤大勾p=23.8070度。([2],1479頁)
而郭守敬實(shí)測(cè)的黃赤大距本為23.90度,如利用此值,同時(shí)求周天半徑時(shí)π取3.1416,經(jīng)計(jì)算可得 q=53.2880度,p=23.2328度,郭守敬的值與之相比,誤差太大。再用他求出的值算黃道各度下赤道度,亦即用勾、股,從弧度求弦、矢,會(huì)導(dǎo)致更大的誤差。
在和白道有關(guān)的常數(shù)中,郭守敬又取黃白交角為6度,精度也降到了“度”。當(dāng)白道降交點(diǎn)與春分點(diǎn)重合時(shí),得出“半交”(最低點(diǎn))在黃道外6度,在赤道內(nèi)18度——郭守敬甚至不顧實(shí)測(cè)的數(shù),無意中又把前人“通約”的理想搬到了黃赤、黃白交角上。([2],1346頁)
有學(xué)者認(rèn)為,郭守敬弧矢割圓術(shù)中的古率3是“會(huì)圓術(shù)”這個(gè)統(tǒng)一的單位系里獨(dú)特的比率,而不是圓周率,因?yàn)闊o論是弧矢割圓術(shù),還是更古的會(huì)圓術(shù),都是近似公式,但其最后結(jié)果與用現(xiàn)代三角學(xué)方法求出的相近,在特殊點(diǎn)甚至與現(xiàn)代值完全相等。[23]那么,是否那些近似公式包含了π的修正值?近似公式抵消了3為“圓周率”的部分誤差?但據(jù)筆者使用部分值驗(yàn)算,使用古率3是次要的,主要是會(huì)圓術(shù)、弧矢割圓術(shù)本身是近似公式,如果用現(xiàn)代三角法算,即使圓周率用3,其結(jié)果的誤差仍小于授時(shí)歷的方法;相反,弧矢割圓術(shù)用更精確的π值時(shí),得到的值精度更高,可見古率3并沒有起到修正作用。
郭守敬在弧矢割圓術(shù)中圓周率用3,一直為后人詬病。潘鼐也認(rèn)為,授時(shí)歷的誤差不是弧矢割圓術(shù)方法的問題,是黃赤交角、圓周率欠準(zhǔn)確[24]。在處理天體運(yùn)行不均勻的盈縮問題時(shí),對(duì)周期性變化的數(shù)值,其誤差尚可能抵消,但對(duì)于很多運(yùn)算,誤差是會(huì)積累的,所以這么優(yōu)秀的一部歷法,用了三百余年后,在明末清初終于變得不可收拾,最后讓位于西法。
細(xì)分析《授時(shí)歷》中推算過程的缺憾,都不是“瑕不掩瑜”所能開脫的,本來是孜孜以求精密的天文歷法計(jì)算上居然率意使用3為圓周率,不顧實(shí)測(cè)的數(shù)據(jù)把天體運(yùn)行軌道交角定成“通約”式的理想狀態(tài),在同一算式中不同項(xiàng)的精度居然相差達(dá)1000倍,都說明歷法制定者在對(duì)算法的認(rèn)識(shí)上有著嚴(yán)重缺陷。
本文僅對(duì)古代歷法在誤差思想方面的空缺作一初步而粗陋的分析,難免掛一漏萬。以往學(xué)者對(duì)歷法的研究,多集中于重建歷法的推算結(jié)構(gòu),而對(duì)其運(yùn)算過程的誤差、特別是誤差思想重視不夠,甚至在復(fù)原計(jì)算時(shí)也常不考慮誤差和近似結(jié)果,無意中在繼續(xù)重演古人的虛幻精度。重建古人的工作是必要的,但在重建的同時(shí),利用現(xiàn)代科學(xué)理論為指導(dǎo),高屋建瓴地了解古人的成就,則更為必要,就誤差分析來說,如果我們?cè)谥亟ü糯徊繗v法的演算結(jié)構(gòu)時(shí),同時(shí)對(duì)之作比較詳盡的誤差分析,想必我們會(huì)得到許多新的認(rèn)識(shí)和發(fā)現(xiàn),這應(yīng)引起歷法研究者的關(guān)注。
圖2 弧矢割圓術(shù)的求黃赤道差和內(nèi)外度圖(引自文獻(xiàn)[22],629頁)
1 薄樹人.中國科學(xué)技術(shù)典籍通匯·天文卷[M].第6冊(cè).鄭州:河南教育出版社,1993.592.
2 薄樹人.中國科學(xué)技術(shù)典籍通匯·天文卷[M].第3冊(cè).鄭州:河南教育出版社,1993.77.
3 孟子[M]∥四部叢刊初編.經(jīng)部.第10冊(cè).卷8.上海:商務(wù)印書館(縮印宋刊本),1936.68.
4 陳遵媯.中國天文學(xué)史[M].第3冊(cè).上海:上海人民出版社,1984.1391.
5 曲安京:中國數(shù)理天文學(xué)[M].北京:科學(xué)出版社,2008.56.
6 高平子.高平子天文歷學(xué)論著選[M].臺(tái)北:中央研究院數(shù)學(xué)研究所,1987.165.
7 伊世同.元代圭表復(fù)原探索[J].自然科學(xué)史研究.1984,3(2):128.
8 何清谷.三輔黃圖校釋[M].北京:中華書局,2005.279.
9 崔石竹,李東生.仿古測(cè)影探索[J].自然科學(xué)史研究.1987,6(4):335.
10 郭盛熾.元代高表測(cè)景數(shù)據(jù)之精度[J].自然科學(xué)史研究.1992,11(2):151.
11 尚書[M]∥四部叢刊初編.經(jīng)部.第1冊(cè).卷1.上海:商務(wù)印書館(縮印宋刊本),1936.7.
12 陳美東.古歷新探[M].沈陽:遼寧教育出版社,1995.61~64.
13 潘鼐.中國恒星觀測(cè)史[M].上海:學(xué)林出版社,1989.140.
14 張柏春.明清測(cè)天儀器之歐化[M].沈陽:遼寧教育出版社,2000.80.
15 王玉民.以尺量天——中國古代目視尺度天象記錄的量化與歸算[M].濟(jì)南:山東教育出版社.2008.46.
16 中國天文學(xué)史整理研究小組.中國天文學(xué)史[M].北京:科學(xué)出版社,1981.96.
17 王榮彬.劉焯《皇極歷》插值法的構(gòu)建原理[J].自然科學(xué)史研究,1994,13(4):295.
18 薄樹人.中國科學(xué)技術(shù)典籍通匯·天文卷[M].第1冊(cè).鄭州:河南教育出版社,1993.709~715.
19 曲安京.一部撰寫了40年的著作終于出版了[M].中國科技史雜志,2006,27(3):270.
20 李儼,錢寶琮.李儼錢寶琮科學(xué)史全集[M].第4卷.沈陽:遼寧教育出版社,1998.142.
21 曲安京.中國歷法與數(shù)學(xué)[M].北京:科學(xué)出版社,2005.178.
22 張培瑜,陳美東,薄樹人,胡鐵珠.中國天文學(xué)史大系·中國古代歷法[M].北京:中國科學(xué)技術(shù)出版社,2008.615.
23 鄧可卉.授時(shí)歷中的弧矢割圓術(shù)再探[J].自然科學(xué)史研究,2007,26(2):162.
24 潘鼐,向英.郭守敬[M].上海:上海人民出版社,1981.156~157.