国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

《宣明歷》中的五星平見加減歷

2022-02-15 09:17
中國科技史雜志 2022年4期
關(guān)鍵詞:變率減數(shù)歷法

唐 泉

(西北大學(xué)科學(xué)史高等研究院,西安 710127)

1 引言

唐代徐昂所撰《宣明歷》從唐穆宗長(zhǎng)慶二年(822)開始行用,至唐昭宗景福元年(892)被邊岡《崇玄歷》所取代,共行用七十年?!缎绿茣v志六上》對(duì)《宣明歷》評(píng)價(jià)甚高:

自敬宗至于僖宗,皆遵用之。雖朝廷多故,不暇討論,然《大衍歷》后,法制簡(jiǎn)易,合望密近,無能出其右者。([1],頁2324)

《宣明歷》受《大衍歷》的影響非常大,關(guān)于二者的繼承關(guān)系,《新唐書·歷志六上》有一個(gè)簡(jiǎn)要的概括說明:

(《宣明歷》)上元七曜,起赤道虛九度。其氣朔、發(fā)斂、日躔、月離,皆因《大衍》舊術(shù);晷漏、交會(huì),則稍增損之;更立新數(shù),以步五星。([1],頁2319)

由上述引文可知,《宣明歷》中氣朔、發(fā)斂、日躔、月離四章均沿襲《大衍歷》算法,步晷漏和步交會(huì)兩章內(nèi)容相比《大衍歷》稍微有一些增損。從“更立新數(shù),以步五星”這句評(píng)價(jià)來看,《宣明歷》行星理論相比《大衍歷》確實(shí)有一些創(chuàng)新之處。

《宣明歷》的最大創(chuàng)新,是在步交會(huì)術(shù)中首創(chuàng)日食三差算法。日食三差包括氣差、刻差和時(shí)差,是中國古代歷法家為修正月亮視差對(duì)日食計(jì)算的影響而設(shè)計(jì)的一套算法,在中國古代日食理論中占有非常重要的地位。宋代歷法家周琮在歷數(shù)《明天歷》以前各部歷法的重要?jiǎng)?chuàng)新時(shí),特別提到了《宣明歷》首創(chuàng)日食三差算法之功[2]。關(guān)于《宣明歷》中的日食三差算法,藪內(nèi)清[3]、陳美東([4],頁404—406)、曲安京[5]和唐泉[6,7]等學(xué)者均有較為詳細(xì)的討論。

需要指出,《宣明歷》除了在日食理論中首創(chuàng)日食三差算法,在行星理論中也有很多創(chuàng)新,正如《新唐書·歷志六上》以“更立新數(shù),以步五星”來評(píng)價(jià)《宣明歷》的行星理論。那么,在《宣明歷》行星理論中,徐昂究竟設(shè)計(jì)了哪些不同于《大衍歷》行星理論的“新數(shù)”?《新唐書》不載《宣明歷》全文,只記載了《宣明歷》的天文常數(shù)與算表,以及《宣明歷》中與《大衍歷》不同的一些算法。傳入日本和朝鮮的《宣明歷》雖然氣朔、發(fā)斂、日躔、月離、晷漏和交會(huì)等六章內(nèi)容都比較完整,但是不載步五星術(shù),這對(duì)學(xué)者全面了解《宣明歷》步五星術(shù)的全貌及所立“新數(shù)”造成了很大困難。

雖然我們無法了解《宣明歷》行星理論全貌,但是根據(jù)《新唐書》所載《宣明歷》行星理論中的天文常數(shù)、算表以及一些算法的簡(jiǎn)要說明,我們?nèi)匀豢梢源笾铝私狻缎鳉v》行星理論的核心思想與主要算法。五星平見加減歷是《宣明歷》行星理論中最重要的天文算表,《宣明歷》行星理論中的主要?jiǎng)?chuàng)新,基本都與這張?zhí)煳乃惚砻芮邢嚓P(guān)。例如,《宣明歷》行星理論中的天文常數(shù)“差率”“差數(shù)”和“變差”,五星定見算法以及推求日度定率的算法,五星動(dòng)態(tài)表中的加減數(shù),都與五星平見加減歷有直接關(guān)聯(lián)。從這個(gè)意義上來說,全面理解《宣明歷》五星平見加減歷的內(nèi)容與天文意義,是理解《宣明歷》行星理論的核心思想與主要算法的關(guān)鍵所在。

長(zhǎng)期以來,《宣明歷》在行星理論方面的創(chuàng)新一直未引起學(xué)者的高度重視。大多數(shù)天文學(xué)史的通史類著作在專門研究《宣明歷》的章節(jié)中,就沒有涉及《宣明歷》的行星理論[8]。少數(shù)通史類著作即使關(guān)注過《宣明歷》中的行星理論,論述也都比較簡(jiǎn)略([4],頁406—407)。陳美東曾深入研究過中國古代歷法中的五星盈縮歷及其精度,但是他對(duì)《宣明歷》五星平見加減歷的評(píng)價(jià)并不高,甚至認(rèn)為《宣明歷》中的五星平見加減歷與《大衍歷》中的五星爻象歷相比是一種退步([9],頁461—464)。

本文中,我們將從《新唐書》所載《宣明歷》行星理論的天文常數(shù)、算表和部分算法的說明文字出發(fā),將《宣明歷》行星理論置于唐代行星理論發(fā)展的大背景中,深入考察《宣明歷》在行星理論創(chuàng)新方面所做的努力。本文的討論將按照以下次序展開:首先,深入考察《宣明歷》五星平見加減歷的結(jié)構(gòu)與天文意義;其次,討論與五星平見加減歷密切相關(guān)的五星動(dòng)態(tài)表;最后,討論《宣明歷》五星平見加減歷的精度。由于中國古代行星理論中內(nèi)行星算法的原理尚未被很好地揭示,因此本文的討論僅限于三個(gè)外行星而不包括內(nèi)行星,后面的討論將不再為此進(jìn)行特別說明。

2 《宣明歷》五星平見加減歷的結(jié)構(gòu)

從唐代《大衍歷》開始,絕大多數(shù)歷法都會(huì)在“步五星術(shù)”章設(shè)計(jì)修正行星中心差的天文算表。這類天文算表在不同的歷法中稱謂不同,例如在《大衍歷》中稱為“五星爻象歷”,在《宣明歷》中稱為“五星平見加減歷”,而在宋代《崇天歷》及其以后的歷法中,通常稱為“五星盈縮歷”。《宣明歷》中的五星平見加減歷是《宣明歷》行星理論中最重要的創(chuàng)新,《宣明歷》行星理論中的其他創(chuàng)新,基本都與這張?zhí)煳乃惚砻芮邢嚓P(guān)。

《新唐書》所載《宣明歷》五星平見加減歷采取橫排形式,本文為排版方便,在不改變?cè)斫Y(jié)構(gòu)及內(nèi)容的前提下,按照現(xiàn)代習(xí)慣對(duì)其進(jìn)行重新編排,結(jié)果如表1所示。

表1 《宣明歷》五星平見加減歷 (1)表1中數(shù)據(jù)顯示,對(duì)于木星、火星、金星和水星而言,標(biāo)識(shí)“加空”和“減空”的兩變均相距12變。不過,表1中并未直接標(biāo)識(shí)土星平見加減差“加空”所在位置,僅在陽歷十變標(biāo)識(shí)“加七十六”,根據(jù)其他四星加空與減空相距十二變的原則,可以將土星九變“76”改為“加空”,十變“加76”改為“76”。(2)根據(jù)對(duì)稱性,此處應(yīng)為227。

續(xù)表1

由于《宣明歷》在行星理論中所立“新數(shù)”是與《大衍歷》行星理論相比較而言的,因此,為了更好地考察《宣明歷》五星平見加減歷的特別之處,我們有必要簡(jiǎn)要介紹一下《大衍歷》五星爻象歷的結(jié)構(gòu)與意義,這是一張與《宣明歷》五星平見加減歷功能類似的天文算表。《大衍歷》五星爻象歷是中國歷法中最早出現(xiàn)的行星中心差表,在中國行星理論發(fā)展史上具有首創(chuàng)之功?!洞笱軞v》五星爻象歷包括三欄內(nèi)容([1],頁2093—2097)。第一欄為爻目,《大衍歷》將行星在一個(gè)近點(diǎn)周期內(nèi)運(yùn)行的度距均分為四段,稱為四象,從近日點(diǎn)起,依次稱為少陽、老陽、少陰、老陰,每象又均分為六爻。第三欄為進(jìn)退積,其意義相當(dāng)于行星中心差,進(jìn)退積除以辰法760,化為度數(shù)。在少陽和老陽兩象,進(jìn)退積為“進(jìn)”;在少陰和老陰兩象,進(jìn)退積為“退”。第二欄為損益率,損益率意為相鄰兩爻進(jìn)退積之差,進(jìn)退積絕對(duì)值增加,稱為“益”,進(jìn)退積絕對(duì)值減小,稱為“損”。

從表1可以看到,《宣明歷》將五個(gè)行星的平見加減歷列在同一張表中,每個(gè)行星的平見加減歷只有兩欄內(nèi)容。第一欄為變數(shù),與《大衍歷》類似,《宣明歷》將行星在一個(gè)近點(diǎn)周期內(nèi)運(yùn)行的度距等分為兩段,分別稱為陽歷和陰歷,陽歷和陰歷又分別等分為12變。第二欄為行星的加減差,其數(shù)值除以《宣明歷》刻法84,可以化為日數(shù)或度數(shù)。每個(gè)行星的加減差,都會(huì)在陽歷或陰歷的某一變,用“加空”或者“減空”進(jìn)行標(biāo)識(shí),所謂“加空”就是“加0”,即從標(biāo)識(shí)“加空”的這一變開始,五星平見加減差均為正,所謂“減空”就是“減0”,即從標(biāo)識(shí)“減空”的這一變開始,五星平見加減差均為負(fù)。

從形式上看,《宣明歷》五星平見加減歷與《大衍歷》五星爻象歷既有相同之處,也有不同之處。二者的相同之處是,兩部歷法均采取24段劃分法,這種劃分法被《宣明歷》以后的歷法所采納。二者的不同之處有兩點(diǎn):其一,《大衍歷》五星爻象歷列出了相鄰兩爻進(jìn)退積之差——損益率,而《宣明歷》五星平見加減歷則不載相鄰兩變加減差之差——損益率;其二,《大衍歷》五星爻象歷中少陽初變對(duì)應(yīng)行星近日點(diǎn),而《宣明歷》五星平見加減歷中陽歷初變則不一定對(duì)應(yīng)行星近日點(diǎn)。自唐代《大衍歷》始,各部歷法中修正行星中心差的天文算表的第一欄,通常都是從近日點(diǎn)起算的,但是《宣明歷》五星平見加減歷卻是一個(gè)例外,其陽歷初變并非對(duì)應(yīng)行星近日點(diǎn)。在《宣明歷》五星平見加減歷中,標(biāo)識(shí)“加空”的諸變起點(diǎn)對(duì)應(yīng)行星近日點(diǎn),標(biāo)識(shí)“減空”的諸變起點(diǎn)對(duì)應(yīng)行星遠(yuǎn)日點(diǎn)。根據(jù)《宣明歷》行星平見入陰陽歷各變算法,上元時(shí)五星平見加減歷中陽歷起點(diǎn)均位于冬至點(diǎn),因此根據(jù)表1中“加空”的標(biāo)識(shí)位置,可推算出上元時(shí)五星近日點(diǎn)距離冬至點(diǎn)的度距:火星、金星和水星的近日點(diǎn)均在冬至點(diǎn);木星的遠(yuǎn)日點(diǎn)在冬至點(diǎn);土星近日點(diǎn)在陽歷九變,則土星近日點(diǎn)在冬至點(diǎn)后(8×土星變策)度,變策為一變的長(zhǎng)度,五個(gè)行星的變策略有差別。

3 《宣明歷》五星平見歷中加減差的天文意義

《大衍歷》五星爻象歷中的進(jìn)退積,通常被認(rèn)為等同于行星中心差。那么,《宣明歷》五星平見加減歷中加減差的天文意義究竟是什么?為了回答這個(gè)問題,我們首先需要了解在《宣明歷》行星理論中,究竟哪些算法用到了五星平見加減差,然后通過分析五星平見加減差在這些算法中的具體應(yīng)用,來闡明其天文意義。在《宣明歷》中,五星平見加減差在五星常見算法中的應(yīng)用,最能體現(xiàn)其天文意義。

《大衍歷》中,行星在一個(gè)會(huì)合周期內(nèi)的運(yùn)動(dòng)是從“合”開始的,因此《大衍歷》專門設(shè)計(jì)了五星定合算法。與《大衍歷》不同,在《宣明歷》中,行星在一個(gè)會(huì)合周期內(nèi)的運(yùn)動(dòng)是從“見”開始的,因此《宣明歷》設(shè)計(jì)了五星定見算法。該算法包括三個(gè)步驟:第一步,根據(jù)行星會(huì)合周期求出行星始見時(shí)刻,稱為平見;第二步,假定太陽做勻速運(yùn)動(dòng),行星做不均勻運(yùn)動(dòng),對(duì)平見進(jìn)行行星中差修正,得到常見;第三步,假定行星做勻速運(yùn)動(dòng),太陽做不均勻運(yùn)動(dòng),對(duì)常見進(jìn)行太陽中心差修正,得到定見。這個(gè)思路與《大衍歷》五星定合算法思路完全相同。事實(shí)上,隋代及其以后的歷法,都是按照以上思路計(jì)算五星定合與定見伏的時(shí)刻以及行星的位置[10,11]。

《宣明歷》推五星平見的算法比較簡(jiǎn)單,其術(shù)文稱:

因平合加中伏,得平見。金、水加夕,得晨;加晨,得夕。([1],頁2323)

術(shù)文中,“平合”意為行星平合時(shí)刻距離所求年天正冬至的時(shí)距,“中伏”是一個(gè)常數(shù),意為從行星平合至始見的時(shí)距,根據(jù)術(shù)文,得

平見日=平合+中伏

(1),

式(1)中的“平見日”即術(shù)文中的“平見”,其意為行星始見時(shí)刻距離所求年天正冬至的時(shí)距,因與時(shí)間有關(guān),此處稱其為“平見日”,以區(qū)別后文中用“平見”表示的其他變量。

《宣明歷》推五星常見算法稱:

又以變差乘年,滿象數(shù)去之;不盡為變交。三百約為分,統(tǒng)法而一,以減平見三十六乘平見秒,十二乘變交秒,同以三千六百為母。余如交率已下,星在陽歷;已上,去之,為入陰歷。各以變策除,為變數(shù),命初變算外;不盡為入其變度數(shù)及余。自此百約余分,母同刻法。以所入變下數(shù),加減平見,為常見。([1],頁2323)

術(shù)文中,最后一句“所入變下數(shù)”指的是根據(jù)五星平見時(shí)刻所入陽歷或陰歷的變數(shù)及入變度數(shù)而求出的五星平見加減差,由此可得到《宣明歷》中平見日與常見日的關(guān)系如下:

常見日=平見日±平見加減差

(2)。

根據(jù)術(shù)文,要計(jì)算五星平見加減差,首先需要判斷行星平見入歷,即行星平見時(shí)入陽歷或陰歷的變數(shù)及入變度數(shù)。行星平見入歷算法與行星“變差”密切相關(guān),變差這個(gè)概念最早出現(xiàn)在《大衍歷》中,其涵義為行星近日點(diǎn)每年相對(duì)于冬至點(diǎn)的進(jìn)動(dòng)值,《宣明歷》中行星變差的涵義與《大衍歷》相同,但取值不同?!跋髷?shù)”920446199意為周天對(duì)應(yīng)的秒數(shù),象數(shù)除以秒法300化為周天分,周天分除以統(tǒng)法8400,即可化為周天度。設(shè)變差為q,上元積年為Nn,則根據(jù)術(shù)文,變交可由下式求出

qNn≡變交(mod 象數(shù))

(3),

從《宣明歷》算法分析,根據(jù)式(3)所求變交,即為五星平見加減歷中陽歷初變至所求年天正冬至點(diǎn)的距離,其單位為秒。術(shù)文“又以變差乘年,滿象數(shù)去之;不盡為變交。三百約為分,統(tǒng)法而一,以減平見”中的“平見”應(yīng)該指行星平見時(shí)刻的位置與天正冬至點(diǎn)的距離,為了與表示時(shí)間的“平見日”區(qū)別,本文以“平見度分”表示行星平見時(shí)位置與天正冬至點(diǎn)的距離。很顯然,“平見度分”與“變交”之差,即為平見入歷。根據(jù)《宣明歷》算法,若設(shè)平見時(shí)刻行星距離陽歷初變起點(diǎn)的距離為λ,則有

(4)。

由于《宣明歷》中平見秒的秒法為100,變交秒的秒法為300,為計(jì)算方便,《宣明歷》均將其化為以3600為分母,術(shù)文中“三十六乘平見秒,十二乘變交秒,同以三千六百為母”,就是為計(jì)算方便進(jìn)行通分的步驟,如式(4)所示。

術(shù)文中,“交率”意為五星平見加減歷中行星陽歷或陰歷的長(zhǎng)度,其值為回歸年長(zhǎng)度與行星變差之和的一半,單位為度,由于《宣明歷》中五星變差取值不同,因此每個(gè)行星的交率也不相同。若λ<交率,稱λ′=λ為行星平見入陽歷度;若λ>交率,稱λ′=λ-交率為行星平見入陰歷度?!白儾摺钡扔诮宦实?/12,以行星入陽歷度或陰歷度除以變策,即可求出行星平見時(shí)入陽歷或陰歷的變數(shù)及度數(shù),即有

(5)。

根據(jù)式(5)所求入變數(shù)k及入變度分,即可確定平見時(shí)行星在陰陽歷中的位置,由此利用五星平見加減歷即可求出行星的平見加減差。由于平見加減差是以刻法84為分母的,而平見余分是以8400為分母的,故需要將平見余分除以100,即得到以84為分母,方可與平見加減差進(jìn)行運(yùn)算,此即術(shù)文所稱“自此百約余分,母同刻法”的意義。以火星為例,平見加減差最大值為2268,除以刻法84,得到27日,即火星平見與常見的時(shí)間差最大為27日。

《宣明歷》在求出常見日后,又給出了從常見日到定見日的修正算法,其術(shù)文稱:

凡常見計(jì)入定氣,求先后定數(shù),各以差率乘之,差數(shù)而一,為定差。晨見先減、后加,夕見先加、后減常見,為定見。([1],頁2323)

根據(jù)術(shù)文,可以得到《宣明歷》中常見日與定見日的關(guān)系為

(6),

式(6)中,先后定數(shù)意為常見時(shí)刻太陽中心差,先后數(shù)除以刻法84,即可化為日或度,符號(hào)法則為:晨見,“先”取“-”,“后”取“+”;夕見則反之。

五星定見算法是中國古代行星理論中的主要算法之一,此前已有學(xué)者討論過這個(gè)算法的數(shù)學(xué)模型[12]。已有研究結(jié)果表明,外行星平見日與常見日之間的關(guān)系為

(7),

式(7)中,cp表示行星中心差,vs和vp分別表示地球和行星繞日公轉(zhuǎn)角速度,其符號(hào)規(guī)則為:若cp>0,取“+”;cp<0,取“-”。常見日與定見日之間的關(guān)系為

(8),

式(8)中,cs表示太陽中心差,其符合規(guī)則為:若cs>0,取“-”;cs<0,取“+”。

比較式(6)和式(8),可以發(fā)現(xiàn)兩式中的修正項(xiàng)都可以表示為太陽中心差與一個(gè)常數(shù)的比值,且兩式中修正項(xiàng)的分母相當(dāng),即有

(9),

《宣明歷》中的差率和差數(shù)在更早的《大衍歷》和《五紀(jì)歷》中分別稱為乘數(shù)和除數(shù)。

(10),

這就是《宣明歷》中五星平見加減差的天文意義。利用式(9),進(jìn)一步可將式(10)變形為

(11)。

在前文的討論中,我們已經(jīng)指出,《大衍歷》中的進(jìn)退積相當(dāng)于行星中心差,而《宣明歷》中五星平見加減差的天文意義如式(10)所示。那么,《宣明歷》中的五星平見加減歷究竟是如何構(gòu)造的?或者說,《宣明歷》是否就是按照式(10)或(11)計(jì)算五星平見加減差的呢?下面我們通過梳理從《大衍歷》到《宣明歷》的行星理論,來回答上述問題。

在《大衍歷》中,直接用于修正行星不均勻運(yùn)動(dòng)的變量并不是進(jìn)退積,而是進(jìn)退變率?!洞笱軞v》“求變行初日入進(jìn)退定數(shù)”算法對(duì)二者的關(guān)系有明確的說明:

求變行初日入進(jìn)退定數(shù):各置其變行初日入爻算數(shù)及余,如平合求進(jìn)退術(shù)入之,即得變行初日所入進(jìn)退定數(shù)也。置進(jìn)退定數(shù),各以其下乘數(shù)乘之,除數(shù)除之,所得各為進(jìn)退變率。([1],頁2098—2099)

術(shù)文中“變行初日入進(jìn)退定數(shù)”意為行星在各段目初日的進(jìn)退積,根據(jù)術(shù)文,進(jìn)退定數(shù)和進(jìn)退變率的關(guān)系如下:

(12)。

式(12)中的進(jìn)退變率為《大衍歷》中行星諸變“日度中率”與“日度變率”之間的修正項(xiàng),其意義與《宣明歷》中五星平見加減差完全相同。式(12)中的乘數(shù)與除數(shù)列在《大衍歷》五星動(dòng)態(tài)表的最后一欄,不同的段目對(duì)應(yīng)不同的乘數(shù)和除數(shù)。

比較式(11)與(12),由于《大衍歷》中進(jìn)退定數(shù)相當(dāng)于行星中心差,因此二式的結(jié)構(gòu)完全相同,于是《宣明歷》五星平見加減差進(jìn)一步可以表示為

(13)。

從理論上講,對(duì)外行星而言,乘數(shù)與除數(shù)的比值不會(huì)因?yàn)槎文坎煌兓?,《大衍歷》之后的《五紀(jì)歷》已認(rèn)識(shí)到這一點(diǎn)。因此,《五紀(jì)歷》在行星理論中雖然也設(shè)計(jì)了五星爻象歷,但每個(gè)行星只設(shè)一組乘數(shù)與除數(shù),這比《大衍歷》是一個(gè)很大的進(jìn)步?!缎鳉v》沿襲《五紀(jì)歷》的做法,每個(gè)行星也只設(shè)一組乘數(shù)與除數(shù),稱為差率和差數(shù)。同時(shí),《宣明歷》比《五紀(jì)歷》更進(jìn)一步,直接設(shè)計(jì)了五星平見加減歷,不再出現(xiàn)從進(jìn)退積到平見加減差的轉(zhuǎn)化步驟。由此可以很清楚地勾勒出《宣明歷》五星平見加減差的演變過程。顯然,相比《大衍歷》和《五紀(jì)歷》中的五星爻象歷,《宣明歷》中的五星平見加減歷使用更加快捷方便,這也符合《新唐書·歷志》對(duì)《宣明歷》“法制簡(jiǎn)易”的評(píng)價(jià)。關(guān)于唐宋時(shí)期五星盈縮歷的演變歷程,以及唐代行星理論中的乘數(shù)與除數(shù),已有學(xué)者進(jìn)行過專門的討論[13,14],此處不再展開詳細(xì)論述。

4 《宣明歷》中的五星動(dòng)態(tài)表

徐昂在《宣明歷》中設(shè)計(jì)的五星動(dòng)態(tài)表,其結(jié)構(gòu)與內(nèi)容均與包括《大衍歷》在內(nèi)的其他歷法中的五星動(dòng)態(tài)表有很大區(qū)別。特別需要指出,《宣明歷》中的五星動(dòng)態(tài)表與五星平見加減歷有密切的關(guān)系,這也是《宣明歷》五星動(dòng)態(tài)表與其他歷法中五星動(dòng)態(tài)表的重要區(qū)別之一。很顯然,五星動(dòng)態(tài)表也是《宣明歷》在行星理論中所立“新數(shù)”之一。

為討論方便,我們以《宣明歷》木星動(dòng)態(tài)表(表2)為例,來討論《宣明歷》中五星動(dòng)態(tài)表的結(jié)構(gòu)。

表2 《宣明歷》木星動(dòng)態(tài)表

續(xù)表2

表2所示《宣明歷》木星動(dòng)態(tài)表是一個(gè)26行6列的天文算表。第1行給出了木星在一個(gè)會(huì)合周期內(nèi)各段目運(yùn)行的時(shí)間與度距,其內(nèi)容對(duì)應(yīng)于《大衍歷》動(dòng)態(tài)表中的變行目、變行日中率與變行度中率等3欄內(nèi)容。第2行第1列為木星伏見度,意為木星始見時(shí)與太陽的角距離,2—6列給出了木星在各段目?jī)?nèi)的加速度,其意義與《大衍歷》中的“差行損益率”相同。第3行至26行分別給出了木星各段目節(jié)點(diǎn)位于陰陽歷24變的加減數(shù),加空意為加0,從加空至減空,加減數(shù)均取正值;減空意為減0,從減空至加空,加減數(shù)均取負(fù)值。加減數(shù)除以刻法84,即可化為日數(shù)或度數(shù)?!缎鳉v》五星動(dòng)態(tài)表中的加減數(shù),并不見于《大衍歷》等其他歷法,這是《宣明歷》五星動(dòng)態(tài)表的主要特征。

陳美東在研究《宣明歷》行星理論時(shí)曾指出,《宣明歷》五星動(dòng)態(tài)表中的加減數(shù)“當(dāng)是相應(yīng)時(shí)日五星運(yùn)動(dòng)不均勻性改正有關(guān)的數(shù)值”([4],頁407),但是對(duì)加減數(shù)的具體天文意義,他并未給出進(jìn)一步的解釋和說明。那么,《宣明歷》五星動(dòng)態(tài)表中加減數(shù)的天文意義究竟是什么?為了回答這個(gè)問題,我們需要考察表2中的加減數(shù)在《宣明歷》行星理論中的使用情況?!缎鳉v》五星動(dòng)態(tài)表中的加減數(shù),主要用于計(jì)算行星諸段日度變率,其術(shù)文稱:

以所入變下差數(shù)加減日度【中率,為日度變】(3)根據(jù)《大衍歷》算法進(jìn)行校補(bǔ)。率?!骷訙p變【率】訖,為日度定率。([1],頁2323—2324)

上述引文中的“差數(shù)”就是五星動(dòng)態(tài)表中的加減數(shù)。根據(jù)引文,日度中率和日度變率的關(guān)系為

日度變率=日度中率±加減數(shù)

(14)。

《宣明歷》在給出日度變率的修正算法之后,又給出了從日度變率到日度定率的修正算法,引文中省略的內(nèi)容即為從日度變率到日度定率的修正法則,該項(xiàng)修正與太陽中心差有關(guān)。上述引文中日度變率和日度定率的意義及其用途,《新唐書》所載《宣明歷》行星理論并沒有明確的交代。不過,在《大衍歷》行星理論中,有專門計(jì)算日度變率和日度定率的完整算法,考慮到《宣明歷》和《大衍歷》的繼承關(guān)系,我們可以通過簡(jiǎn)單梳理《大衍歷》中相關(guān)算法,來理解《宣明歷》中的日度變率和日度定率的意義,并進(jìn)一步闡明五星動(dòng)態(tài)表中加減數(shù)的天文意義。

《大衍歷》五星動(dòng)態(tài)表中的日中率與度中率,分別給出了行星在一個(gè)會(huì)合周期內(nèi)各段目的平均運(yùn)行時(shí)間與距離。由于行星中心差和太陽中心差影響,行星在各段目?jī)?nèi)運(yùn)行的時(shí)間與距離均會(huì)發(fā)生變化。《大衍歷》處理這個(gè)問題的基本思路是,首先對(duì)日中率和度中率進(jìn)行與行星中心差有關(guān)的修正,得到日變率和度變率,然后對(duì)日變率和度變率進(jìn)行太陽中心差以及一些其他補(bǔ)充修正,得到日定率和度定率。根據(jù)《大衍歷》“求變行日度變率”算法([1],頁2103),從日度中率到日度變率的修正算法為

日度變率=日度中率±Δ

(15)。

式(15)中的修正項(xiàng)Δ及其符號(hào),與本段段首的進(jìn)退變率y1和次段段首的進(jìn)退變率y2的進(jìn)退及大小有關(guān),具體規(guī)則如下:(a)若y1和y2同為進(jìn)或同為退,則Δ=|y1-y2|。若y1和y2同為進(jìn)且y1y2,取“+”;若y1和y2同為進(jìn)且y1>y2,或y1和y2同為退且y1

通過比較《大衍歷》和《宣明歷》求日度變率的算法,我們發(fā)現(xiàn),《宣明歷》動(dòng)態(tài)表中的“加減數(shù)”,即式(14)中的“加減數(shù)”與式(15)中修正項(xiàng)Δ的功能完全相同。前面的討論已經(jīng)指出,《宣明歷》五星平見加減差與《大衍歷》中進(jìn)退變率的意義相同,因此,從算理上講,《宣明歷》五星動(dòng)態(tài)表中的加減數(shù),就是根據(jù)行星運(yùn)行至各段段首和段末的平見加減差計(jì)算得到的,其計(jì)算方法及符號(hào)法則與式(14)中的Δ相同。根據(jù)《大衍歷》修正算法,每個(gè)段目對(duì)應(yīng)的修正項(xiàng)Δ都需要計(jì)算該段目首尾的進(jìn)退變率,《宣明歷》則根據(jù)各段目所入各變,直接給出修正項(xiàng)“加減數(shù)”。顯然,《宣明歷》所設(shè)“加減數(shù)”確實(shí)簡(jiǎn)化了計(jì)算,但是由此引起的誤差也是顯而易見的。這是因?yàn)椋粑逍歉鞫味问兹腙庩枤v各變度數(shù)不同,則所求“加減數(shù)”應(yīng)該不同,而《宣明歷》顯然只根據(jù)段首入變?cè)O(shè)計(jì)了相應(yīng)的加減數(shù),而未考慮入變度數(shù)不同而導(dǎo)致的“加減數(shù)”的變化。此外,分析《宣明歷》五星動(dòng)態(tài)表中的加減數(shù),通常會(huì)在陰陽歷的某些區(qū)間呈現(xiàn)出以某一常數(shù)為公差的等差數(shù)列,這顯然并非實(shí)際計(jì)算所得,而應(yīng)該是在計(jì)算的基礎(chǔ)上進(jìn)行人為調(diào)整的結(jié)果。

5 《宣明歷》五星平見加減歷精度

關(guān)于《宣明歷》五星平見加減歷的精度,學(xué)者關(guān)注較少。陳美東曾詳細(xì)考察過自《大衍歷》至《授時(shí)歷》共20部歷法中五星盈縮歷的精度,他指出:“大衍歷既有首創(chuàng)五星盈縮歷之功,且盈縮歷均不同程度地對(duì)五星運(yùn)動(dòng)不均勻性的改正起了好的作用。而自宣明歷以后,水星的盈縮歷僅小有補(bǔ)益,而金、火二星的盈縮歷則起反作用。對(duì)于木、土二星,宣明歷較大衍歷有相當(dāng)大的進(jìn)步,但到崇玄等四歷卻發(fā)生了倒退現(xiàn)象,崇天歷亦不如大衍歷?!?[9],頁464)由此可見,陳美東對(duì)《宣明歷》五星平見加減歷的精度評(píng)價(jià)并不高,這其中的主要原因是,陳美東認(rèn)為《宣明歷》中的五星平見加減差與《大衍歷》中的五星進(jìn)退積均為行星中心差,以火星為例,《大衍歷》火星進(jìn)退積最大值的誤差為4.28°,而《宣明歷》火星平見加減差最大值的誤差為16.03°。然而本文的討論表明,《宣明歷》中的平見加減差并非行星中心差,它與行星中心差的關(guān)系如式(10)所示。

根據(jù)現(xiàn)代天文學(xué)理論,若設(shè)五星中心差為c,軌道偏心率為e,平近點(diǎn)角為M,則行星中心差可近似表示為[15]

(16)。

利用式(16),可以討論《宣明歷》五星平見加減歷的精度。我們首先討論《宣明歷》中五星平見加減差和進(jìn)退積的最大值及其誤差,結(jié)果如表3所示。表3中,平見加減差歷法結(jié)果采自《宣明歷》五星平見加減歷,進(jìn)退定數(shù)的歷法結(jié)果根據(jù)式(13)得到,進(jìn)退定數(shù)的理論結(jié)果即為中心差由式(16)得到,平見加減差的理論結(jié)果由式(10)得到,其中木星軌道偏心率為0.048,公轉(zhuǎn)周期為4332.589日,火星軌道偏心率為0.093,公轉(zhuǎn)周期為686.980日,土星軌道偏心率為0.055,公轉(zhuǎn)周期為10759.2日[16]。為方便討論,表3中各欄數(shù)值單位均化為“°”,轉(zhuǎn)換關(guān)系為365.2564度=360°,誤差均為歷法結(jié)果與相應(yīng)理論結(jié)果之差。

表3 《宣明歷》進(jìn)退積和平見加減差最大值及誤差

從表3可以看到,對(duì)于木星和土星而言,《宣明歷》進(jìn)退定數(shù)與平見加減差的差別并不算大,但是對(duì)于火星而言,進(jìn)退定數(shù)和平見加減差之差達(dá)到了15.95°,其差別非常大。此外,就《宣明歷》平見加減差的最大值而言,木星和土星的取值均比較理想,其中木星和土星的誤差分別為0.02°和0.48°,而火星取值誤差稍大,誤差達(dá)到3.52°,這應(yīng)該是火星偏心率較大導(dǎo)致計(jì)算比較困難的直接反映。

顯然,僅僅討論五星平見加減差最大值的誤差,還無法對(duì)《宣明歷》五星平見加減歷的精度做出全面評(píng)價(jià),這是因?yàn)?,?dāng)歷法中的平見加減差取最大值時(shí),相應(yīng)的理論結(jié)果不一定取最大值。為了更全面地討論《宣明歷》五星平見加減歷精度,我們以平近點(diǎn)角為自變量,以15°為間隔,分別計(jì)算出木星、火星和土星平見加減差的理論結(jié)果,并與相應(yīng)的歷法結(jié)果進(jìn)行對(duì)比。進(jìn)一步的計(jì)算結(jié)果表明,《宣明歷》木星平見加減歷以遠(yuǎn)地點(diǎn)為中心對(duì)稱,最大誤差為0.50°;火星和土星的平見加減歷并不對(duì)稱,其中火星和土星的平見加減差的最大誤差分別為11.69°和1.62°。為了更直觀地考察《宣明歷》五星平見加減歷的精度,我們根據(jù)計(jì)算結(jié)果繪出《宣明歷》外行星平見加減差與相應(yīng)理論結(jié)果的曲線,如圖1—圖3所示。

圖1 《宣明歷》木星平見加減差誤差

圖2 《宣明歷》火星平見加減差誤差

圖3 《宣明歷》土星平見加減差誤差

圖1—圖3比較直觀地反映了《宣明歷》外行星平見加減差的精度。總體來說,《宣明歷》木星平見加減差曲線與理論曲線吻合程度非常高,土星平見加減差曲線雖然在前半段不夠光滑,但是大體與理論曲線也比較吻合,火星平見加減差曲線不夠光滑,且曲線形狀與理論曲線相差較大,特別是陰歷諸變的誤差尤其明顯。

6 結(jié)語

五星平見加減歷是《宣明歷》在行星理論方面最重要的創(chuàng)新,相比《大衍歷》和《五紀(jì)歷》中的五星爻象歷,《宣明歷》五星平見加減歷的優(yōu)點(diǎn)是顯而易見的。在《大衍歷》五星動(dòng)態(tài)表中,每個(gè)段目都對(duì)應(yīng)一組乘數(shù)與除數(shù),《五紀(jì)歷》為每個(gè)行星只設(shè)一組乘數(shù)和除數(shù),不再區(qū)分段目,大大簡(jiǎn)化了計(jì)算,《宣明歷》沿襲《五紀(jì)歷》做法,每個(gè)行星也只設(shè)一組差率和差數(shù),不僅如此,《大衍歷》和《五紀(jì)歷》在進(jìn)行與行星中心差相關(guān)的修正時(shí),需要將行星的進(jìn)退積乘以與乘數(shù)與除數(shù)相關(guān)的轉(zhuǎn)換系數(shù),而《宣明歷》直接將行星進(jìn)退積與轉(zhuǎn)換系數(shù)的乘積列入平見加減歷,查取更加方便?!缎鳉v》以后各部歷法中的五星盈縮歷,均沿襲《宣明歷》五星平見加減歷的設(shè)計(jì)思路,不再直接出現(xiàn)乘數(shù)與除數(shù)。從這個(gè)意義上說,在中國行星理論發(fā)展史上,《宣明歷》五星平見加減歷具有承前啟后的重要地位。

本文的計(jì)算結(jié)果表明,就《宣明歷》所取外行星平見加減差最大值來說,木星和土星的取值都比較理想,誤差分別為0.02°和0.48°,火星取值誤差稍大,其誤差達(dá)到3.52°。就整個(gè)五星平見加減歷的精度來說,木星、火星和土星的最大誤差分別為0.50°,11.69°和1.62°,由于平見加減差的誤差只是影響行星視位置計(jì)算的主要因素,因此《宣明歷》行星視位置計(jì)算的最大誤差應(yīng)該還要大于平見加減歷的最大誤差,以火星為例,視位置計(jì)算的最大誤差應(yīng)該不會(huì)低于12°。

在《宣明歷》的行星理論中,徐昂不僅設(shè)計(jì)了使用更加方便的五星平見加減歷,在行星理論的其他方面也有一些創(chuàng)新之處。例如,本文的討論就指出,《宣明歷》上元時(shí)五星并不都過近日點(diǎn),其中,火星、金星和水星近日點(diǎn)均在冬至點(diǎn),木星遠(yuǎn)日點(diǎn)在冬至點(diǎn);《宣明歷》為簡(jiǎn)化日度變率的計(jì)算,在五星動(dòng)態(tài)表中設(shè)計(jì)了加減數(shù)。除此之外,《宣明歷》所取行星變差數(shù)值與《大衍歷》相比偏小,《宣明歷》在計(jì)算行星定見及諸段入歷時(shí),以各段行度作為諸段入歷度的增量。徐昂在《宣明歷》行星理論中所做的種種努力,都充分體現(xiàn)了徐昂的創(chuàng)新精神。

總體來說,《宣明歷》在行星理論方面做了有益的嘗試和探索,并取得了重要進(jìn)展,其中最突出的例子,就是《宣明歷》設(shè)計(jì)的五星平見加減歷大大簡(jiǎn)化了與行星中心差相關(guān)的修正項(xiàng),從而得到后世歷法的沿襲。當(dāng)然,《宣明歷》在行星理論方面的改革,也有一些不合理的地方。例如,《宣明歷》在五星動(dòng)態(tài)表中設(shè)計(jì)的加減數(shù),盡管能夠在一定程度上簡(jiǎn)化從日度中率到日度變率的計(jì)算,但由于該算法的設(shè)計(jì)本身就存在缺陷,由此產(chǎn)生的誤差也是顯而易見的,因此,《宣明歷》在五星動(dòng)態(tài)表中設(shè)計(jì)的加減數(shù),也再未在其他歷法中出現(xiàn)。

猜你喜歡
變率減數(shù)歷法
正確的差是多少
研究顯示降水變率將隨氣候增暖而增強(qiáng)
從走馬樓西漢簡(jiǎn)歧異干支談漢初歷法混用問題
一天下完一年的雨
發(fā)明新歷法
加、減法的巧算
新疆奎屯柳溝墾區(qū)降水量變化特征分析
20以內(nèi)的退位減法
歷法術(shù)語“執(zhí)徐“”大荒落”“敦牂”“協(xié)洽”詞義及相關(guān)考索
銅仁西部不同時(shí)間尺度溫度降水變率分析