史記上的朔旦冬至與今日程式計算的不一致,是古人推導有誤,還是今日的朔望、分至點回推計算仍有極限呢?
〈史記?曆書第四〉記載:
十一月甲子朔旦冬至已詹,其更以七年為太初元年。年名『焉逢攝提格』,月名『畢聚』,日得甲子,夜半朔旦冬至。
文中的七年經查是元封七年,七年改曆,故朔旦冬至發生在前一年元封六年十一月,對應為西元前 105 年。也就是說,西元前 105 年十一月的甲子日是冬至同時也是朔日。
但今翻查張培瑜〈三千五百年曆日天象表〉,關於該年的資料如下(年月日時分):
朔日 BC 105 12 24 9 8 癸亥
冬至 BC 105 12 23 20 00 壬戌
不僅不是甲子日,兩者更不在同一天中。這與文獻上的「夜半朔日冬至」完全不符。〈三千五百年曆日天象表〉的時間為北京時間,即便將此考慮進去,差減一個小時多為長安時間,仍舊有極大誤差。關於文獻與科學計算兩者之間資料的不一致,該如何解釋呢?
二者兼而有之,主要是古人的錯誤,但是當代遠期推算天體位置也不可能做到精準。(@北極 兄以舊曆推法考證舊曆,有點循環論證的意思了,當然每事必驗……)
漢代早期使用秦顓頊歷,後略作修改為漢顓頊歷(主要是減損閏余之類小改,也是為了修正斗分過大的問題),後改為太初曆(三統曆),後又改為四分曆。
總體來看,秦顓頊歷和漢顓頊歷皆為四分曆,斗分為四分之一,斗分為四分之一明顯大於實際值。而太初曆作為測驗更準的選擇斗分是385/1539,比四分之一還要大!就這,當局是認可當時的太初曆很精準的。
- 在當時的測量精度下人們對氣至點的測量並不可靠,不然也不會往更加錯了改;
- 漢代曆法推氣至一定是有問題的——具體來說,漢代普遍氣至後天。
此外,因為技術限制(包括古代觀測和計算技術以及當代回推計算技術兩方面),看古代曆日,首先要修正錯謬誤記等,其餘,第一可靠的是日干支,積日和日距多半也是沒問題的,年份月份大抵不差,但是朔望出錯很正常,雖然朔望出錯,但是如果是大錯可以肉眼直接看出來,節氣時刻出錯則不然,非精確測量無法知道,加之整個古代的回歸年普遍偏大,節氣時刻出錯簡直太常見了。
古代準確的朔日只有靠日食定,準確的望日只有靠月食定。至於相對可靠的氣至時刻,要到祖沖之何承天等人的測驗才開始。
惟是氣至時刻考求不易,……劉宋祖沖之嘗取至前後二十三四日間晷景,折取其中,定為冬至,且以日差比課,推定時刻。宋皇祐間,周琮則取立冬、立春二日之景,以為去至既遠,日差頗多,易為推考。《紀元》以後諸歷,為法加詳,大抵不出沖之之法。&<元史·曆書&>
所以此處朔旦冬至即便是推算觀測結合,也沒有辦法避免出錯。
朔日 BC 105 12 24 9 8 癸亥
冬至 BC 105 12 23 20 00 壬戌
壬戌後面就是癸亥,癸亥後面就是甲子日。所以這是三連號啊。我們前面說過,干支可靠。
那麼如果當代推算無誤(這是不可能的,尤其帶月亮的推算),不過是冬至後天一日許,合朔後天不足一日罷了。
我認為這個程度的誤差還是可以接受的。
此外,有一本書名曰《太初曆日表》從元封六年開始,也可以查一下。
當然更加推薦使用最近幾次日食月食來計算日差,然後再看看結果。然而我沒時間了,要去搬磚……
昨晚想了一下,覺得這個問題《三千五百年曆日天象表》的編撰者自己不可能不發現,於是找了下他的文章或著作,後來在《中國古代曆法》這本書中找到了答案。
書中的第四章第一節之二〈太初改曆真相〉,大約有六頁的篇幅就是在討論太初曆朔旦冬至甲子與實際推算不同的問題。試簡述如下:- 漢初用顓頊曆,到武帝時已有相當誤差,「曆紀壞廢...朔晦月見」(漢書)
- 然後史官們又推算出該年適逢朔旦冬至甲子,千載難逢的好機會
- 綜合以上原因,改曆一事成了武帝任內刻不容緩的政績工程
- 但上面第一點就說當時已有誤差,因此第二點的推算也是有誤的
- 司馬遷等人仔細去推算後,發現問題所在,朔旦冬至甲子根本兜不在一起,只好奏報「不能為算」
- 但武帝還是一心想要創新曆,為改曆先後下了七次詔書
- 後來鄧平提出一個莫名其妙的「藉半日法」,硬是將這個日期對不上的矛盾補救起來
然後就是我們今天見到的太初曆了。
以下是當初還不知道答案緣由時所寫的東西,就權當補充參考資料吧
----
不曉得怎麼在評論中貼圖,所以用回答問題的方式。
@北極 我們看的是同一本書,不過因為查找的方式不同,所以得到不同的結論
你貼的圖片取自〈曆書:歷代頒行曆書 (摘要) (前 221 年—公元 2050 年)〉這一章,這章的內容就是給出自前 221 年到 1990 年每年頒行的曆書摘要,以及中曆公曆對照,因此上面的朔望節氣都是來自於原曆書上所記載。
而我看的資料則來自於同一本書的- 〈天象:合朔滿月表 (前1500年至公元2052年)〉和
- 〈天象:分至八節表 (前1500年至公元2050年)〉
其內容如附圖。這兩張表的資料都是由計算得來的,據張培瑜先生於〈前言〉文中所述,精度準確到分。
合朔滿月表:
分至八節表:
綜合上面兩張圖的資料,不難看出,不管 BC104 或 BC105 的冬至或最後合朔,都沒有出現在甲子日。其他額外的補充資訊:
我另外有自行以 PyEphem 寫過程式計算當時的冬至與合朔時間,同樣也沒對到甲子日。不過 PyEphem 的計算精度有限,與《三千五百年曆日天象表》有數個小時的誤差,不足為參考,因此我就不附上資料了。
重寫一下回答:
我用的演算法是astrolog這個軟體,就是占星排盤用的,它的一個輔助作用是可以排出當時的星象圖,我選取的參數有兩個,第一個是-104/Dec/24 9:00 AM GMT +7(註:西安地方時屬於東七區,BC 105是-104):
可以看到Sun/Moon合於摩羯座0度附近,排盤的星座是黃道坐標,所以BC105/Dec/24 9:00應該就是朔月,同時也是冬至,與曆書上差了一天(癸亥下一天就是甲子)。
所以書上基本是沒錯的,差了正好一天,可能是古人測量的累積誤差造成的。
另外,這個軟體有少量的誤差,但BC105應該還不至於差的太多。諸位怎麼都認為這是古人的錯。
難道現代計算結果就完全與古代真實情況吻合。
所以我很好奇當年夏商周緞帶工程是怎麼推算天再旦於鄭州以及歲在淳火什麼的.
除了央視當年拍攝的3集紀錄片
還有啥影視資料或者最新的結論拍攝的影片么?
推薦閱讀:
※明朝的上層統治權力架構是怎樣的?
※「大禮議」前,嘉靖憑什麼資本和中央當權文官們討價還價?
※明王朝兩百七十六年歷史裡最讓你難忘的事件或者細節是什麼?
※朱棣為什麼要遷都北京?
※明武宗正德皇帝朱厚照是否是一個被史書所抹黑的皇帝?