葉 杰
(西北大學(xué) 科學(xué)史高等研究院,陜西 西安 710127)
中國(guó)古代對(duì)五星視運(yùn)動(dòng)規(guī)律的觀測(cè)和記錄很早,早在戰(zhàn)國(guó)時(shí)期,天文學(xué)家甘德和石申就對(duì)五星運(yùn)動(dòng)進(jìn)行了認(rèn)真的觀測(cè)和研究,在提出會(huì)合周期和恒星周期的概念同時(shí),還發(fā)現(xiàn)了五星逆行現(xiàn)象[1]。從西漢《太初歷》始,每部歷法中都會(huì)專列一章討論行星運(yùn)動(dòng)理論[2]。
在北齊張子信發(fā)現(xiàn)行星公轉(zhuǎn)與太陽(yáng)視運(yùn)動(dòng)的不均勻性之前(565年前后),歷法家只能推算行星的地心平黃經(jīng)。隋唐歷法家在張子信天文大發(fā)現(xiàn)的基礎(chǔ)上,考慮行星中心差和太陽(yáng)中心差的修正,隋代《皇極歷》(600)在行星理論中設(shè)計(jì)了“五星入氣加減差”算法,用于修正行星中心差。一行在《大衍歷》(727)中將文字描述的“五星入氣加減差”改造為表格形式的“五星爻象歷”,《大衍歷》步五星術(shù)奠定了中國(guó)古代行星理論的基本框架。經(jīng)過宋初三歷的探索,至宋代《崇天歷》(1024)時(shí),行星理論基本趨向成熟[3],此后的歷法基本沒有太多實(shí)質(zhì)性的改進(jìn)。
中國(guó)古代行星理論一直受到科學(xué)史家的高度關(guān)注。曲安京[4-5]研究了行星理論的目的、整體框架以及行星盈縮差算法的數(shù)學(xué)模型。劉金沂[6]利用現(xiàn)代天文學(xué)方法分析討論了《麟德歷》的行星運(yùn)動(dòng)理論。陳美東[7]研究了五星的盈縮歷表的構(gòu)造、精度及其數(shù)值??薄L迫猍8]研究了唐宋時(shí)期五星盈縮差算法的演變軌跡。李東生[9]研究了五星會(huì)合周期和恒星周期。鈕衛(wèi)星[10]研究了行星運(yùn)動(dòng)數(shù)值的來源。張培瑜、薄樹人[11]、張健[12-13]、李勇[14]、唐泉[15-20]等人研究《授時(shí)歷》《大統(tǒng)歷》《紀(jì)元?dú)v》《皇極歷》五星視位置的計(jì)算精度,并在計(jì)算精度的基礎(chǔ)上分析了影響行星計(jì)算精度的因素。以上學(xué)者的工作,對(duì)我們?nèi)胬斫庵袊?guó)古代行星理論具有非常重要的參考價(jià)值。
《崇天歷》步五星術(shù)是中國(guó)傳統(tǒng)行星理論走向成熟的重要標(biāo)志,然而關(guān)于《崇天歷》行星算法及精度分析的討論,目前的研究還比較少見。行星理論的主要目的是計(jì)算五星任意時(shí)刻的赤道宿度或黃道宿度。北宋天文學(xué)家周琮提出了當(dāng)時(shí)歷法家對(duì)行星計(jì)算精度的期望:“其較星度,以差天二度以下為親,三度以下為近,四度以上為遠(yuǎn)”。[21]那么《崇天歷》行星計(jì)算精度能否達(dá)到以上標(biāo)準(zhǔn)呢?本文將在全面解讀《崇天歷》行星算法的基礎(chǔ)上,利用python 語(yǔ)言模擬《崇天歷》行星算法,并討論《崇天歷》頒行初期30年行星的計(jì)算精度,同時(shí)對(duì)誤差產(chǎn)生的原因進(jìn)行分析。
《崇天歷》步五星術(shù)中用到的天文常數(shù)大多在步五星章[21]直接給出,以木星為例五星常數(shù)見表1,部分常數(shù)在步氣朔章、步日躔章給出。
表1 《崇天歷》步五星常數(shù)(以木星為例)
“五星會(huì)策”表示行星近點(diǎn)周期的二十四分之一?!澳拘侵苈省北硎灸拘菚?huì)合周期的日分?!爸苋铡北硎灸拘且匀諡閱挝坏臅?huì)合周期,周率除以樞法即得周日?!皻q差”表示行星近日點(diǎn)每年相對(duì)于冬至點(diǎn)進(jìn)動(dòng)的數(shù)值,單位為度分。
行星視位置的計(jì)算除步五星章所列常數(shù)外,步氣朔、步日躔也有涉及。在步氣朔章給的天文常數(shù)有:“樞法”表示一日的日分?jǐn)?shù),“歲周”表示一個(gè)回歸年的日分?jǐn)?shù),“紀(jì)法”是天干地支的組合數(shù)。步日躔章給的天文常數(shù)有:“周天分”,《崇天歷》將整個(gè)圓周分為3 868 065.02分,此處的周天指的是天球上的赤道或黃道。
“五星動(dòng)態(tài)表”是以五星平運(yùn)動(dòng)為模型建立的天文表格,主要用于計(jì)算五星的平位置。由于行星在一個(gè)會(huì)合周期內(nèi)的視運(yùn)動(dòng)呈現(xiàn)出順、逆、伏、留多種狀態(tài),很難用統(tǒng)一的方法進(jìn)行分析,因此歷法家通常是采用分段處理的方法,來描述行星在一個(gè)會(huì)合周期內(nèi)的運(yùn)動(dòng)。以木星動(dòng)態(tài)表(表2)為例解釋。
表2 木星動(dòng)態(tài)表
“變目”是歷法家根據(jù)行星視運(yùn)動(dòng)的規(guī)律,將行星在一個(gè)會(huì)合周期內(nèi)的平運(yùn)動(dòng)分劃為若干段目,單位為日,不同的行星就有不同的段目數(shù)和段目名,例如在《崇天歷》中金星段目最多,分成了20段,水星最少,只有10段。
“變?nèi)铡敝傅氖切行窃诓煌文績(jī)?nèi)運(yùn)行的時(shí)間,單位為日。日下分為百進(jìn)制,即一日為100分。如木星“前伏”段變?nèi)諡椤笆瞻耸?,亦?6.86 日,變?nèi)罩偷扔谖逍菚?huì)合周期。
“變度”是五星在每個(gè)段目?jī)?nèi)平均運(yùn)行的度距,單位為度,“退行”段即逆行,其度距在實(shí)際計(jì)算時(shí)應(yīng)取為負(fù)值,木星各段目變度之和為34.73 度,其意為木星在一個(gè)會(huì)合周期內(nèi)運(yùn)行的度距。
“限度”是計(jì)算行星各段目初始時(shí)刻盈縮差的自變量時(shí)需要用到的一個(gè)參數(shù),單位為度。木星各段目限度之和為33.64度,約等于變度之和。
“初行率”是行星在各段目初始時(shí)刻行星視運(yùn)動(dòng)的瞬時(shí)速度,不等于“初日行分”,只有在“求五星諸變初日晨前夜半定星”算法時(shí)才用到,單位為分/日。如木星“前伏”段初行率為“二十二”,意為22 分/日,或0.22度/日。
“五星盈縮歷”是計(jì)算五星盈縮差時(shí)需用到的天文表。唐代《大衍歷》首先將前歷用文字描述的“五星入氣加減差”算法改造為表格形式的“五星爻象歷”,用于修正五星平運(yùn)動(dòng)與真運(yùn)動(dòng)的差值。《大衍歷》后的歷法都會(huì)在步五星章中設(shè)計(jì)類似“五星爻象歷”的表格,發(fā)展到《崇天歷》時(shí),該類表格統(tǒng)一稱為“五星盈縮歷”。盈縮差與行星中心差有關(guān),但不等于行星中心差,關(guān)于五星盈縮差的天文涵義,已有學(xué)者進(jìn)行過詳細(xì)討論[22]。《崇天歷》中的五星盈縮歷包括6 欄內(nèi)容,這6 欄可以分為兩個(gè)部分,即盈歷和縮歷,盈歷的內(nèi)容包括:會(huì)數(shù)、損益率、盈積度,縮歷的內(nèi)容包括:會(huì)數(shù)、損益率、縮積度。以“木星”盈縮歷(表3)為例描述。
表3 木星盈縮歷
《崇天歷》盈縮歷表是將五星在一個(gè)近點(diǎn)周期內(nèi)運(yùn)行的度數(shù)分成24段,段數(shù)稱為“會(huì)數(shù)”。從盈縮歷起點(diǎn)開始,五星的實(shí)行度總在其平行度之前,故稱為盈歷(前12段),后12段的五星實(shí)行度總落后于其平行度,故稱為縮歷。[4]
“損益率”單位為分,是五星實(shí)行度與平行度的差值。損益率是長(zhǎng)期觀測(cè)所得[7,23],歷法家以近日點(diǎn)為起點(diǎn),分別測(cè)得五星各會(huì)的實(shí)行度,減去相應(yīng)的平行度,便得到了損益率。從表中數(shù)據(jù)可知,損益率在數(shù)值上等于相鄰二會(huì)盈縮積度之差。
“盈、縮積度”單位為度,表示各會(huì)起點(diǎn)處五星的盈縮差,其值等于損益率的代數(shù)和。
計(jì)算《崇天歷》五星任意時(shí)刻視位置的基本思路是:先算出五星運(yùn)動(dòng)的起點(diǎn)位置和起點(diǎn)時(shí)刻后,再根據(jù)行星動(dòng)態(tài)表中行星在一個(gè)會(huì)合周期內(nèi)各段運(yùn)行的時(shí)間和度距求出各段對(duì)應(yīng)的平時(shí)間和平位置(可以轉(zhuǎn)化為平黃經(jīng)),然后借助五星盈縮歷表中給出的平黃經(jīng)和真黃經(jīng)的差(即“損益率”“盈縮積”),結(jié)合“五星諸變盈縮定差”算法求出“盈縮定差”,最終求出行星運(yùn)動(dòng)到各段首時(shí)對(duì)應(yīng)的真黃經(jīng)和真時(shí)間。
在已知各段的真黃經(jīng)和真時(shí)間后,利用線性插值法得出五星各段的“初日行分”(初日速度)、“末日行分”(末日速度)、“日差”(加速度),最終得到“每日行分”(行星每一天所運(yùn)動(dòng)的真距離),累加行星起點(diǎn)的真位置便可得“每日晨前夜半行星宿次”。
本文僅給出歷法中與五星視位置計(jì)算相關(guān)子算法的名稱、意義和算法思路[19]?!冻缣鞖v》步五星算法共有18段術(shù)文,與行星視位置運(yùn)動(dòng)計(jì)算相關(guān)的有11段,這11段術(shù)文大致可以分為以下3部分內(nèi)容。
術(shù)文7-1①術(shù)文標(biāo)號(hào)為“7-X”,“7”為《崇天歷》第七章,“X”為與五星視位置計(jì)算相關(guān)的算法。推五星天正冬至后諸變中積中星。[21]2621
即推算五星所求年前一年冬至后各段段首的“中積”和“中星”?!捌胶现蟹e”,指在平合時(shí)刻五星到所求年冬至?xí)r刻的平時(shí)間,單位為日。“平合中星”,指在平合時(shí)刻五星到所求年冬至點(diǎn)的平度距,單位為度。因?yàn)槠胶蠒r(shí)刻太陽(yáng)與行星的平黃經(jīng)重合,太陽(yáng)平運(yùn)動(dòng)速度為日行一度,所以平合中星的數(shù)值等于平合中積,故天正冬至后平合中積中星計(jì)算公式如下:
其中N為正整數(shù)?!捌胶现蟹e”累加動(dòng)態(tài)表中各自對(duì)應(yīng)的變?nèi)占吹谩爸T變中積”,“平合中星”累加動(dòng)態(tài)表中各自對(duì)應(yīng)的變度即得“諸變中星”。
術(shù)文7-2 求五星諸變?nèi)霘v。[21]2621
即求五星各段段首與近日點(diǎn)的度距,單位為度。首先要求出“平合入歷”,即平合時(shí)刻五星與近日點(diǎn)的度距,計(jì)算公式如下:
以“平合入歷”為起點(diǎn),累加動(dòng)態(tài)表中各段對(duì)應(yīng)的限度即得“諸變?nèi)霘v”。
術(shù)文7-3 求五星諸變盈縮定差。[21]2622
即求五星各段的平行星和真行星的時(shí)間、位置修正項(xiàng),《崇天歷》求盈縮定差的算法是比例算法,單位為度。通過術(shù)文7-2,可知五星各段段首與近日點(diǎn)的度距,該“度距”會(huì)有與其相對(duì)應(yīng)的修正項(xiàng)(即盈、縮積度),由此可求出五星各段的盈縮定差。盈縮定差計(jì)算公式如下:
盈縮定差=盈縮程度+損益分。
術(shù)文7-4 求五星諸變定積。[21]2622
即求五星各段段首到所求年冬至?xí)r刻的真時(shí)間,五星各段的平合中積加上各段對(duì)應(yīng)的盈縮定差便得五星各段的定積,單位為日。由前段術(shù)文推五星天正冬至后諸變中積可以得到平合時(shí)刻五星到所求年冬至?xí)r刻的平時(shí)間,再盈加縮減各段對(duì)應(yīng)的修正項(xiàng)即盈縮定差,最終求得五星各段的真時(shí)間。定積計(jì)算公式如下:
諸段定積=諸段中積+諸段對(duì)應(yīng)的盈縮定差。
術(shù)文7-5 求五星諸變定星。[21]2623
即求五星各段段首與所求年冬至點(diǎn)的真度距,五星各段的平合中星加上各段對(duì)應(yīng)的盈縮定差就是五星各段的定星,單位為日。由前段術(shù)文推五星天正冬至后諸變中星可以得到平合時(shí)刻五星度距所求年冬至點(diǎn)的平度距,再加減各段對(duì)應(yīng)的修正項(xiàng)即盈縮定差,最終求得五星各段的真度距。定星計(jì)算公式如下:
諸段定星=諸段中星+諸段對(duì)應(yīng)的盈縮定差。
術(shù)文7-6 五星諸變初日晨前夜半定星。[21]2623
即求五行星在各段初日的晨前夜半時(shí)的位置與所求年天正冬至點(diǎn)的度距,此處是一個(gè)精細(xì)算法,單位為度,損益分,意為某一個(gè)段目節(jié)點(diǎn)所入會(huì)度相鄰整度數(shù)盈縮積度之差[21]。
術(shù)文7-7 求諸變?nèi)斩嚷?。[21]2623
即求五星各段的日率和度率?!叭章省奔聪噜弮啥纬跞粘壳耙拱胂嗑嗟恼諗?shù)?!岸嚷省奔聪噜弮啥纬跞粘壳耙拱攵ㄐ窍嗑嗟亩染?。
術(shù)文7-8 求諸變平行分。[21]2623
即求五星各段的平均速度,單位為度/日。“平行分”指的是所求段目行星視運(yùn)動(dòng)的平均速度,度率與日率的比值就是平行分。
術(shù)文7-9 求諸變總差。[21]2624
《崇天歷》假定行星在每個(gè)段目上每天的視運(yùn)動(dòng)速度呈等差數(shù)列變化,總差即為諸段初日速度與末日速度的落差。
術(shù)文7-10 求諸變初末日行分。[21]2624
即求五星各段初日速度和末日速度。五星各段的平行分分別加減該段總差的一半,便可得該段的初、末日行分。
如果后段行分大,則減之為初,加之為末;若后段行分小,則加之為初,減之為末;如果前后段平行分都比本段多,或者都比本段少,又或者本段總差小于0.01度,這三種情況都平注之(即取平均速度);退行段,各以半總差,前段減之為初,加之為末。后段加之為初,減之為末。
術(shù)文7-11 求每日晨前夜半星行宿次。[21]2624
即求五星每日晨前夜半的黃道宿度或赤道宿度,由總差和日率可求出日差,日差即加速度,由初日行分累加日差,可以求出各日平行度分,由行星各段段首晨前夜半時(shí)的位置累加各日行度即得五星每日晨前夜半的真位置。
中國(guó)古代歷法中的行星真位置均由宿度表示,不便于與現(xiàn)代天文學(xué)的黃經(jīng)、黃緯進(jìn)行比較,因此我們將宿度轉(zhuǎn)換為了黃經(jīng)值。雖然中國(guó)古代歷法一致是極黃經(jīng)坐標(biāo),但其值與黃經(jīng)相差很小,故將極黃經(jīng)視為黃經(jīng)。具體計(jì)算過程為:
(1)《崇天歷》“推天正冬至”算法可以求出“天正冬至日辰及余”,“日辰”即日名,“余”即不足一日的小數(shù),我們稱“天正冬至日辰及余”為歷取冬至?xí)r刻。
(2)通過《三千五百年歷日天象》[24]可以得到冬至點(diǎn)實(shí)際日名是幾日幾時(shí)幾分,我們稱該值為“理論冬至?xí)r刻”。用歷取冬至?xí)r刻減理論冬至?xí)r刻便可以得到冬至點(diǎn)的誤差,已知理論冬至點(diǎn)的黃經(jīng)為270°,在理論冬至點(diǎn)加上歷取冬至點(diǎn)與理論冬至點(diǎn)的差便可求出冬至點(diǎn)的真黃經(jīng)。
(3)若所求年會(huì)合周期的末日與下一個(gè)周期的首日相重,則以下一個(gè)周期的首日為新的起點(diǎn)。由術(shù)文7-11得到的“每日行度及分”,需將古度轉(zhuǎn)換為現(xiàn)代度。
為了更好地理解術(shù)文,本文以火星為例,對(duì)照2.1 至2.3 節(jié)行星視位置算法的解讀,計(jì)算自公元1024 年冬至夜半起算,首合日后第一個(gè)會(huì)合周期內(nèi)與行星位置算法相關(guān)的術(shù)文結(jié)果。
術(shù)文7-1 推五星天正冬至后諸變中積中星。
已知上元積年為97 556 340 年,火星歲周為3 867 940,火星周率為8 259 366.59 分,天正冬至后平合中積、中星的計(jì)算過程如下:
氣積分=歲周×歲積=377342069739600分,
不盡=氣積分-N×周率=5944 836.4268分,
平合中星=平合中積=218.5581度。
術(shù)文7-2 求五星諸變?nèi)霘v。
已知火星歲差(星差)為103.53 分,周天分為3 868 065.02分,由平合入歷計(jì)算公式得
術(shù)文7-3 求五星諸變盈縮定差。
平合入歷度為172.277 4度,在半周天度以下,入陽(yáng)歷11會(huì),該會(huì)對(duì)于的損益率為損396分,盈積度為盈3.96 度。又知五星會(huì)策為15.219,則“余數(shù)”為0.319 9,則在172.277 4度處的盈縮定差為
術(shù)文7-4 求五星諸變定積。
平合中積即為前伏段中積,又知該段節(jié)點(diǎn)的盈縮定差,故
前伏段定積=前伏段中積+盈縮定差=221.2513日。
術(shù)文7-5 求五星諸變定星。
前伏段定星=前伏段中星+盈縮定差=221.2513度。
術(shù)文7-6 求五星諸變初日晨前夜半定星。
由步氣朔章可求出天正冬至大小余為28.158 6日,前伏段定日為該段定積與冬至大小余之和,算得前伏段定日大小余為249.41日。查火星動(dòng)態(tài)表可知其前伏段初行率為0.71 度/日,定日小余為0.41 日,故前伏段初日晨前夜半定星為
夜半定星=定星-初行率×定日小余=220.9602度。
術(shù)文7-7 求諸變?nèi)斩嚷省?/p>
火星前伏段的后段為前疾初段,根據(jù)上述計(jì)算公式可求出該段定日為305.571 2 日,晨前夜半定星為257.007度,故
前伏段日率=前疾初段定日-前伏段定日=56日,
前伏段度率=前疾初段夜半定星-前伏段夜半定日=36.0468度。
術(shù)文7-8 求諸變平行分。
術(shù)文7-9 求諸變總差。
因前伏段屬于“無前段平行分”的特殊情況,該段半總差等于后段初日行分減該段平行分,算得總差數(shù)值為0.010 6。
術(shù)文7-10 求諸變初末日行分。
由上述計(jì)算公式可得前疾初段平行分為0.638 4度/日,則前伏段平行分大余其后段平行分,故
術(shù)文7-11 求每日晨前夜半星行宿次。
每日行度及分=初日行分+日差=0.64919度/日。
本文主要目的是分析《崇天歷》五星視位置的計(jì)算精度,對(duì)其精度的全面分析,有助于我們客觀評(píng)價(jià)《崇天歷》行星理論的水平。中國(guó)古代行星算法具有很強(qiáng)的程序化和算法化特征,很容易在理解術(shù)文的基礎(chǔ)上借助計(jì)算機(jī)去實(shí)現(xiàn)步五星算法,本文用python 語(yǔ)言將步五星算法進(jìn)行編程,最后將得到五星歷取黃經(jīng)與理論黃經(jīng)(提取自Skymap 天文軟件)進(jìn)行比較。因Skymap 只提供赤經(jīng)、赤緯,需將其轉(zhuǎn)換為黃經(jīng)、黃緯,此處的黃赤交角值取23.9°[25]。
為全面考察《崇天歷》計(jì)算精度,我們按照《崇天歷》步五星算法計(jì)算了五星自北宋天圣二年(1024)起大概30年內(nèi)的整周期每一日夜半的黃經(jīng),并和其理論位置進(jìn)行比較。根據(jù)《崇天歷》步五星算法可知,天圣二年(1024)冬至后木星和太陽(yáng)第一次合發(fā)生在1023年12月18日,火星和太陽(yáng)的第一次合發(fā)生在1024年7 月24日,土星和太陽(yáng)的第一次合發(fā)生在1024 年2 月29 日,金星和太陽(yáng)的第一次合發(fā)生在1025 年3 月15 日,水星和太陽(yáng)的第一次合發(fā)生在1024年2月8日。
為了更加直觀具象地展示《崇天歷》行星的計(jì)算精度,本文給出行星的黃經(jīng)絕對(duì)值誤差曲線圖,即圖1 到圖5。圖中橫坐標(biāo)表示五星自北宋天圣二年(1024)第一次合后的日數(shù),單位為“日”,縱坐標(biāo)表示歷取黃經(jīng)與理論黃經(jīng)的差,單位為“°”。
通過圖1可知,木星黃經(jīng)誤差基本在3°以內(nèi),任何一個(gè)整周期內(nèi)的誤差曲線趨勢(shì)基本相同。
圖1 《崇天歷》木星黃經(jīng)誤差散點(diǎn)圖
圖2 中,誤差超出5°的部分共有5 處,造成該誤差的主要原因有:(1)行星運(yùn)動(dòng)在歷法中是“留”或“退行”,但其理論狀態(tài)卻是“順行”,因此造成了巨大誤差;(2)在計(jì)算火星時(shí),因1029年末日與1031年初日、1043 年末日與1045 年初日,他們的黃經(jīng)差變化幅度都很大,導(dǎo)致相鄰周期的誤差曲線未能銜接上,最終造成后面周期的誤差更大。
圖2 《崇天歷》火星黃經(jīng)誤差散點(diǎn)圖
圖3中土星各周期的誤差變化規(guī)律很強(qiáng),且理論黃經(jīng)與歷取黃經(jīng)的最大誤差都在2.5°之內(nèi)變化,土星歷取黃經(jīng)精度總體而言較好。
圖3 《崇天歷》土星黃經(jīng)誤差散點(diǎn)圖
通過圖4、圖5可知:在五星運(yùn)動(dòng)中,水星的黃經(jīng)誤差最大的。主要是因?yàn)樗沁\(yùn)動(dòng)速度快,古代觀測(cè)水平有限,水星位置最難測(cè)算,導(dǎo)致其誤差較大。
圖4 《崇天歷》金星黃經(jīng)誤差散點(diǎn)圖
通過圖1至圖5可知:五星的波動(dòng)周期與其繞日公轉(zhuǎn)周期較吻合,五星各周期的起始位置的誤差基本都在2°以內(nèi)。
圖5 《崇天歷》水星黃經(jīng)誤差散點(diǎn)圖
為了便于后面分析數(shù)據(jù),現(xiàn)將《崇天歷》五星黃經(jīng)誤差整理成表4。
表4 五星精度分析表
《崇天歷》行星計(jì)算精度受多種因素影響盈縮歷表的數(shù)據(jù)將直接影響行星中心差修正項(xiàng),而行星中心差修正項(xiàng)又對(duì)五星運(yùn)動(dòng)的起點(diǎn)(定合)造成影響。此外根據(jù)行星動(dòng)態(tài)表而建立起來的分段插值法能夠從數(shù)學(xué)上確保行星平時(shí)刻、平位置的精度。[4]因此,本章節(jié)將對(duì)《崇天歷》五星的定合日期、五星動(dòng)態(tài)表及五星盈縮歷表誤差進(jìn)行研究,通過計(jì)算分析討論以上因素對(duì)行星計(jì)算精度的具體影響。
因五星運(yùn)動(dòng)的時(shí)間起點(diǎn)是“合”,所以對(duì)于“歷取定合日”的誤差分析便顯得格外重要。表5給出了五星1023年—1052年歷取定合日及理論定合日,限于篇幅,水星只給出所求年第一次合的日期。對(duì)比分析表5 中的歷取定合日和理論定合日[26]可知:
表5 木星、火星、土星、金星、水星1023年-1052年歷取定合日與理論定合日
(1)對(duì)于地外行星,木星運(yùn)行28 個(gè)完整周期,歷取定合日與理論定合日最大相差為3天,平均相差為0.857 1 天,其中有9 個(gè)周期的歷取定合日與理論定合日是同一天;火星運(yùn)行15個(gè)完整周期,歷取定合日與理論定合日最大相差為7 天,平均相差近2 天,其中有3個(gè)周期的歷取定合日與理論定合日是同一天;土星運(yùn)行29個(gè)完整周期,歷取定合日與理論定合日最大相差為3天,平均相差為0.551 7天,其中有7個(gè)周期的歷取定合日與理論定合日是同一天。
(2)對(duì)于地內(nèi)行星,金星運(yùn)行19 個(gè)完整周期,歷取定合日與理論定合日最大相差為3天,平均相差為1.052 6天,其中有11個(gè)周期的歷取定合日與理論定合日是同一天;水星運(yùn)行93個(gè)完整周期,歷取定合日與理論定合日最大相差為13 天,平均相差為1.833天,其中有10個(gè)周期的歷取定合日與理論定合日是同一天。
由此可知,在地外行星里,火星歷取定合日期與理論日期相差最大,土星最優(yōu),木星歷取定合日推算準(zhǔn)確率最高。對(duì)于地內(nèi)行星,水星歷取定合日期與理論日期相差最大,在所求年第一次合的時(shí)候就可以相差10 日以上,但水星推算同一年的第三次歷取定合日的準(zhǔn)確率很高,與理論定合日重合的歷取定合日多都是出現(xiàn)在第三次定時(shí)刻。
本文在分析五星動(dòng)態(tài)表精度時(shí),引用了唐泉構(gòu)建的行星視運(yùn)動(dòng)的理論模型[20,27],在其模型的基礎(chǔ)上求得五星動(dòng)態(tài)表各段目的理論“入平合度”,再與歷法值做差,得出五星各段目變度誤差(歷法變度-理論變度)及各段目節(jié)點(diǎn)誤差。限于篇幅,本文僅以火星(表6)為例分析:《崇天歷》火星動(dòng)態(tài)表歷法變度與理論變度最大誤差的絕對(duì)值是“后遲初段”,達(dá)1.754 6°,各段目節(jié)點(diǎn)最大誤差的絕對(duì)值1.581 9°也是“后遲初段”。造成該結(jié)果的原因可能是該段位于“留”段之后,留的視運(yùn)動(dòng)速度非常小,不利于觀測(cè)分析,最終導(dǎo)致后段的“后遲初段”誤差達(dá)最大。除火星外,《崇天歷》金星動(dòng)態(tài)表歷法變度與理論變度的最大誤差的絕對(duì)值也是出現(xiàn)在“留”段之后的“晨遲初”段,達(dá)2.316 1°,造成該現(xiàn)象的原因可能與火星類似。木星、土星、水星行星動(dòng)態(tài)表各段目理論計(jì)算值與歷法值所給變度的最大誤差的絕對(duì)值依次為:0.975 6°、0.428 9°、1.459 0°,各段目節(jié)點(diǎn)最大誤差的絕對(duì)值依次為0.969 5°、0.426 7°、2.496 4°。由此可知,木、土、水三星最大誤差都發(fā)生于不易觀察的留段或退行段。總體而言,《崇天歷》五星動(dòng)態(tài)表的誤差都比較準(zhǔn)確。
表6 《崇天歷》火星動(dòng)態(tài)表精度計(jì)算
根據(jù)唐泉推導(dǎo)的中國(guó)古代歷法行星盈縮差數(shù)學(xué)模型[22],本文可以計(jì)算出《崇天歷》火星盈縮歷表的理論盈縮積度見表7,《崇天歷》火星盈縮歷表歷法盈縮積度與理論盈縮積度最大誤差為0.905 4°。通過計(jì)算可得:木星、土星、金星、水星盈縮歷表中盈縮積度與理論盈縮積度的最大誤差依次為0.389 6°、0.787 6°、1.751 6°、1.495 0°。總體而言,地內(nèi)行星的精度明顯不如地外行星,地外行星的誤差相對(duì)較小,都可以保持在1°以內(nèi)。
表7 《崇天歷》火星盈縮積度比較
通過以上研究討論,我們可以得到如下結(jié)論:
(1)通過表4可知,對(duì)于《崇天歷》地外行星,土星的最大絕對(duì)誤差最小,為2.364°;木星次之,為4.572°;火星最差,為7.465°。雖然三星都沒有達(dá)到北宋歷法家“差天二度”的期望,但他們的誤差曲線所呈現(xiàn)的規(guī)律大體和同時(shí)期的《紀(jì)元?dú)v》類似,且火星最大誤差與西方16 世紀(jì)的火星誤差精度[27]相比僅相差2 度。對(duì)于《崇天歷》地內(nèi)行星,金星的黃經(jīng)最大絕對(duì)誤差為7.866°,水星最大絕對(duì)誤差為15.877°,金、水二星雖沒有達(dá)到當(dāng)時(shí)歷法家的期望,但《崇天歷》水星計(jì)算精度是優(yōu)于其同時(shí)期的《紀(jì)元?dú)v》?!冻缣鞖v》金星計(jì)算精度也是優(yōu)于其后期的《大統(tǒng)歷》,換言之,《崇天歷》金星、水星計(jì)算精度仍在可接受范圍之內(nèi)。
(2)五星盈縮歷表是影響行星計(jì)算精度的主要因素。在《崇天歷》中,木、火、土、金、水五星歷取盈縮積度與理論盈縮積度的最大誤差依次為0.389 6°、0.905 4°、0.787 6°、1.751 6°、1.495 0°,在地外行星中,火星的盈縮積度誤差最大,故而導(dǎo)致其精度也是最低。因?yàn)橛s積度將直接影響盈縮差的精度,而盈縮積度都是歷法家觀測(cè)所得,限于當(dāng)時(shí)的科技水平,其觀測(cè)器材與理論算法也會(huì)造成一定誤差。
(3)五星動(dòng)態(tài)表對(duì)行星計(jì)算精度影響很大。由表6可知,因?yàn)榛鹦沁\(yùn)動(dòng)速度較快,火星初行率是木、土二星的2 倍甚至3 倍,不容易觀測(cè)計(jì)算,因此導(dǎo)致火星的誤差精度為三星中最低,為1.754 6°。
(4)五星定合日的精確度也是行星精度誤差產(chǎn)生的重要原因。結(jié)合表5可知,火星歷取定合日推算結(jié)果在地外行星中最差,歷取定合日與理論定合日誤差最大可達(dá)7日,所以火星計(jì)算精度誤差是三星中最大的。而土星歷取定合日與理論定合日平均相差0.551 7 日,所以其最大絕對(duì)誤差為三星中最小。同理,對(duì)于地內(nèi)行星,金星歷取定合日與理論定合日最大相差3 日,平均相差為1.052 6 日,1023 年至1052年間19個(gè)完整周期中,有11個(gè)周期的歷取定合日與理論定合日是同一天,定合日精度明顯優(yōu)于水星,所以金星最大絕對(duì)誤差、平均誤差都要小于水星。
(5)五星天文常數(shù)準(zhǔn)確度也會(huì)影響行星計(jì)算精度,《崇天歷》中的“歲差”常數(shù)也是影響行星計(jì)算精度的原因。《崇天歷》歲差的天文意義可理解為現(xiàn)代天文學(xué)的的行星近日點(diǎn)相對(duì)于冬至點(diǎn)的進(jìn)動(dòng),但術(shù)文中的歲差是以回歸年為一個(gè)完整運(yùn)動(dòng)周期,而不是以五星近點(diǎn)周期為運(yùn)動(dòng)周期,因此也會(huì)造成誤差。
(6)行星軌道偏心率也對(duì)行星精度有影響。火星偏心率為0.093、木星0.048、土星0.055,火星的軌道偏心率較大,周期也長(zhǎng),所以推算火星的視位置要比木、土二星困難,最終導(dǎo)致火星誤差最大。對(duì)于地內(nèi)行星,金星、水星的軌道偏心率分別為0.007、0.206,所以金星的計(jì)算精度高于水星。