歷法中的數學
數學自古至今時時充斥于我們生活的角角落落,并對我們的生產和生活產生重大影響。天文中的歷法同樣也蘊含著數學的玄機。
我們現在使用的歷法為國際通用的公歷,又稱陽歷。公歷有平年和閏年之分,平年有365天,其中二月有28天,閏年366天,其中二月有29天。公歷中的閏法對閏年是這樣規定的“四年一閏,百年少一閏,四百年加一閏”。為什么公歷中要安排復雜的閏法呢?
公歷中 閏年的算法
地球繞太陽一圈需時365天5時48分46秒,以天為單位化成分數即10463/43200
輾轉相除法
將分數部分 10463/43200 展成連分數
漸進分數依次為
現在通行的辦法是每四年一閏,每逢百年免閏一次,而每逢四百年又恢復一閏。
第一個漸近分數 1/4 告訴我們每四年一閏。
第三個漸近分數 8/33 告訴我們每三十三年八閏,即每九十九年二十四閏,為方便計,定為每一百年二十四閏,這就是逢百不閏的道理。
每四百年間,閏年的總數該為 3 x 31 4 x 1 = 97,若每百年 24 閏則 400 年有 96 閏,比實際需要的少了一次,故需再作調整,這就是逢 400 年恢復閏年的理由。
月相
其實這是由地球圍繞太陽公轉決定的。我們知道,地球繞太陽公轉一圈的時間為365天5時48分46秒,而平年僅有365天,剩余的5時48分46秒是二者之間的誤差,需要折算成天數,通過加閏的辦法,即在二月份加一天,就可將積累的誤差吸收掉。以天為單位,用分數的形式表現這個誤差為:
a=5/24+48/24×60+46/24×60×60=10463/43200≈0.2421991。
從這個分數算式可以看出,在43200年中,需要安排10463個閏年,而消除誤差最好是均勻加閏,但卻不便操作和記憶。如果我們用連分數即可提供方便記憶的閏法。
運用輾轉相除法很容易得到誤差a的連分數表示式為:a=10463/43200=1/4+1/7+1/1+1/3+1/5+1/64。
由連續式可以看出,第一個漸進分數a1=1/4=0.25,說明每隔四年就應該加一天,這就是所謂的“四年加一閏”。由于它是個近似值,而不是精確值,因此還需要修正。第三個漸進分數為a3=1/4+1/7+1/1=8/33≈0.2424242……說明每隔33年就需要加8天,每隔99年需加24天就比較與實際接近。因此100年(與99近似)中應加24天,而不是加25天。這就是“百年少一閏”。如果始終按每100年加24天,那么43200年就應加432×24=10368
(天)。
由a=10463/43200可以知道,經過43200年,就應該加10463天,這就比實際少加了95天,所以,閏法又有了“四百年加一閏”的修正。但是,按照這種規定,就可以算出43200年共加了10463天,比實際又多增加了13天,這又意味著每隔3323年就又多加了一天。而這些還需做進一步的修正。
從以上的介紹可以看出,現在使用的歷法,其精確度是相當高的,但仍需要進行隨時修正,而這一切,均與數學密不可分。
農歷中的“十九年七閏”
中國傳統歷法
中國從古代一直沿用的歷法為農歷,它是由月球繞地球公轉決定的。農歷中的一個月,稱為“朔望月”,約為29.5306天。由于地球繞太陽公轉一周需要365.2422天,因此在一個公歷年中應該設置“農歷月”的個數為:365.2422/29.5306=12+10.8750/29.5306
從這個算式可以看出,如果每個農歷年均設有12個月,那么就會產生a=10.8750/29.5306=0.3682621的誤差。要想把這種積累的誤差消除掉,就必須在農歷年份中增加一個月,這個月就是閏月,這個年就稱為閏年。那么,怎樣增插閏月呢?這就需要先求出a的連分數表示式:
a=1/2+1/1+1/2+1/1+1/1+1/16+1/1+1/5+1/2+1/6+1/2+1/2
從上面的表示式可以看出,它的前六個逐次漸近分數依次為:a1=1/2≈0.5,a2=1/3≈0.3333333,a3=3/8≈0.375,a4=4/11≈0.3636364,a5=7/19≈0.3684211,a6=116/315≈0.368254。由此可得,a2<a4<a6<a<a5<a3<a1。這表明這些漸進分數是從左、右兩個方向向a的真值逼近的。