王鵬云,滕艷輝
(1.咸陽師范學院 數學與信息科學學院,陜西 咸陽712000;2.西北大學 科學史高等研究院,陜西 西安 710127)
《宣明歷》由唐代徐昂制訂,頒行于唐穆宗長慶二年(822)。在唐代行用長達71年,景福元年(892)被《崇玄歷》取代。[1]2319《宣明歷》對日本和朝鮮的影響很大。《宣明歷》在日本貞觀四年(862)取代《大衍歷》行用至貞享元年(1684),共計823年。高麗建國即用《宣明歷》,直到忠宣王(1309—1313)改用元《授時歷》,而交會術仍因循《宣明歷》行用至1392年,亦約400年。[2]《宣明歷》對之前歷法最大的改進表現在日食計算上面,它首創日食“三差”算法,是中國傳統歷法視差理論中極其重要的內容。已經有學者對《宣明歷》的部分術文給出過解讀,亦有學者對其定朔和歷書推步做過詳細討論。[2-5]本文將著重對其日食算法和推算過程給出詳細的解讀。
目前,關于《宣明歷》推算的原文在中國、日本和朝鮮都有所保存。《新唐書》中詳細記載了《宣明歷》推算所用的天文常數和《宣明歷》所改進的地方,而與《大衍歷》相同或相似的推算術文并沒有記載。《高麗史》完整記載了《宣明歷》的氣朔、發斂、日躔、月離、晷漏和交會幾部分的推算術文,但沒有記載五星部分的推算術文。[6]日本寬永二十一年(1645)開版印刷的《宣明歷》一至七卷是為了計算方便而改進的版本。這里面將《宣明歷》的某些算法直接計算出數據編制成表格,將某些不參與直接計算的算法刪除。[7]本文關于《宣明歷》的推算原文,參考了這三個版本。
《宣明歷》有關日食計算的常數大部分在其“步交會術”部分中給出,但也有些常數因為在前面推算其它歷日和天象的時候已經給出,步交會部分就沒有重復給出。……