當前位置: 華文問答 > 科學

中國古代歷法是如何推算的?

2013-10-27科學

中國傳統歷法是陰陽歷,兼顧月相變化和太陽周年視運動的周期。
分以下幾點:朔望月、回歸年、閏月、節氣和正月的設定

規定朔日(月亮完全看不見那天,為什麽?它和太陽幾乎在同一方向)為每月的第一天。

先講最原始的天文觀測手段,高表測影法,現在地面上垂直豎起一根很高的桿子,然後在沿南北方向水平放置另一根桿子,立著的叫做表(其實華表最早的用途就是這個),躺著的叫做圭。人們很早就發現一年中不同時候太陽的正午高度是不同的,那時表投在圭上的影子長短也會隨之發生變化,一年當中影子最長的一天即為冬至(這個說法不是很準確,先這麽理解吧,稍後解釋為什麽不準確,另外為什麽是冬至而不選夏至,因為夏至影子最短,假定尺子的測量精度一定,夏至前後影長變化太小,就很難測準,而且,對於中國來說夏天雨多啊,沒太陽怎麽辦)。這樣就會產生一個問題,透過高表測影法測得的太陽回歸周期約365天,而月相的變化周期並不能與之形成簡單的倍數關系,於是古人設定了閏月來調整。

下面講講關於調整的原則

1.冬至這個古代最容易觀測的節氣一定要在11月,其實應該這麽說,冬至一定在建子之月(子醜寅卯的子啦),為什麽11月是建子之月,實際上古人使用地支來表示方位,冬至時節北鬥的鬥柄在半夜時指向北方,也就是子的方向,也即鬥建為子,這個月就是建子之月,由於正月選在了建寅之月,子月剛好排到11了。
2.一年二十四節氣當中,從冬至開始每隔一個節氣就被叫做中氣,有中氣的月按地支排一遍,一般來說,朔望月的長度略短於兩個中氣相隔的時間,不是每個朔望月都可以有中氣,那麽總會有那麽一些月份會沒有中氣,對於這些月份就規定為前一個月的閏月,如果相鄰兩個子月之間恰好間隔11個朔望月,則不管這些月中有沒有中氣都不置閏。由於每個冬至都在11月,那麽月份的回歸周期就可以很好地與太陽的回歸周期穩定的聯系起來。

還有一個問題就是太陽的回歸周期也不是嚴格的地球晝夜周期的倍數,一回歸年約365.2422天。而高表測影法只有正午的數據是有效的,太陽到達冬至點(赤緯最南時)也不一定恰好在中午,這種誤差是不可避免而又難以測量的,在結合長年的觀測數據發現,這個數據介於365到366天之間,經過對多年數據的平均,得出回歸年的長度,秦漢時期就已經測出一回歸年約365又1/4天,於是有了【四分歷】(為什麽這個名字?我猜是因為多出來1/4天吧),西方的儒略歷也是這個周期。後來發現多出來的這1/4天也不準確,經過精密觀測和不斷修正,到了元代郭守敬制定【授時歷】的時候已經把周期精確到365.2425天,和現行公歷(格裏高利歷)相同,公歷出現還更晚一點,這個精度足以保證幾千年內不會出現太多偏差。(插一句,郭守敬已經使用的表已經不再是最初的一根桿子那麽簡單了,他在登封搭了一個觀星台,並且在表頂端透過狹縫裝置更加精確地測量影長,測量器械之精妙,讓我無比汗顏,在機加工條件那麽簡陋的條件下,我根本想不出那麽精巧的裝置,考慮之全面,無與倫比,還能透過此裝置高度精確地測量月球和星星經過上中天高度角,一個現代天文愛好者的優越感蕩然無存。)
/*到了晚明時期,邢雲路沿著這套方法,用了三百多年的數據(當然啦,郭守敬的數據肯定也在其中),把精度已經提高到了365.2422天和現代測量值已經十分接近。*/
(此段真實性存疑,邢雲路有數據造假的可能,另由 @何謙羽 評論,冬至點回歸年應為365.2427天,邢雲路數據實際偏差更大)
現在再填一個坑,之前說了,影子最長那天是冬至,實際上應該是太陽過冬至點那天是冬至,之前說了過冬至點的時候可不一定是中午,萬一是半夜呢,這就涉及到精確測量冬至點的問題。古人也有辦法,假定太陽在天上的運動是均勻的(很不幸,這個假定不成立,地球的軌域是個離心率很小的橢圓,只能近似看成圓,在靠近近地點的時候地球的公轉會加快一點,太陽在天空背景上一天會移動更大的距離),那麽冬至前後長達幾個月的影長數據都收集一下,它們的長度應該關於某個時間點對稱,這個點就是冬至點(由於之前說的假定不成立,所以實際上是不對稱的,但古代采樣數據少,精度低,沒有發現,不過也已經很接近了,對於古代對歷法的精度要求來說已經滿足了,是我太吹毛求疵了)。雖然通常來說,這些影長並不關於冬至點對稱,但有個特殊情況下還是可以對稱的,那就是假如太陽過冬至點的時候,恰好地球在近日點呢?這兩個時間越接近,那麽影長就越對稱,歷史上還真有這麽一陣(為什麽這麽說,稍後解釋,好像坑挖的有點多),大約是南宋的時候,這種誤差就可以很小,郭守敬比較走運,他所處的時代離這個時期更近,誤差較小,邢雲路就沒那麽走運了,誤差稍大。
坑挖大了。。。補充點知識,表述一下他們計算冬至點的精度。。。中國古時候一天時間劃分不是說只劃分到時辰或者刻,一個時辰也不是就等於8刻,,古人把一天平均劃分為100刻,而一天還平均劃分為12時辰,所以嚴格的說,一刻等於現代14.4分鐘而不是15分鐘,古時一刻為100分,1分為100秒(僅部份時代才用此進制,歷史上用過一天96刻、100刻、108刻、110刻、120刻等多種進制),和現代很不同,雖然他們無法測量也用不到這麽細節的時間劃分,但不妨礙他們創造這些單位,並在計算時間中使用,像郭守敬邢雲路這樣的人都把冬至點算到了秒(當然是古代單位),現代時間單位的引進並使用從晚明(沒錯,和邢雲路一個時候,東西文化沖突啊)一直到清代才完成了代替。題外話:從日落到日出,在古代無法使用日晷的環境下被平均劃分為5份,從一更(我習慣讀jing,不知道現在的普通話怎麽規定,我學的時候,貌似這麽讀)到五更。由於一年之中晝夜長短變化,每一更的起止時間都會發生變化,唯一可以肯定的是,半夜12點,一定在三更的正中間。

接著填坑,不是每個冬至時刻,地球都在近日點附近,這是由於歲差的作用,每年太陽經過冬至點的時候,地球的位置會比前一年更向後移動一點點,就是回歸年周期不等於公轉周期。關於歲差就不多說了,攤子鋪得有點大(涉及陀螺運動,古人也很早就發現了,不過地球的軌域是個橢圓,以及其產生的影響要到開普勒發現行星運動三大定律才被人知道,其實是前兩大定律發現時,這一年是1609年,比邢雲路測定回歸年周期略晚幾年,邢雲路他們不知道也是沒辦法的事)。


好了,剛剛說到了古人測定回歸年周期,下面再說說關於月亮和節氣的事,畢竟月相和節氣是陰陽歷穩定存在的必要條件。

關於朔望月周期測定就不多說了,畢竟從殘月到新月的變化是很清楚的,古人總結了一大堆變化規律,雖然不完善,但預報前後幾十年到上百年還是可以的。至於為什麽古代頒布了那麽多歷法,一是因為頒布歷法是王朝強調正統性的重要手段,二是重大天象,如日月食的預報精度古人還是很看重的。由於三體運動難以計算(自行百度),計算月亮的位置遠不是測量朔望月周期那麽簡單,另外,由於月亮離地球太近了,不同地理位置同時觀察月亮在天空背景上的位置是不同的(三角視差,可以多達兩個滿月那麽大,要知道太陽和月亮的視圓面是差不多大的,兩個滿月的差別還是很明顯的,比如,這裏能看到日全食,那裏就是日偏食,再遠的地方就根本看不到了),這一切都為長時間預報造成了困難,而歷法提供的計算方法,只能保證一定時間範圍內的精度。諸如地球是圓的,地理經緯座標,球面幾何等都是晚明才隨著西洋傳教士傳播到中國。這也是為什麽邢雲路領導的中國古典天文學改歷失敗,他的歷法對於日月食的預報精度,遠遠比不上十幾年後徐光啟主導的采用西方第谷天文體系的【崇禎歷書】(後被湯若望獻給清政府)。可靠地月球執行軌跡,人類要到18世紀著名的經度之爭時期才得以解決,之前不是不能,而是不夠準確可靠。

另外要說的是節氣。
中國古代計算節氣有兩種方法,一種是土生土長的,叫平氣法,就是把兩個冬至之間的時間平均的劃分為24份,設定節氣。另一種,則是晚明時期,徐光啟改歷時采用的定氣法,及太陽在黃道上從春分點(黃道與赤道的兩個交點之一,另一個是秋分點),每移動15°設定一個節氣。定氣法能很好地忽略掉地球公轉角速度的不均勻。

不得不說,明朝的最後幾十年時間裏,是中國歷法天文學最燦爛的時期,有專攻古典天文學的朱載堉和邢雲路,也有從西方來的利瑪竇湯若望,更少不了實際推動學習交流西方文明的徐光啟李之藻等。一直不是很明白,為什麽西方會選擇難以測量的春分點作為天文學的基準(必須承認,春分點很好,它是交點,很重要;現在弄清楚了,二至點太陽高度角變化速度很慢,中國選擇冬至是利用影長放大這個變化,而西方選擇春分是直接利用二分點太陽高度角變化最快的特點),不過中國古典天文學中冬至點的沒落正是這個時期開始。不過對於歷法中冬至放在子月還是被保留了下來。

下面填最後一個坑:為什麽正月放在寅月呢?
這裏先說明一下鬥建這個概念,古人根據北鬥鬥柄的指向來確定一年中的不同時間,例如鬥柄東指天下皆春,鬥柄南指天下皆夏,鬥柄西指天下皆秋,鬥柄北指天下皆冬。而和現在使用表盤時間指代方向一樣,古中國使用地支指代方向,子是北方,午是南方,卯是東方,酉是西方,宮城的南門叫午門,經線是南北向所以又叫子午線。建子之月就是鬥柄指北之月,算是原始太陽歷觀測的遺存,可以看出早期中國也采用過觀察鬥柄的方式。
實際上秦以前,中國的王朝和諸侯曾經選擇過把正月放在子月(建子)、醜月(建醜)以及寅月(建寅),但選擇寅月有個好處就是它離立春這個節氣很近,一年的開始放在籌備春耕的時候總是更能提醒人,新的一年確實到啦。