• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      中國古代歷法推算中的誤差思想空缺

      2012-11-20 08:26:06王玉民
      自然科學史研究 2012年4期
      關鍵詞:歷法天體古人

      王玉民

      (北京天文館古觀象臺,北京 100005)

      研究中國古代歷法時,我們時常為古人計算動輒精確到小數(shù)點后6、7位,或使用巨大分子分母構成的精確數(shù)而驚嘆,按說,用如此精密算法修成的歷法,其可靠性也應該同樣令人驚嘆,然而,縱觀各朝各代,一部歷法經常使用幾十年就因不合天而被廢棄,使用壽命超過百年的屈指可數(shù),這與歷法推算中的表現(xiàn)精度完全不成比例。

      在現(xiàn)代科學研究中,對精度的追求是一項系統(tǒng)活動,具體在對天體運行規(guī)律的把握中,需要觀測精度、模型精度、計算精度的高度統(tǒng)一才能達到理想狀態(tài)。古代歷法家由于缺少誤差思想的指導,在對觀測精度遠遠沒有達到、對天體運行的規(guī)律掌握尚有限的情況下,經常單純追求計算的高精度,以求修成的歷法“止于至善”。但實際上,古人在這方面付出的努力多為事倍功半,因為計算結果比計算本身更重要,沒有意義的數(shù)字位數(shù)參與運算是一種資源的浪費。

      本文以現(xiàn)代誤差和近似計算思想為指導,對古代歷法的誤差思想空缺現(xiàn)象做初步的梳理和探討,以期從這一不引人注意的角度進一步來加深我們對古代歷法的了解和認識。

      1 中歷對“完美”天行的追求

      中國歷史上各朝頻頻改歷,小部分是政治因素,大部分是“驗天不合”或“不精”造成的。

      在“天不變,道亦不變”思想的指導下,古人存在一種能夠對天行“終極把握”的理想,認為天體的運行周期可以通約(至少在中古前是這樣認為的)。戰(zhàn)國秦漢時代的“四分歷”,認為一回歸年為365天,閏周為19年7閏,于是現(xiàn)代人根據(jù)這兩個數(shù)值替古人推

      在追求對天行終極把握理想的推動下,各朝歷法都設法使其精度在前人的基礎上有所提高,這種提高是符合科學精神的,但也由此形成了一種觀念,認為歷法就應該是一種不斷改變的東西。甚至直到清初,引進西學,歷法精度大幅提高時,著名歷法家王錫闡仍說:“歷之道主革,故無百年不改之歷”[1],把改變歷法當成了常態(tài)。可是,由于天體運行的復雜性,使其運行周期找到通約的理想永遠無法實現(xiàn)。中歷是陰陽歷,即使僅僅單純考慮日、月兩天體的運動,也無法找到一個理想的會合周期(如朔望月的發(fā)生原理非常簡單,但每月的長度都各自不同,而且找不出這種長度變化的周期),更何況其他天體運行周期的通約了。

      于是古人試圖尋找另外的途徑作為補充,以輔助實現(xiàn)這一目標。我們的先輩很早就發(fā)現(xiàn),樂律是有明顯周期的,既然日長、年長都有周期,于是他們認為天體運行也會像樂律一樣遵守簡明的數(shù)理關系,因此從很早開始,歷法就和樂律聯(lián)系在一起,稱“律歷”,歷法的某些參數(shù)需要符合黃鐘、律呂之數(shù);另外,根據(jù)古代根深蒂固的數(shù)字神秘觀念,古人還認為,某些數(shù)字存在萬能的功用,包含著萬物之理,所以人們經常讓歷法的某些參數(shù)與一些神秘數(shù)字相合(如乾象、大衍之數(shù)等)。綜合這些因素,古人認為一部完美的歷法應該是既合天,又相合與樂律和神秘數(shù)字的。

      隨著時代的發(fā)展,觀測精度逐漸提高,人們發(fā)現(xiàn)那種簡單的通約關系(如“19年7閏”)并不能合天,但多數(shù)人仍相信天體運行周期是有通約關系的,只是更復雜而已。于是古人使用了一些更為“精密”的參數(shù),如西漢《太初歷》取一個朔望月為29日,東漢劉洪(約公元129~約210)的《乾象歷》定回歸年長為365日,南朝祖沖之(公元429~500)取閏周為392年144閏等等。這些數(shù)據(jù)包含有實測的成分,但也包含有靠樂律、神秘數(shù)來制造高精度的愿望,帶有力求“完全精密”的理想主義的觀念。

      上元積年的使用是古人追求對完美天行把握的最典型體現(xiàn)。上元是古代歷法家尋找的一個理想推算起點,他們相信,按照他們觀測獲知的日、月、五星的運行周期,疊加回推,最后總能找到一個理想時刻:這一刻是一個甲子日的夜半,又是日月合朔的時刻,又恰是太陽過冬至點,同時在冬至點發(fā)生罕見的“五星聯(lián)珠”(即五大行星在視線聚集于冬至點準備出發(fā))。正式推算上元積年的工作是從西漢的劉歆開始,他在《三統(tǒng)歷》中一直推到143,127年前,才找到這個理想時刻。[2]后來隨著交點月、近點月等周期的發(fā)現(xiàn),這些參數(shù)也常被加入到歷法的上元推算中去,隨著各種參數(shù)的精密化,理想推算起點變得越來越難找,只好繼續(xù)向遠古推去,求出的上元積年的數(shù)字也越來越龐大,到唐代的《大衍歷》達到96,661,740年([2],623 頁),金代的《重修大明歷》更達到了 383,768,657 年([2],1266頁)。

      古人這么孜孜以求龐大的上元積年,除了基于天行完美的假設外,還有這樣一種觀念:想為歷法推算、天體位置和天象的推算找到一個通用程序,真正達到孟子說的“千歲之日至,可坐而致也”[3]的隨心所欲不逾矩境界。古代通常的演算方法是“籌算”,用擺放和移動算籌(小竹棍)來排列算式,非常費時費力,這樣,太大的計算量就會成為歷法家沉重的負擔。

      在對中國古代歷法的研究中,推算上元積年的方法因為涉及解一次同余式,是數(shù)學史上的一大貢獻,被大加贊賞,但因其推算的思想不甚“科學”而經常被忽略或淡化。實際上,推算上元積年從方法和思想上都是古代歷法最核心的內容,它可以解開歷法中的很多謎團。陳遵媯曾說:“一部中國歷法史,幾乎可以說是上元的演算史?!保?]上元積年的確定需要同時考慮許多長短不齊的周期,尤其是這些周期達到小數(shù)點后許多位的精度時,回推上去想找到一個共同的“起跑線”,具有非常高的難度,精確的位置恐怕永遠也找不到,今人研究發(fā)現(xiàn),古人設定上元時并不完全是客觀運作的。

      曲安京經過研究證實,古代圍繞著上元積年的計算,存在著一個天文常數(shù)系統(tǒng),推導上元積年時只用60干支周期、朔望月和回歸年長度進行推導。如果布列的同余式組無解,或求出的上元積年超過1億年,說明取的朔望月和回歸年長度“不合用”,需要用何承天調日法“設計”新的朔望月和回歸年長度,再重新計算,若所得結果小于1億年,說明該上元符合要求,于是定出上元和上元積年。至于恒星年、近點月、交點月、五行星會合周期等數(shù)值,按這億年數(shù)量級的尺度作出調整,總是能找到一個既滿足上元起點、又非常符合今日位置的長度周期的。[5]①這是關于中國古代歷法的一個重大發(fā)現(xiàn),關系到歷法制定和推算本質的全局問題,也是關系到歷法精度的重要問題,是涉及整個“森林”生態(tài)而不是只考察某棵樹木的問題,但一直沒有在學界得到廣泛的重視。且不說取朔望月和回歸年長度也靠改換數(shù)字、閉門造車來遷就理想上元,就說恒星年、近點月、交點月、五行星會合周期等數(shù)據(jù)在上億年的漫漫歷史長河中一分配,雖然得到一個與當時觀測長度相近的值,但有沒有誤差,誤差究竟是多少,就無法再去考慮了,結果這些參數(shù)僅符合了當時和較近的過去,行用日久必然會不合天。

      古人確定上元積年時,還常求出理想上元的“總周期”,即上一次上元完美天象到下一次重復出現(xiàn)的時間間隔,其數(shù)字更為龐大,據(jù)高平子研究,后漢四分歷的總周期年數(shù)有18位,遠遠超過今日“大爆炸宇宙學”設定的宇宙年齡,故這種周期大數(shù),根本沒有任何實際意義。有人認為上元的確立說明古人有宇宙學的“開辟”思想,高平子曾尖銳指出:即使真有一個氣、朔、日月五星的“上元起點”,也不過是視象的會合,與一個原始的出發(fā)點是兩回事,所以這種“開辟”思想離科學很遠。[6]

      上元積年本來是一種良好設想,但后來在歷法推算中,歷算家們常過分執(zhí)著于這種設想,就成了一種對理想精度不切實際的追求,在這種追求過程中,歷法家不惜削足適履,將那些本該完全靠實測求出的天體運行周期安排成“導出常數(shù)”,但其實際意義與現(xiàn)代天文學中的“導出常數(shù)”完全不同。由于古人不了解誤差出現(xiàn)的必然性和使用近似計算的必要性,所以這種追求完美的結果反而更不完美——歷法幾十年一換。

      元代的李謙(1233~1311)在《授時歷議》中曾對上元積年,以及其中的人為運作有過這樣中肯的判斷:“昔人立法,必推求往古生數(shù)之始,謂之演紀上元。當斯之際,日月五星同度,如合璧連珠然。惟其世代綿遠,馴積其數(shù)至逾億萬,后人厭其布算繁多,互相推考,斷截其數(shù)而增損日法,以為得改憲之術,此歷代積年日法所以不能相同者也。然行之未遠,浸復差失,蓋天道自然,豈人為附會所能茍合哉?!?[2],1360頁)

      由于后世歷法家的質疑,到中、近古,經唐宋時代的曹士蔿、楊忠輔等作了嘗試性的改革以后,元代郭守敬(1231~1316)在創(chuàng)制《授時歷》中徹底廢除了上元積年。

      清代學者王錫闡(1628~1682)在評價一部歷法的優(yōu)劣時,曾提出這樣的原則:“合則審其偶合與確合,違則求其理違與數(shù)違,不敢茍焉以自欺而已”。([1],607頁)上元積年的湊數(shù)字,就有一種求偶合的傾向,用這種方法產生的歷法,也難以達到真正的確合,結果造成理不違而數(shù)違。

      2 中歷里觀測精度、模型精度、計算精度的不統(tǒng)一問題

      在追求對天行完美把握觀念的指導下,古代歷法家對誤差觀念十分模糊,特別是唐代以前,只用絕對精確的數(shù)字——整數(shù)和分數(shù)來表示天體運行的各種周期及其關系,計算時也盡可能追求絕對的精度。實際上,計算只是歷法編制的一個方面,從科學的角度講,只有做到觀測精度、模型精度、計算精度的統(tǒng)一,才能編制出一部好的歷法來。

      按現(xiàn)代誤差理論,在科學研究中,定量的誤差主要有3種:

      (1)觀測誤差。就天文觀測來說,測量儀器、測量方法、測量人員的因素,都會產生誤差。儀器的安裝準確程度、刻度盤(尺)的調準程度、刻度精密程度,瞄準的精確程度、讀數(shù)的精確程度對誤差的產生都有重要影響,我們只能將其控制在一定范圍內而不可能將其徹底消除。

      (2)模型誤差。就天體運行模型來說,古人對日、月、五星的運動描述時總是進行抽象簡化,往往沒發(fā)現(xiàn)或忽略掉次要因素,如對行星的南北向運動、早期對天體的不均勻運動等,這樣得到的數(shù)學模型只是近似描述。

      (3)截斷和舍入誤差。在作天體位置推算的過程中,用數(shù)值方法求的總是近似解,比如用有限過程逼近無限過程只能取有限項,計算過程的四舍五入、取不足或過剩近似值等。這些誤差積累起來也是很驚人的,這是計算方法造成的誤差,又稱方法誤差。

      我國古代,對天體位置、運行以及相應時間的測量精度如何呢?隨著測量儀器的出現(xiàn)、完善,以及測量方法的不斷改進,測量的精度也在隨著歷史的演變逐漸提高,但其精度與同時代的“計算精度”相比,總是非常低的。

      最早出現(xiàn)的天文儀器是圭表和渾儀。圭表由直立的表(用來生成日影)和水平放置、朝向正北的圭組成,圭上標有刻度,當正午時,表的影子恰好完全落在圭上,通過圭上的刻度可以直接讀出影子的長度。開始人們是尋找正午影子最短的一天,這天即為夏至,兩次夏至的間隔即為一年[7]。

      冬至是一年中正午影子最長的一天,測量冬至表影同樣可以確定年長。后來人們改為主要測、甚至專測冬至表的影子長度來確定回歸年長了。測量冬至日影就需要把圭的長度大大增加,至少在漢代,圭表已經定型為“圭”長于“表”的制式?!度o黃圖》中記載:“長安靈臺……有銅表,高八尺,長一丈三尺”[8],測量冬至影長也成為定規(guī)。對這種改變的原因,典籍中沒有記載,按現(xiàn)代誤差理論,用同一方法測量長的樣本時,比測量短的樣本會獲得更高的精度,因為樣本越長,讀數(shù)的相對誤差就越小。古人可能也是這么想的,這是古人改進測量精度的良好愿望,被后代認可,所以沿用下來,直到清末。

      但實際上,這種改進不但沒有提高測量精度,而且適得其反,降低了測量精度。日影長是一種特殊的樣本,并不遵循“樣本越長,讀數(shù)的相對誤差就越小”這一規(guī)律。具體地說,一個物體的影子越長,其影端由于太陽圓面造成的半影帶就變得越寬,模糊的區(qū)域會按比例增加,所以與測量短影相比,測量長影并不會改善測量的相對誤差。而對于圭表來說,由于冬至投影的傾斜角相對于夏至來說大大減小,會進一步加劇影子的彌散,使半影帶在圭面上變得更寬,測量的相對誤差精度不但不會維持在短影的水平,相反會降得更低。例如在北京,太陽冬至投射角約為26.5°,夏至為73.5°,取二者余弦的倒數(shù)之比,可知圭面上冬至半影的彌散度是夏至半影彌散度的3.2倍。據(jù)筆者對北京古觀象臺復原的郭守敬八尺銅圭表的多年觀察,冬至前后,中午投射在圭面上的表影非常模糊,從正上方拍得的照片看,影緣若有若無,很難確定其位置,而夏至的表影則要清晰得多。后世長圭的圭表除了用于冬至測影外,當然還可以測量各節(jié)氣的日影長度,這是非常必要的,但就利用圭表專門測量冬至影長求回歸年這一點來說,這種技術“改進”實際上是一種倒退。

      鑒于這種測冬至影長的傳統(tǒng),直到元代以前,圭表測影的精度一直很低,直到郭守敬發(fā)明景符后,利用針孔成像原理獲得清晰的影端,測影長的精確度才明顯提高。北京古觀象臺在1985~1986年,利用復原的郭守敬八尺銅表,加上景符進行不間斷的仿古模擬觀測,測得夏至前后影長誤差值為0.1~0.2厘米,冬至前后誤差為0.4~0.7厘米。[9]這也證明了我們上文的分析:使用景符,冬至日半影模糊帶成比例增加的難題被克服了,但不同投射角造成的彌散度問題依然存在,因為圭面上冬至半影的彌散度是夏至半影彌散度的3.2倍,所以才有仿古模擬測影的上述冬、夏至誤差值的差別。

      據(jù)郭盛熾等人利用元代高表加景符的模擬觀測,發(fā)現(xiàn)其誤差平均也在0.47厘米左右,[10]與北京古觀象臺的模擬測影精度相仿,看來使用景符可以獲得一個較高、較穩(wěn)定的絕對精度,但不知古人是否意識到,即使采用景符,測量冬至影長的誤差仍遠遠高于測夏至時的誤差。

      在有可以實際測量的圭表以前,年長的數(shù)據(jù)精度非常之低,《尚書·堯典》中提到一年的長度為“期三百有六旬有六日”,[11]這不僅是舉成數(shù),也是測的不準,日下余分是未定之數(shù)([6],90頁),等于只準確到“天”。由于圭表的觀測目的是求出冬至時刻,進而求出回歸年長,前者難以達到較高精度,因為冬至不一定恰好在正午,即使發(fā)生在正午前后,也不易判定其細小的偏差,但古人掌握了用多年測量求平均數(shù)的辦法來改進年長數(shù)值,以求達到較高精度〔劉宋時代何承天曾“立八尺之表,連測十余年”([2],1083頁)〕?!八姆謿v”的回歸年長為365日,精度相對提高了很多,應是由圭表多年連續(xù)觀測獲得。東漢劉洪的《乾象歷》,取年長為365日,更接近了我們現(xiàn)在知道的回歸年長度。以后各朝一直到元明,回歸年長的精度逐漸在提高,但比起同時代算術的發(fā)展水平和計算精度,仍然是很低的。至于測冬至的時刻,精度則一直很低,南朝宋何承天測冬至的誤差在50刻左右,隨后祖沖之采用在冬至前后若干天測影長,再用比例歸算的科學方法,測冬至的誤差仍有20刻,宋代誤差為10刻,元代郭守敬發(fā)明高表、景符,才使冬至測定的誤差降到1 刻。[12]

      東漢四分歷中對五星會合周期的測定,木星誤差為55分,土星47分,水星6分,火星則達到581分,數(shù)據(jù)內部這么大的差別,已經失去了統(tǒng)計學意義。到中古時代,五星恒星周期的測定誤差比較穩(wěn)定,也僅是在1刻上下。([12],398~399頁)

      渾儀是按照渾天說宇宙體系,將地平、子午、赤道、黃道、四游等圈環(huán)嵌套組成的“法象為器”式的天文儀器,觀測者通過照準天體,可以利用環(huán)圈上的刻度來測量天體的坐標位置。在讀數(shù)上,清以前渾儀的精度一直處在一個很低的水平。唐和唐以前的儀器都以“度”為最小單位,觀測時僅可精確到半度,[13]北宋期間才出現(xiàn)了度以下的單位“少”(1/4度)、“半”(1/2 度)、“太”(3/4度),[14]元代郭守敬的簡儀,刻度刻到 1/10 度,可以估量到1/20度。([14],86頁)由此可見,大多數(shù)朝代,還是停留在“一度少弱,一度少強”的水平上,據(jù)研究,宋及宋以前的儀器觀測精度在某種意義上甚至不如目視直接估測的精度。[15]

      古代已經有人意識到了儀器的測量誤差問題,明代禮部尚書范謙曾說:“歷家以周天三百六十五度四分度之一,紀七政之行,又析度為百分,分為百秒,可謂密矣。然渾象之體,徑僅數(shù)尺,布周天度,每度不及指許,安所置分秒哉?至于臬表之樹,不過數(shù)尺,刻漏之籌,不越數(shù)寸,以天之高且廣也,而以尺寸之物求之,欲其纖微不爽,不亦難乎?”([2],1468頁)表明當時人對儀器測量精度的懷疑??上]有人把它與天體運行模型,以及計算程序的精度聯(lián)系起來考慮。

      至于漏刻測時,誤差也很可觀。漢代漏刻至少有1/3刻的誤差,到元代《授時歷》才提高到1/20刻。([12],205~210頁)時間的測量是“牽一發(fā)而動全身”的事,其誤差對觀測數(shù)據(jù)、計算結果都會有重要甚至層層放大的影響。陳美東曾指出:漏壺測時如果差一刻,那么測量太陽行度的誤差就會有3.6度。([12],90頁)現(xiàn)代誤差理論證明,起始數(shù)據(jù)冬至時間的測定誤差如果是一刻,那么無論用什么精密方法進行的歷法推算,其預報結果的平均精度也不會比一刻更高。

      而且,今人研究有時得出的古人觀測精度也是虛假的。如唐梁令瓚在公元732年測的黃赤交角為24度,只精確到“度”,但被今人換算成現(xiàn)代度數(shù),就成了23°39'57″,仿佛精確到了秒,然后與現(xiàn)代推算的當時黃赤交角理論值23°36'20″比,只差3'30″,于是虛假的精度就出來了。([12],99頁)其實“24度”這值說明其精度不會好于1/2古度。

      《后漢書·律歷志》引《石氏星經》的話,提到黃道軌“去極百一十五度”,這也不過是個精確“度”的值,但經今人手里點化:一個象限弧為365度÷4=91度,115度 -91度=23度,化成小數(shù),就成了23.6875度,[16]“去極百一十五度”成了精確到小數(shù)點后4位的數(shù)。實際上古代是到唐中葉才有十進小數(shù)的(以前只是偶見用十進制度量衡單位表示的類似小數(shù)的數(shù)目),古人很可能以為他們那“去極百一十五度”是完全精確的,不知什么是“精確度”,更談不上精確到“小數(shù)點后4位”。

      古人的歷法活動被后人贊為“先以密測”,“繼以數(shù)推”。([12],30頁)模型精度是與觀測精度緊密關聯(lián)的,沒有精密的觀測結果,就沒有建立精確模型的基礎,也發(fā)現(xiàn)不了舊有模型的偏差。中國描述天體運行的模型是“代數(shù)體系”——這個所謂“代數(shù)”,實際方法是根據(jù)一定間隔的天文觀測,將觀測數(shù)據(jù)列表,在了解了天體的運行周期和盈縮后,據(jù)此輔之以內插等代數(shù)方法來預測天體的位置,其模型多是直接來自觀測數(shù)據(jù)的經驗外推,只考慮視運動,并不究其幾何關系。何況,較低的后續(xù)觀測精度至多也只是改良一下過去的方法而已,難以發(fā)現(xiàn)舊模型的問題,因此這樣的“繼以數(shù)推”就大為可疑了。由于中國古典數(shù)學體系的非邏輯思維特性(主要通過直覺、想象、類比、靈感等思維方式解決數(shù)學問題),影響到歷法模型上,就少有改進和證偽的潛力,雖然有一次、二次內插法等創(chuàng)造,但總的來說,古人更重視推算的準確性而非天文模型的合理性,不重視對對象的解釋,結果嚴重影響了模型的精度。比如,用“寫子換母”方法修改數(shù)據(jù),定好上元再確定一些天文周期,這都會嚴重影響對天文模型的思考,也會大大降低模型的精確性。

      隋代劉焯(公元544~610)首次把太陽的不均勻運動引入歷法推算,這在歷法史上是一個創(chuàng)舉,值得高度肯定,因為這樣做會使歷法的精度大大提高,也為深入了解天體的運動打下基礎??墒牵瑒㈧淘O立的太陽不均勻運動的模型有些不可思議:冬至時太陽運行最快,然后減慢,又加快,到春分點前的開區(qū)間達到最快,過了春分點又突然改成最慢,然后又波動到了秋分……(圖1),即便考慮到古人不懂得動力學上加速必須是一個漸進過程這一原理,我們也難以接受這樣大起大落的跳躍式“無級變速”模型。這種模型不像是觀測所得,而更像是主觀臆測,即使是觀測所得,也說明觀測精度太低,觀測者把觀測的“噪音”、誤差都當成真實的太陽運動了。且不說它與今天觀測到的太陽不均勻運動符合多少,只說這樣一個丑陋的模型,劉焯還在用他發(fā)明的插值法精確地計算,結果只能是南轅北轍,從實用的角度來說,這種計算還不如不算。

      圖1 劉焯的太陽不均勻運動模型(引自文獻[17])

      歷代天文觀測、天體運行模型的精度在以很有限的速度提高。與此相比,古人在歷法的計算過程上一開始就追求高精度,而且越古,這種追求高精度的欲望就越強。唐及唐以前,天文歷算一直使用分數(shù),今天的歷法史家經常把這些分數(shù)展成小數(shù),然后把古人追求的精度隨心所欲地定位在小數(shù)點后4位或7位上,實際上今人這樣做還是低估了古人的理想主義,古人對天體推算的目標很可能是“絕對精確”,所以才使用分數(shù),因為分數(shù)是實現(xiàn)這一目地的最好手段——用今天的術語說,分數(shù)的有效數(shù)字是無窮多位,有真正理想的精確度。

      問題是,計算只是歷法制定過程中的一個手段,它不是目的,計算的精確度應與所給數(shù)據(jù)的精確度相當,而算得數(shù)據(jù)的精確度應與結果的實際需要、或實際能觀測到的精確度相當,否則,其精確度再高也是無效的。古人沒有這些觀念,所以常把他們計算數(shù)據(jù)的精度搞得與觀測數(shù)據(jù)的精度非常不成比例。比如古代歷法中有些數(shù)據(jù),在計算中精度高的我們可以把它展到7位數(shù),而觀測得來的原始數(shù)據(jù)卻是“加一度少弱,減一度少強”,這樣計算得到的結果貌似極為精確,其實早被不精確的原始數(shù)據(jù)吞沒淡化了,至于后續(xù)的觀測驗證,由于古代漏刻、渾儀的精度都十分有限,這些虛假結果的精度也很難用儀器“證實”或“證偽”。

      所以說,古人用分數(shù)計算歷法并不是一種單純的求簡心理(希望有個簡單的分數(shù),比十進小數(shù)省力),而是有一種對絕對精確和完美的追求趨向。這是古人的理想,但是用今天的眼光來看,這實際是陷入了一個不注重誤差的“誤區(qū)”。

      保存到現(xiàn)在最早的真正傳世歷法(不光歷譜,也包括“七政”的推算),是明欽天監(jiān)大統(tǒng)歷科編的《大明嘉靖十年歲次辛卯七政躔度》,其中所有的表格中,推算天體位置是宿度只精確到“度”,時間則精確到“刻”——這是真正可用的推算結果,至于計算過程中那么高的精度到此全部抹平了,又回到觀測時的“一度少弱,一度少強”水平。明代尚且如此,再古的歷法就更可想而知了。[18]明代禮部尚書范謙對此曾說:“其差在分秒之間,無可驗者,至逾一度,乃可以管窺耳,此所以窮古今之智巧,不能盡其變與?”([2],1468頁)

      可以拿我們今日的科學活動與古代比較:現(xiàn)代科學技術在誤差和近似理論的指導下,測量、模型和計算三者的精度可以在很高的水平上合理匹配?,F(xiàn)在,衛(wèi)星導航的時間準確度要求在±10納秒之內,而原子鐘完全可以做到這一點;對天體軌道的確定需要天文觀測的精度達到10-3角秒,現(xiàn)代大型的專業(yè)望遠鏡也完全可以做到這一點。當然,現(xiàn)代的巨型電子計算機的運算可以達到極高的精確度,比如可以把圓周率計算到小數(shù)點后超過60萬億位(2011年IBM藍色基因/P超級計算機計算結果),但天文學家不可能用這樣的圓周率去進行天體軌道的計算,因為就現(xiàn)有的觀測、模型精確度來說,圓周率超出小數(shù)點后十幾位的計算,對精度的提高已經沒有任何幫助了。

      到了清代,受西方歷法體系、數(shù)學思想的沖擊,加上對過去制定歷法經驗的積累、對歷法思想的反思,歷法家們對歷法誤差問題開始有了比較清晰的認識。比較有代表性的是王錫闡,他曾對歷法誤差問題做過較為系統(tǒng)的分析,他認為導致歷法誤差的主要原因,是制定歷法的基本指導思想的失誤,“當時亦各自謂度越前人,而行之未久,差天已遠,往往廢不可用,何也?是在創(chuàng)法之人,不能深推理數(shù),而附和于蓍卦、鐘律以為奇,增損于積年、日法以為定。”([1],592頁)

      同時,王錫闡提出誤差分三方面:數(shù)差、法差和理差。其中數(shù)差是在“以人驗天”過程中產生的,相當于測量誤差;法差是在歷法推算過程中因數(shù)學方法產生的,相當于計算誤差;理差是由于對天體運行的固有規(guī)律未能窮究而產生的,相當于模型誤差。不過,王錫闡只強調了測量誤差,稱“人明于理而不習于測”“器精于制而不善于用”“一器而使兩人測之,所見必殊”“一人而用兩器測之,所見必殊”“所測之時,瞬息必有遲早也”等,對理差只泛泛說“數(shù)非理也,而因理生數(shù),即因數(shù)可以悟理”,([1],615、593頁)而對法差基本沒解釋。事實上,法差,也即推算中的誤差是古代歷法推算中的很關鍵因素,也一直是被古今學者在相當程度上忽略的因素。當代學者在研究古代歷法時,曾對歷代冬至太陽所在宿度的測算作了詳盡的誤差分析,總結出了九種可能的誤差,但主要考慮的是觀測誤差和模型誤差,幾乎沒有考慮計算方法誤差。([12],90~92頁)

      3 中歷里理想化而不實用的高精度問題

      由于古人缺乏近似值的科學概念和對誤差思想的空缺,對觀測精度、模型精度、計算精度的不統(tǒng)一認識不足,所以在歷法計算安排上對高精度的追求經常只流于表面和一廂情愿。近、現(xiàn)代學者們對古代歷法的研究,對古人觀測、模型、參數(shù)制定的精度作了很多有益的探討,證明歷代以來,歷法的精度越來越高,(其綜合成果見文獻[12],180~184頁)但很少有人從理論上分析歷法計算過程中的精度、誤差問題。本節(jié)主要以《授時歷》為案例,以古代其他歷法的部分事例為補充,通過歷法中的某些具體計算過程來對此問題作一初步分析。

      對誤差問題的理性思考來源于在計算過程中對計算結果和原始數(shù)據(jù)比較的深刻認識,按說中國古代歷法推算的“代數(shù)體系”本應及時發(fā)展出對誤差問題的觀念,但實際上,直到明末西法傳入以前,古代歷算家一直沒有對誤差問題有明確認識,包括元代郭守敬的《授時歷》及其改換名稱后明代沿用的《大統(tǒng)歷》也是如此。日本學者中山茂曾對此現(xiàn)象說過一句意味深長的話:《授時歷》是數(shù)值至上主義。[19]其意思很明了:授時歷過分依賴數(shù)值方法,不關心天體的真實運動模型,也忽略了可能的觀測誤差,只沉浸在數(shù)值的精度中。其實不光《授時歷》如此,以前的歷法基本都如此。

      在實用計算中,不掌握近似計算的規(guī)律會嚴重加大計算量,在手工計算的時代此問題尤其突出。對天體位置的推算,人們總是希望精度越高越好,但是時刻、天體位置度數(shù)的初始觀測精度都很低,模型也遠不能精確反映天體運行狀況的條件下,不掌握近似計算就不止是“事倍功半”了,按筆者模擬推算的經驗,不考慮近似計算時,計算量會多10倍甚至幾十倍,而精確度毫無提高。古代的計算工具是算籌,運用算籌計算的速度很慢,想必很多時間都耗費在無意義的計算中了。

      舉例來看,北宋《儀天歷》中的漏刻計算冬至后損益差:

      將 n=93.7412 代入,得 G2=91.5844。([12],195 頁)

      其實只要保留二位小數(shù)=93.74,就可達到測得精度91.6,也就是說,沒有必要用精確到4位的小數(shù)作數(shù)據(jù),n取二位小數(shù),就可得到精確至0.1度的結果,而計算量只有原來的幾十分之一。

      我們可以舉一個普通的計算過程來說明這個問題:

      例:求測量數(shù)據(jù)11.66的平方、立方。

      查平方表11.662=135.9556;查立方表11.663=1585.242296

      如果測得誤差為0.01,測得數(shù)據(jù)為11.67,

      那么11.672=136.1889;11.673=1589.324463

      兩相比較,測得誤差僅為0.01時,求出結果的小數(shù)位就根本無用了。

      追求絕對精確、又不懂誤差原理時,經常會對計算過程中誤差過大的數(shù)值渾然不覺。雖然古人在很早就有了類似“舍入”的計算記載,[20]但歷法推算時對此常常認識不足,如南朝祖沖之在根據(jù)觀測值計算冬至時刻的過程中,對時間值的31.86刻,計算的下一步就成了31刻,取了不足近似值,([16],90頁)這樣算出的結果必然無形中加劇了誤差。

      觀測誤差和模型誤差在一系列的計算程序中可能會被傳遞、放大。如果數(shù)據(jù)的初始誤差小、模型合理,某一步運算對后一步的影響較小,隨著計算的繼續(xù)進行,可使結果偏離真實位置的時刻來得較晚或很晚,較長久的計算結果仍是合天的。反之,如果初始數(shù)據(jù)誤差本來就突出、模型偏差較明顯,再加上計算程序中對誤差過大的步驟渾然不覺(如不合理的舍入等),一些步驟會對后一步的影響加大,會導致誤差逐步積累,計算結果就遠離了應有的答案,不是“先天”就是“后天”了。對此,曲安京曾一針見血地指出:“古代歷算誤差太高,很多殫思極慮、苦心孤詣的東西,都被淹沒在誤差中,使歷法幾十年一換?!保?1]

      《授時歷》是中國古代歷法的頂峰,下面我們就通過對《授時歷》有關內容的分析,看一看在中國古代歷法的頂峰時期,天文歷法家對誤差思想和近似計算認識到了什么程度。

      《授時歷》的確是中國古代最好的一部歷法,清代歷法家梅文鼎曾對《授時歷》作出這樣的贊嘆:“《授時歷》不用積年,一憑實測,故自元迄明,承用三四百年無大差,以視漢、晉、唐、宋之屢差屢改,不啻霄壤。故曰:《授時》集諸家之大成,蓋自西歷以前,未有精于《授時歷》者也?!保?2]《授時歷》從元朝至元十八年到至正二十八年(1281~1368),共用了88年;明代沿用《授時歷》,改名《大統(tǒng)歷》,從洪武元年(1368)到南明小朝廷1662年,元、明共用382年,是歷代歷法中使用時間最長的一部。

      但是,即使是在這樣一部優(yōu)秀、自覺擯棄了完美主義上元積年觀念的歷法中,對誤差思想和近似計算也是相當忽視的。試舉幾例來看:

      載于《元史·歷志》的《授時歷》以365.2425日為回歸年,每百年減少0.0001日(明《大統(tǒng)歷》廢棄了歲實消長,即每百年減少的部分),以365.2575度為周天(相當于恒星年),以上的精度都是萬分之一日。

      而朔望月(朔策)是29.530593日,精度提高成百萬分之一日,交點月(交終)27.212224日,精度也是百萬分之一日,近點月(轉終)27.5546日,又降回萬分之一日,精度各不相同。這樣在計算過程中,實際上精度高于萬分之一日的部分根本無效,一般情況下僅起到加大計算量的作用。

      對回歸年的分割更能說明問題。《授時歷》中一年的節(jié)氣長是這樣確定的:氣策==15.2184375日,精度居然高到千萬分之一日,這是在回歸年(歲實)=365.2425000日的假設下得出的,而那時對回歸年的測定不可能會到這樣高的精度,所以節(jié)氣長(氣策)這樣的高精度只有“數(shù)值至上”的意義而沒有實用意義。

      還有,在對太陽不均勻運動的校正計算中,取“縮初盈末限”春正至夏至為93.712025日,冬至至春正為88.909225日,也都比“基本常數(shù)”歲實的精度毫無必要地高了100倍。

      在步日躔具體計算中有這樣的算式:

      每日定行度=四正后每日行度±日差

      計算時,原有的基數(shù)(行積度)取小數(shù)點后4位,“每日行度”取小數(shù)點后6位,“日差”則取小數(shù)后7位,精度不一,前后差了1000倍,相加時后者的高精度完全被前面的低精度吞沒。([22],656、660 頁)

      計算月行疾遲時有同樣的問題:

      初限損益分=定差0.1111-平差0.000281-立差0.00000325

      =0.11081575

      三項的精度也差了1000倍,如果第一項稍有誤差,后兩項,尤其是第三項就會變得毫無意義。([22],673頁)

      對于月平行度(每天運行的度數(shù)),《授時歷》取的是13.36875度,比周天度365.2575的精度也高了10倍。在“步交食”的推算中,月平行度取13.36875度,而交終度取363.7934度,正交度又取357.64度,日食陽歷限取6度,精度愈來愈低,如果一個算式以上幾個值同時出現(xiàn),其結果只能準確到“度”,可謂極度的不精確了。([22],663頁)

      “步五星”中也有類似的問題,如木星動態(tài),“平度”數(shù)據(jù)有精確到小數(shù)點后2位的,有小數(shù)點后5位的,限于篇幅,不再詳細列舉。([22],684頁)

      這些事例都說明,在中國傳統(tǒng)歷法中,即使最頂尖水平的歷法家,對誤差和近似計算觀念也是混亂的,古代一以貫之的“絕對精確”觀念仍然占主導地位,否則這么多參差不齊的精確度無法用理性解釋。

      最后,我們再看一看著名的“弧矢割圓術”問題。

      弧矢割圓術是中國特有的一種球面三角理論,是繼先人的相似勾股術、沈括會圓術后郭守敬的一項杰出創(chuàng)造?;∈父顖A術在中國傳統(tǒng)歷算上的貢獻和影響,史界早有定論,本文不再贅述,只在這里分析一下使用弧矢割圓術時郭守敬在誤差思想上的一些空缺。

      郭守敬在推演弧矢割圓術時,采用的一周天度數(shù)為365.2575度,周天半徑為60.875度(弧矢割圓術中,線長度也用“度”),后者是怎么來的呢?原來,他取圓周率π為3,這樣365.2575÷3=121.7525,原文為“徑121度七十五分少”,將“少”略去,近似為121.75,取其半就成了60.875度。([2],1479頁)

      在南北朝時,祖沖之已經把圓周率π的值計算到了小數(shù)點后7位,雖然這個結果幾乎被后人忘記,但人們在進行有關圓周與直徑關系的運算時還是經常使用比3更精確的3.14或3.1416。過去歷法較少使用圓周率,而郭守敬不用則已,一用就用了最粗疏的古率3,這實在讓我們感到不安,因為用3或用3.1416,此一項誤差就達4.7%。圓周率的有效數(shù)字只有1位時,其他的數(shù)據(jù)再精確,有效數(shù)字再多,計算起來也是只增加計算量,計算結果的有效數(shù)位還是1位。求周天半徑時,求出的121.7525已經偏差很大了,接著又把0.0025略去,只保留兩位,除以2時又得60.875,保留3位——對精度的這些設定,實在是過于隨心所欲了。

      在隨后的演算中,郭守敬又取黃赤大距為24度,與周天半徑為60.875度相比,精度又陡降為“度”,按這不甚準確的周天半徑和精度極低的黃赤大距推算,如圖2,求出了OK即黃赤大股q=56.0268度,DK即黃赤大勾p=23.8070度。([2],1479頁)

      而郭守敬實測的黃赤大距本為23.90度,如利用此值,同時求周天半徑時π取3.1416,經計算可得 q=53.2880度,p=23.2328度,郭守敬的值與之相比,誤差太大。再用他求出的值算黃道各度下赤道度,亦即用勾、股,從弧度求弦、矢,會導致更大的誤差。

      在和白道有關的常數(shù)中,郭守敬又取黃白交角為6度,精度也降到了“度”。當白道降交點與春分點重合時,得出“半交”(最低點)在黃道外6度,在赤道內18度——郭守敬甚至不顧實測的數(shù),無意中又把前人“通約”的理想搬到了黃赤、黃白交角上。([2],1346頁)

      有學者認為,郭守敬弧矢割圓術中的古率3是“會圓術”這個統(tǒng)一的單位系里獨特的比率,而不是圓周率,因為無論是弧矢割圓術,還是更古的會圓術,都是近似公式,但其最后結果與用現(xiàn)代三角學方法求出的相近,在特殊點甚至與現(xiàn)代值完全相等。[23]那么,是否那些近似公式包含了π的修正值?近似公式抵消了3為“圓周率”的部分誤差?但據(jù)筆者使用部分值驗算,使用古率3是次要的,主要是會圓術、弧矢割圓術本身是近似公式,如果用現(xiàn)代三角法算,即使圓周率用3,其結果的誤差仍小于授時歷的方法;相反,弧矢割圓術用更精確的π值時,得到的值精度更高,可見古率3并沒有起到修正作用。

      郭守敬在弧矢割圓術中圓周率用3,一直為后人詬病。潘鼐也認為,授時歷的誤差不是弧矢割圓術方法的問題,是黃赤交角、圓周率欠準確[24]。在處理天體運行不均勻的盈縮問題時,對周期性變化的數(shù)值,其誤差尚可能抵消,但對于很多運算,誤差是會積累的,所以這么優(yōu)秀的一部歷法,用了三百余年后,在明末清初終于變得不可收拾,最后讓位于西法。

      細分析《授時歷》中推算過程的缺憾,都不是“瑕不掩瑜”所能開脫的,本來是孜孜以求精密的天文歷法計算上居然率意使用3為圓周率,不顧實測的數(shù)據(jù)把天體運行軌道交角定成“通約”式的理想狀態(tài),在同一算式中不同項的精度居然相差達1000倍,都說明歷法制定者在對算法的認識上有著嚴重缺陷。

      本文僅對古代歷法在誤差思想方面的空缺作一初步而粗陋的分析,難免掛一漏萬。以往學者對歷法的研究,多集中于重建歷法的推算結構,而對其運算過程的誤差、特別是誤差思想重視不夠,甚至在復原計算時也常不考慮誤差和近似結果,無意中在繼續(xù)重演古人的虛幻精度。重建古人的工作是必要的,但在重建的同時,利用現(xiàn)代科學理論為指導,高屋建瓴地了解古人的成就,則更為必要,就誤差分析來說,如果我們在重建古代一部歷法的演算結構時,同時對之作比較詳盡的誤差分析,想必我們會得到許多新的認識和發(fā)現(xiàn),這應引起歷法研究者的關注。

      圖2 弧矢割圓術的求黃赤道差和內外度圖(引自文獻[22],629頁)

      1 薄樹人.中國科學技術典籍通匯·天文卷[M].第6冊.鄭州:河南教育出版社,1993.592.

      2 薄樹人.中國科學技術典籍通匯·天文卷[M].第3冊.鄭州:河南教育出版社,1993.77.

      3 孟子[M]∥四部叢刊初編.經部.第10冊.卷8.上海:商務印書館(縮印宋刊本),1936.68.

      4 陳遵媯.中國天文學史[M].第3冊.上海:上海人民出版社,1984.1391.

      5 曲安京:中國數(shù)理天文學[M].北京:科學出版社,2008.56.

      6 高平子.高平子天文歷學論著選[M].臺北:中央研究院數(shù)學研究所,1987.165.

      7 伊世同.元代圭表復原探索[J].自然科學史研究.1984,3(2):128.

      8 何清谷.三輔黃圖校釋[M].北京:中華書局,2005.279.

      9 崔石竹,李東生.仿古測影探索[J].自然科學史研究.1987,6(4):335.

      10 郭盛熾.元代高表測景數(shù)據(jù)之精度[J].自然科學史研究.1992,11(2):151.

      11 尚書[M]∥四部叢刊初編.經部.第1冊.卷1.上海:商務印書館(縮印宋刊本),1936.7.

      12 陳美東.古歷新探[M].沈陽:遼寧教育出版社,1995.61~64.

      13 潘鼐.中國恒星觀測史[M].上海:學林出版社,1989.140.

      14 張柏春.明清測天儀器之歐化[M].沈陽:遼寧教育出版社,2000.80.

      15 王玉民.以尺量天——中國古代目視尺度天象記錄的量化與歸算[M].濟南:山東教育出版社.2008.46.

      16 中國天文學史整理研究小組.中國天文學史[M].北京:科學出版社,1981.96.

      17 王榮彬.劉焯《皇極歷》插值法的構建原理[J].自然科學史研究,1994,13(4):295.

      18 薄樹人.中國科學技術典籍通匯·天文卷[M].第1冊.鄭州:河南教育出版社,1993.709~715.

      19 曲安京.一部撰寫了40年的著作終于出版了[M].中國科技史雜志,2006,27(3):270.

      20 李儼,錢寶琮.李儼錢寶琮科學史全集[M].第4卷.沈陽:遼寧教育出版社,1998.142.

      21 曲安京.中國歷法與數(shù)學[M].北京:科學出版社,2005.178.

      22 張培瑜,陳美東,薄樹人,胡鐵珠.中國天文學史大系·中國古代歷法[M].北京:中國科學技術出版社,2008.615.

      23 鄧可卉.授時歷中的弧矢割圓術再探[J].自然科學史研究,2007,26(2):162.

      24 潘鼐,向英.郭守敬[M].上海:上海人民出版社,1981.156~157.

      猜你喜歡
      歷法天體古人
      遨游天地話歷法 穿越時空訪古臺
      軍事文摘(2023年20期)2023-10-31 08:43:18
      從走馬樓西漢簡歧異干支談漢初歷法混用問題
      好玩的古人
      太陽系中的小天體
      太空探索(2020年10期)2020-10-22 03:59:40
      古人怎么洗澡?
      古人到底姓什么?
      文苑(2019年20期)2019-11-16 08:52:34
      測量遙遠天體的秘籍
      一分鐘認識深空天體
      古人如何睡眠養(yǎng)生?
      海峽姐妹(2019年1期)2019-03-23 02:43:00
      新天體類型罕見
      方山县| 灵武市| 仲巴县| 十堰市| 巩留县| 涡阳县| 杨浦区| 乌苏市| 宜良县| 英超| 万荣县| 宝兴县| 静宁县| 汪清县| 同德县| 南皮县| 闸北区| 寿阳县| 尚志市| 裕民县| 那坡县| 柳江县| 呼图壁县| 阳江市| 苍溪县| 若尔盖县| 威信县| 綦江县| 枝江市| 嘉鱼县| 建德市| 信阳市| 丰宁| 恭城| 新河县| 北碚区| 临西县| 寿光市| 铅山县| 东明县| 宣城市|