《時間之問》第5周B 閏月的數字秘密:19年7閏

《時間之問》(跨學科師生討論)系列目錄接上一節...「那我們怎麼去增加閏月呢?在哪一年加閏月呢?」 學生問道。「哦,這的確是個問題,比如增加了一個30天的閏月,可是還沒有完全彌補33天的差距,還少3天。」「這可怎麼處理,古人也碰到了這個棘手的問題了吧?他們是怎麼解決的呢?」「這個問題可不光是中國人遇到了,古希臘人、希伯來人都遇到過這個問題,這個問題折磨了古人幾千年。因為他們也採用了陰陽混合曆,就是每個月根據月亮的圓缺來決定,但是一年的長度又根據太陽的回歸年來確定,這就要通過增加閏月來調和。陰曆和陽曆需要互相折中、互相協調,才有可能融為有機的一體。」

如果把陽曆比作太陽、而陰曆比作月亮,那麼這幅畫里既有太陽又有月亮,就像陰陽混合曆里既有陽曆又有陰曆,需要互相折中、互相協調,才有可能融為有機的一體。(from flickr 公開圖片)「我印象里,每次加閏月好像很隨機,沒有什麼規律。不像公曆裡面的閏年,總是在2月的最後加一天,農曆的閏月不一定加在那個月,而且不一定哪一年有閏月。這個挺複雜的。」 學生說道。「我們不妨從簡單的開始考慮。先做一些粗線條的估計,然後再不斷細化和優化。我想古人應該也是這麼考慮的。先刪繁就簡試試看。」「好的,那我們開始吧。」 學生說到。「可是在開始之前,先要確定兩個最基本的數值,這兩個數值分別是一個回歸年的長度和一個朔望月的長度。因為這是兩個最基本的量,而且基本上不隨時間波動(至少在數百年間如此),只有確定了這兩個數值的大小,才好進行閏月的計算。」「那好。首先確定一年的長度。」「一年的長度可以通過計算兩個冬至時刻之間的時間來確定,也可以通過計算兩個春分之間的長度來確定,總之是地球繞太陽一圈的時間。這個數值古人在春秋戰國時期就已經估算到大約是365.25天,大約相當於每四年增加一天,當然這個數值後來經過了不斷優化變得更加精確,目前的精確值是365.24219...天。歷代天文學家不斷優化這個值,以後我們再討論這個數值是怎麼計算來的。」「那一個朔望月的長度呢?」「這個就比較容易了。古人也發現一個月並不是整數天。」

月相的圓缺變化周期稱為一個朔望月:29.5306天 (from Wikimedia)「是怎麼發現的呢?」 學生問到。「古人發現月亮每29天或者30天就完成一次圓缺周期,每個月的十五或者十六剛好月圓,如果規定每個月都是是29天整,那下一個滿月之日就會比「十五」提前半天到來,再下一個滿月之日會提前到「十四」,這樣滿月之日就會越來越提前到來。」「每過兩個月,滿月的日期就會提前一天?」「對,12個月以後就提前了6天,也就是說初九、初十的時候月亮就圓了,這就嚴重偏離了曆法。」「只需一年就可以發現這個問題?」「對。反過來也是,如果一個陰曆月規定是30天整,那麼滿月之日就越來越推後到來,過了12個月,就要到這個月的「二十一」日左右才會看到月圓。」「一年之內就有這麼大的誤差!那一定有問題。那古人怎麼解決這個問題呢?」 學生問到。「古人解決這個問題的時候遇到了一個困難,那就是如果一個陰曆月不是整數天,那麼如果這個月月圓時刻是在半夜,那麼下一次月圓可能是在正午,而這時是看不到月亮的。」「所以不能像測量一年的長度那樣,直接測量一個朔望月的長度了!」「你說的沒錯。但是古人立刻就想到了一個間接的方法。這方法有點像稱一粒米的重量。單獨稱一粒米的重量是不現實的,那麼可以稱一碗米的重量,然後數一數有多少粒米,二者相除就得到了一粒米的重量。」「那就測量很多個滿月,然後用總共的天數除以滿月的次數?」 學生猜到。「對。連續測量比如100個月圓之間的日期數,比如是2953天,那麼月亮的圓缺周期大約是29.53天。」「我算算,2953天,大約是8年多。時間也不算太長,只要持續記錄月圓就可以了,這個方法比較簡單。」「那我們有了這兩個基本數值,一年大約是365.25天,一個月是29.53天。接下來我們就可以做下一步了,就是計算在哪一年當中來插入閏月。」「好的。」「我們先看一下12個陰曆月就是29.53x12=354.36天,而1年是365.25,兩者差了10.89天,三年就差了32.67天,比一個月還多,所以我們如果每3年就插入一個閏月(每個月平均是29.53天),可是這樣還少3.14天。」

3年1閏,增加一個閏月後,仍有誤差「那可怎麼辦呢?」「我們想想辦法試試」,老師說,「例如把3年拉長3倍變成9年,陰曆和陽曆之間的時間差達到了10.89x9=98.01天,9年中需插入3個閏月(平均需要29.53x3=88.59天),這樣誤差就是98.01-88.59=9.42天。」「對,這很容易理解,相當於把3年1閏的誤差3.14天放大了3倍。」「是的,但是我們知道每年陰曆比陽曆少了10.89天,和這個9.42天非常相近,有可能剛好把兩者抵消,從而大大減少誤差。」「怎麼抵消呢?」「我們把9年變成8年,就少了10.89天,這樣就很大程度上抵消了9.42天,也就是說不是9年3閏,而是8年3閏,誤差就會大大減小。我們來驗證一下:8年內陰曆和陽曆差了10.89x8=87.12天,而3個閏月如果按89天計算,這樣8年中插入3個閏月,誤差只有1天多。這誤差已經是比9年3閏的誤差小了很多了。」「嗯。」

8年3閏:8個回歸年vs. 99個朔望月,誤差比3年1閏大大減少「看來這種把時間等比拉長然後從分母里減去1年的方法可行,那我們繼續吧。現在我們把3年拉長4倍變成12年,需插入插入4個閏月(29.53x4=118.12天),12年總共少了10.89*12-118.12=12.56天。在這個基礎上,我們不要等到12年,而是到了11年就把4個閏月全部插完,11年4閏,這樣11年總共差了10.89*11-118.12=1.67天。這樣每11年的誤差有1.79天,比起12年4閏的12.56天的誤差也大大減少了。」

「嗯。我似乎有點明白了,我們可以繼續這樣,把插入閏月的周期同比拉長,看能不能找到更好的近似值。」「對,就是這個思路。現在我們在11年插入4個閏月的基礎上,繼續翻倍,也就是22年增加8個閏月,同樣誤差加倍就是3.34天,也就是比正常日期少了3.34天。」「讓我看看,這個3.34天和最初的三年一閏少的那3.14天比較接近。」「對,我們離春秋戰國時期採用的曆法只有一步之遙了。」「啊哈!看出來了!我們把這22年8閏的誤差3.34天全部歸結到是其中的一個三年一閏的3.67天產生的,那麼只要把22年8閏減去3年1閏,變成19年7閏,就可以用3.34去抵消3.14,這樣誤差就很小了!」「很好,我們來驗算一下」,老師說,「19年總共是6939.602天,插入7個閏月後,總共有19x12+7=235個朔望月,也就是6939.691天。這樣每19年的誤差只有不到0.1天!」

「真的非常小了。」「是的,這對沒有精準測量儀器的古人來說已經非常不錯了。」「19和235這兩個數有什麼特殊之處嗎」 學生問到。「19年里有12年是平年,每年12個月,另外7年是閏年,每年13個月,總共是235個月。我們可以構造出一幅漂亮的圖形來代表這幾個數字。首先最完美的圖形是圓形,所以我們先畫一個圓;其次六邊形也是非常完美的形狀,雪花和蜂巢都和六邊形有關,所以在這個圓周圍添加6個圓,總共就有了7個圓。這7個圓代表7個閏年,每年有13個月,所以我們在圓里寫上數字13,這樣我們就有了91個月。」「那另外12個平年呢?」「每個平年用一個寫有數字12的圓表示,它們均勻地圍繞著中心的6個圓,與之相切並兩兩相切,你會看到這12個圓和6個圓吻合和嚴絲無縫,最後外圍這12個圓又和一個更大的圓相切,吻合得非常好(左圖)。因為這12個圓表示平年,所以總共有144個月。144個月加上閏年的91個月,剛好是235個月!」

19和235的秘密圖形:左圖:19年中有7個閏年,表示為中心的一個圓和與之相切的6個圓,每個閏年13個月,所以有13x7=91個月;剩下12個平年表示為最外圍的12個相切的圓,每個平年12個月,有12x12=144個月,加起來有91+144=235個月。右圖:原理和布局與左圖相同,都是中心一個圓,中間6個圓,外圍12個圓,只是圓與圓之間不是相切,而是通過圓心相交 (右圖from infinity-codes.net)「真是完美!」 學生說道。「還可以變得更美。第一個圓和它周圍的6個圓如果不是相切的關係,而是相交,中間的圓的圓周通過這6個圓的圓心;此外,中間的6個圓的圓周也剛好經過外圍的12個圓的圓心,那麼就可以畫出一個更美麗的圖案出來!(右圖)」「沒想到這麼漂亮!對了,古人是怎麼推導出19年7閏的呢?」「一方面,古人通過大量數據的積累,可以進行一些猜測從而逼近實際的觀測結果。另外一方面也有一些數學方面的計算方法。」「有哪些方法呢?」「很遺憾,具體的方法已經無法確切知道了,古人只留下了結果,而沒有給出推導過程。我們只能夠根據結果去猜測過程了。」「真是很遺憾!」「是的,這有點像考古發掘。比如我們挖掘到一直骨頭做的笛子,知道遠古之人曾經發明和使用過這樣的樂器,但是古人是用什麼方式做出來這樣的笛子,以及笛子吹出來什麼樣的音樂,我們就只能猜測了。」「那我們猜測古人是怎麼推導出來的呢?」 學生問到。「一種猜測是古人是用了一種分式不等式的方法來逼近這個結果的。」「什麼是分式不等式?」 學生很好奇。「先看一個分式不等式的例子,例如1/2小於2/3,如果把1/2和2/3的分子部分相加,也就是1+2=3,作為新的分子,把分母部分相加2+3=5,作為新的分母,也就得到一個新的分式3/5,也就是0.6,而新的分式的大小剛好是處於1/2和2/3之間。」

「哦,這很簡單。寫成代數表達式就是,如果a/b 小於c/d,那麼(a+c)/(b+d)介於a/b和c/d之間。」

「對,比方我們剛才的例子,4/11小於3/8,那麼7/19就介於這兩者之間。」

「可為什麼剛好是7/19最接近實際呢?」 學生還是有些疑惑。「這是個很好的問題!實際上這已經是關於數學的問題了。」「是的。」「正是。剛才我們說過地球繞太陽一周是365.25天,而月球繞地球一周是29.53天,那麼也就意味著,當地球繞太陽一周的時候,月亮繞了地球12周多一些,但不到13周,確切說是繞了365.2422/29.5306=12.36826周,而這個數不是整數,也就是說用12個月來代表一年則少了10多天,而如果用13個月來表達一年又多出去將近20天。」「所以只能折中一下,在有些年份用12個月,有些年份用13個月。」「如果3年1閏,出現閏月的年份的比率是0.333,誤差較大。如果8年3閏,出現閏月的年份的比率是0.375,誤差有所減少。如果11年4閏,出現閏月的年份的比率是0.3636,誤差繼續減小。如果19年7閏,出現閏月的年份的比率是0.3684,誤差已經很小。你有沒有察覺出來一種趨勢?」「哦,我看到了,越來越趨近於12.36826的小數部分0.36826,而且是從上下兩個方向逼近的。」

從3年1閏到8年3閏、11年4閏、19年7閏,數字從0.33333 一直逐漸逼近到0.36826:上下波動地趨近,而不是單邊趨近「對。我們無意中已經越來越趨近於一個固定的常數,而這個數字決定了我們在一段時間裡要設置多少個閏月,而且知道了這個數值的大小,我們也就知道了每隔多少年,太陽、月亮和地球又會重新回到原來的相對位置,開始新的一輪循環。反過來,如果這個數值有所改變,那麼我們的曆法也要做調整了。」「除了中國人還有其它國家的人推導出這個數值嗎?」「有,古巴比倫人很早以前就推導出了19年7閏。後來古希臘的天文學家默冬(Meton)於公元前431年宣布推導出來,因此19年7閏這個周期在西方又稱為「默冬章」。中國人在公元前589年開始即已掌握19年7閏法則。」「既然已經確定了19年里加7個閏月,那接下來,這7個閏月加在哪些年份的呢?」「一般來說每隔2-3年就要設置一個閏月,古希臘人在這方面的設置沒有統一的立法,每個城邦都有自己的方法。其中一個比較有規律的方法就是把閏年的設置固定到特定的年份。現在人們估計當時的默冬曆法里,在19年的第3、第6、第8、第11、第14、第17、第19年里增加閏月。在有些希臘城邦里,閏月通常置於波塞德昂月之次月,即第二個波塞德昂月(閏6月),但在另外一些城邦閏月的設置是隨意的。」

古希臘某些城邦的19年7閏:在固定的年份(第3、第6、第8、第11、第14、第17、第19年)增加閏月「那古代中國人的閏月又插入到哪個月後面呢?」 學生問到。「說到這一點,中國人提出的方法可以說獨步於世界了。一開始中國人曾經採用過固定把閏月放在年底的方法,但是這種方法不能很好地調和月份和季節。後來到了公元前104年的漢朝,中國人找到一種更加巧妙的方法,並應用在當時的《太初曆》裡面,這種置閏方法一方面月份和季節非常符合,另一方面還非常簡潔優雅!」「這是什麼方法呢?」未完,待續....參考文獻江曉原. 巴比倫—中國天文學史上的幾個問題[J]. 自然辯證法通訊, 1990(4):40-46.徐松岩. 古希臘曆法簡述《時間之問》(跨學科師生討論)系列目錄轉載本文請聯繫原作者獲取授權,同時請註明本文來自汪波科學網博客。鏈接地址:http://blog.sciencenet.cn/blog-813107-1048901.html 
推薦閱讀:

易經64卦占卦方法(一:先天八卦數字法)
數字預測方法和八卦類象速查表
手機號尾數是這3個數字的不要輕易換卡,能夠讓人財運越來越好
日語裡面有哪些數字梗?888是拜拜的意思嗎?
嫁給有錢人之後·周末報數字報刊

TAG:時間 | 閏月 | 數字 | 秘密 |