紀(jì) 辰 褚龍飛
(中國科學(xué)技術(shù)大學(xué)科技史與科技考古系,合肥 230026)
由于中國古代歷法推算日趨復(fù)雜,天文計(jì)算逐漸走向“程式化”,至明代直接使用“立成”推算已成為主流[1]。而這種做法的弊端也很明顯,就是容易使天文學(xué)者難以知曉編算歷表的方法,即所謂“歷理”。為了避免這種情況再次出現(xiàn),崇禎年間采用西法的改歷活動(dòng)開始時(shí),作為“總設(shè)計(jì)師”的徐光啟(1562—1633)強(qiáng)調(diào):“每遇一差,必尋其所以差之故;每用一法,必論其所以不差之故。”([2],頁1561)因此,《崇禎歷書》不僅包含用于實(shí)際推算的歷表,同時(shí)還有卷帙浩繁的原理解釋與模型介紹。交食部分也不例外,《交食歷指》主要介紹理論知識(shí),《交食表》則是推算交食的直接工具。按照徐光啟的設(shè)想,每個(gè)交食算表的計(jì)算方法都應(yīng)該交代清楚;不僅如此,這些算表還應(yīng)該與歷指部分的幾何模型相吻合。然而,事實(shí)上這個(gè)目標(biāo)并未實(shí)現(xiàn),雖然大部分交食算表前都有相應(yīng)的“算法”介紹,但仍存在一些不夠清楚的地方。尤其“視半徑表”,傳教士不僅沒有交代日月視半徑的算法是否符合幾何模型,給出的地影半徑算法也不夠完整,且該表還隱藏了一處錯(cuò)誤。另外,《交食表》是否與《崇禎歷書》其他部分存在不一致之處,它們是否會(huì)影響到交食推算的結(jié)果,這些都只有對《交食表》進(jìn)行系統(tǒng)深入的研究才能得知。
雖然《崇禎歷書》中的交食問題早已受到學(xué)界關(guān)注,但前人研究大多集中于西法交食預(yù)報(bào)[3—5],另有少數(shù)涉及交食理論或從比較、傳播與交流等角度進(jìn)行的討論[6—7],目前尚未出現(xiàn)關(guān)于《交食表》本身的系統(tǒng)研究,其中各表的算法更無人論及。事實(shí)上,歷表在明清歷法推算中發(fā)揮著至關(guān)重要的作用,而表的算法也同樣重要;如黃宗羲(1610—1695)所言,“蓋作者之精神盡在于表”,若能“使推者不必見表,而自能成表,則尤為盡善也”[8]。鑒于交食理論在《崇禎歷書》中的重要地位,以及研究歷表算法在明清天文學(xué)史研究中的必要性,本文擬對《交食表》進(jìn)行系統(tǒng)研究并探討相關(guān)問題。
《崇禎歷書·交食表》共九卷,總計(jì)22種算表,根據(jù)各表計(jì)算原理大致可分為三類,如表1所示:第一類以日月周期運(yùn)動(dòng)規(guī)律為基礎(chǔ),用于計(jì)算交食推步過程中的日月平均運(yùn)動(dòng),因此也可稱為“平行表”;第二類以日月運(yùn)動(dòng)的幾何模型為基礎(chǔ),主要用于計(jì)算交食推步過程中的日月實(shí)際位置或速度,以及與日月地三者之間距離相關(guān)的參數(shù);第三類與日月的運(yùn)動(dòng)無關(guān),其內(nèi)容為單純的數(shù)學(xué)變換,主要以球面或歐式幾何為基礎(chǔ)。
表1 《交食表》算表分類情況(1)《交食表》中的“十二宮距宿鈐”和“升度表”與推算交食相關(guān)性不強(qiáng),亦非計(jì)算交食專用?!皶r(shí)氣差簡表”介紹的是“時(shí)氣差表”的另一種計(jì)算方法,在日食的推步過程中實(shí)際上根本不會(huì)用到。因此,本文不擬對上述三表進(jìn)行討論。
第一類算表中,“歷元后二百恒年五行表”(下文簡稱“二百恒年表”)、“歷元前總甲子表”與“六十零年散用五行表”都是推算某一特定時(shí)間點(diǎn)(如某年、某甲子等)的相應(yīng)初始值,而“十三月表”與“四行時(shí)表”則用來計(jì)算兩個(gè)時(shí)間點(diǎn)之間的相應(yīng)差數(shù)。下文以“二百恒年表”和“十三月表”為例,來說明這兩種平行表的用途。“二百恒年表”中的某年“首朔”為該年前一年天正冬至次日子正后的第一個(gè)平朔(2)“歷元前總甲子表”情況稍有不同,其中首朔“用以冬至最近者”,“不拘在先與后也”。,查表(圖1左)可得戊辰年(即崇禎元年,1628年)首朔為一四日一六時(shí)二六分四六秒,表示崇禎元年首朔為該年年前天正冬至次日子正后14日16時(shí)26分46秒。其他參數(shù)情況類似,太陽引數(shù)為該年首朔時(shí)刻的太陽平近點(diǎn)角,太陰引數(shù)為太陰平遠(yuǎn)點(diǎn)角,交周度為太陰白道平經(jīng)度與白道升交點(diǎn)的白道平經(jīng)度之差,太陽經(jīng)度為太陽平黃經(jīng),宿、紀(jì)日則為天正冬至后第一日所在宿及干支([2],頁747—748)?!笆卤怼备鶕?jù)月數(shù)列出各項(xiàng)參數(shù)的相應(yīng)數(shù)據(jù),如太陽引數(shù)三個(gè)朔望月(即八八日一四時(shí)一二分〇九秒)的運(yùn)行為二宮二七度一九分〇二秒(圖1右);此外,該表最末還列出了“望策”(即半個(gè)朔望月)對應(yīng)的數(shù)據(jù)([2],頁761)。在求得某年首朔后,可由“十三月表”進(jìn)一步求出該年任一平朔或平望時(shí)刻,以及相應(yīng)的太陽與太陰引數(shù)等行度。
圖1 《交食表》平行表圖例(左為“二百恒年表”,右為“十三月表”)
第二類算表中的“加減度表”和“太陰實(shí)行表”用于計(jì)算日月的實(shí)際位置或速度,“太陽太陰視差表”和“視半徑表”則與日月地三者之間的距離有關(guān)。顯然,這類算表的推算都要用到日月運(yùn)動(dòng)的幾何模型。譬如,由于地半徑與日月距地心的距離相比并非可以忽略不計(jì),而在地面上不同位置觀測日月會(huì)存在視差,因此計(jì)算“太陽太陰視差表”中的數(shù)據(jù)就需要用到日月地三者之間的距離(3)月距地?cái)?shù)的求解詳見本文第3節(jié),日距地?cái)?shù)的計(jì)算與之類似。。再如,“太陰實(shí)行表”所算為月亮一小時(shí)之實(shí)行,即月亮的實(shí)際運(yùn)動(dòng)速度,所以必然也會(huì)用到月亮運(yùn)動(dòng)的幾何模型。
第三類算表主要是數(shù)學(xué)變換問題,尤其以球面三角形變換居多,典型者如“黃道九十度表”。該表數(shù)據(jù)基本上都是在相應(yīng)的球面三角形中求得,其中“加時(shí)”的本質(zhì)是將太陽黃經(jīng)轉(zhuǎn)換赤經(jīng),“黃道九十度限”為過黃極和天頂?shù)拇笕εc黃道交點(diǎn)的黃經(jīng)度,“九十度距子午”為子午圈和黃道的交點(diǎn)與黃道九十度限的黃經(jīng)差,“九十度距天頂”為黃道九十度限與天頂?shù)狞S緯差,三者主要在由天頂、黃道九十度限、子午圈與黃道交點(diǎn)所構(gòu)成的球面直角三角形中求解。再如,“時(shí)氣差表”是根據(jù)視差求“時(shí)差”和“氣差”,由于“三差并以三小弧”構(gòu)成的球面直角三角形可近似為平面直角三角形,所以直接根據(jù)正弦定理便可求得“時(shí)差”與“氣差”([2],頁915)。
此外,上述所有算表前都有一段說明文字,其內(nèi)容分為“算法”和“用法”兩部分(4)“十三月表”“四行時(shí)表”“升度表”和“太陰距度表”四者前只有“用法”而無“算法”。其中,“升度表”用法中提到“推算表法具在《測量全義》中”?!疤幘喽缺怼钡那闆r與之類似,其算法應(yīng)見于《崇禎歷書》月離部分。由于平行表所求參數(shù)基本相同,且“二百恒年表”前的“算法”已對這些參數(shù)的計(jì)算進(jìn)行了詳細(xì)介紹,“十三月表”和“四行時(shí)表”的計(jì)算方法與之類似,也比較簡單,故似無必要再專門進(jìn)行解釋。同樣地,“太陽距赤道表”和“日食月行表”前并未注明“用法”和“算法”,只有一段簡單的說明,這應(yīng)該是由于二者分別與之前“太陰距度表”和“月食時(shí)分表”的算法與用法基本相同,故無必要再詳細(xì)說明。:“算法”部分先對算表及表中各項(xiàng)進(jìn)行介紹,隨后再說明如何計(jì)算各項(xiàng);“用法”部分則主要說明如何查表的具體事項(xiàng),比如以何參數(shù)入表查得某項(xiàng),怎樣確定所查參數(shù)的加減號(hào),等等。雖然有些算表的“算法”部分沒有直接給出計(jì)算方法,但明確指出詳細(xì)算法見于《崇禎歷書》其他部分(如《交食歷指》)。通過這些“算法”的介紹或其中提示,基本可以厘清《交食表》各表的計(jì)算原理及方法。在所有算表中,“視半徑表”的情況較為特殊,一方面該表所含參數(shù)非常重要,另一方面其表前“算法”介紹既不完整又不清晰,必須通過詳細(xì)論述才能將其狀況交代清楚。因此,下文擬先說明三類算表各自的特點(diǎn)及計(jì)算方法,然后再專門對“視半徑表”進(jìn)行深入討論,分析該表的算法及其合理性。
如前所述,《交食表》中的算表大致可以分為三類,而每一類算表的計(jì)算方法其實(shí)是存在共性的,因此,為節(jié)省篇幅,本節(jié)將選取每類算表中最具代表性者進(jìn)行解析,即“二百恒年表”“加減度表”和“交角表”。
“二百恒年表”在“平行表”中最為重要,而該表的“算法”部分也較為詳盡,基本包含了計(jì)算該表數(shù)值的相應(yīng)算法。表中各項(xiàng)參數(shù)以“首朔”最為關(guān)鍵,其他各項(xiàng)的計(jì)算均以其為基礎(chǔ)。由于相鄰兩年冬至后第一子正之差為一太陽平歲,十二朔實(shí)為一太陰年,所以首朔N+1=首朔N+12×朔實(shí)-太陽平歲(5)當(dāng)N=1時(shí),也就是崇禎元年,首朔為14日16時(shí)26分46秒。,其中一朔實(shí)為29日12時(shí)44分3秒;太陽平歲在平年時(shí)為365日,閏年時(shí)為366日。因?yàn)樘幠晷∮谔柶綒q,故隨著N的增加,必會(huì)出現(xiàn)所求首朔為負(fù),針對這種情況表前“算法”明確指出“加一十三朔實(shí)而總數(shù)乃能減之”([2],頁747),即首朔N+1=首朔N+13×朔實(shí)-太陽平歲。另外,還要注意閏年的情況,不過“二百恒年表”在其“算法”與“用法”部分并未給出判斷某年是否為閏年的方法。實(shí)際上,具體的判斷方法詳載于《日躔表》卷一“歷元后二百恒年表說”。按其所述,判斷某年是否為閏年首先需要知道上一年的太陽平行“根數(shù)”gN-1,即其平冬至所在日次日子正時(shí)的太陽平行經(jīng)度,若gN-1+d×365≥360°(6)其中d為太陽每日平行度分。,則該年為平年,當(dāng)年根數(shù)gN=gN-1+d×365-360°;反之,該年則為閏年,當(dāng)年根數(shù)gN=gN-1+d×366-360°。
顯然,首朔的算法本質(zhì)就是等差數(shù)列,而“二百恒年表”中的太陽引數(shù)、太陰引數(shù)、交周度和太陽經(jīng)度等參數(shù)的算法也都類似,均為等差數(shù)列:IN+1=IN+D。結(jié)合算表,我們可以得到上述四項(xiàng)參數(shù)的首項(xiàng)I(即崇禎元年的相應(yīng)數(shù)值)及公差D(7)各項(xiàng)參數(shù)的公差均有兩種取值,分別與首朔公式的兩個(gè)公差(“太陰年-太陽平歲”與“13朔實(shí)-太陽平歲”)相對應(yīng)?!岸俸隳瓯怼敝懈黜?xiàng)參數(shù)的首項(xiàng)及兩公差如下,太陽引數(shù):9°21′22″,-10°43′52″,-343°37′31′′;太陰引數(shù):37°34′34″,-50°11′59′′,-24°22′59″;交周度:165°50′49″,8°2′47′′,38°43′1′′;太陽經(jīng)度:15°21′21″,-10°43′8′′,18°23′16′′。。另外,“算法”部分還指出閏年“雖首朔多減一日”,但對該四項(xiàng)的影響“不須論也”([2],頁748)。最后的紀(jì)日和宿則分別按照滿六十去之和滿二十八去之的原則進(jìn)行計(jì)算即可。
盡管“二百恒年表”的表值與其“算法”部分并無矛盾,但結(jié)合《崇禎歷書》日躔與月離的部分來看,則會(huì)發(fā)現(xiàn)一定的偏差。例如,用《日躔表》中的數(shù)據(jù)計(jì)算崇禎元年首朔,所得結(jié)果為14日16時(shí)27分21秒,較“二百恒年表”中的表值大了35秒;如果用后期版本修改后的太陽平行歷元根數(shù)(8)關(guān)于《日躔表》的比較,見參考文獻(xiàn)[10]和[11]。,即《西洋新法歷書》所用數(shù)值,則計(jì)算結(jié)果為14日16時(shí)29分11秒,較表值偏差更多,大了2分25秒。盡管如此,“二百恒年表”使用的應(yīng)該還是修改后的太陽平行歷元根數(shù),因?yàn)槿绻凑招薷那暗臄?shù)值計(jì)算會(huì)出現(xiàn)閏年年份與表值不符(9)如前所述,判定閏年的算法與當(dāng)年根數(shù)g和太陽每日平行d有關(guān)。其中,歷元根數(shù)修改前為52′39″50?,修改后為53′35″39?,兩者差異較為明顯;而《日躔表》不同算表所用d的差別極小,對計(jì)算結(jié)果影響可以忽略不計(jì)。。另外,根據(jù)《日躔表》計(jì)算崇禎元年首朔的太陽引數(shù)也與“二百恒年表”不符,使用修改前后的太陽平行歷元根數(shù)分別小11″和大42″;而根據(jù)《月離表》算得的太陰引數(shù)則比“二百恒年表”小了10′33″,所幸這些引數(shù)的偏差對交食推算的影響比較小。
相比于“二百恒年表”,“加減度表”的情況較為復(fù)雜,因?yàn)樵摫淼挠?jì)算要涉及日月運(yùn)動(dòng)的幾何模型。該表所求的太陽均度為實(shí)黃經(jīng)與平黃經(jīng)之差,太陰均度為白道實(shí)經(jīng)度與平經(jīng)度之差,分別以日月引數(shù)查表得到日月均度,加減于平行便可得到日月實(shí)經(jīng)度。該表“算法”部分指出:“欲算表,先求自行為引數(shù),則太陽以本圈半徑及兩心之差,夫本圈心與地中心。太陰以兩輪小輪及次輪。及本輪之半徑,皆依三角形可得。”顯然,這里只是對算法的簡單描述,而詳細(xì)的算法則需要“查本《歷指》,乃得其詳法而算之”([2],頁762)。
圖2 《交食歷指》中的太陽運(yùn)動(dòng)模型
圖3 《交食歷指》中的月亮運(yùn)動(dòng)模型
如前所述,“交角表”與日月的運(yùn)動(dòng)無關(guān),其算法本質(zhì)是一個(gè)球面幾何問題。不過,該表存在一些極易引起誤解的問題,下文將對其展開討論。首先,該表雖然名為“天頂黃道兩圈交角表”,顧名思義其所求應(yīng)為經(jīng)過天頂和太陽的大圓與黃道的交角,但表中實(shí)際數(shù)據(jù)卻是此交角的余角。該表“用法”部分明確指出“查本表,橫直兩數(shù)所值之?dāng)?shù),即得所求交角余角”([2],頁894),“算法”部分給出的算法也是先求交角,再以90°減之得其余角。然而,“交角表”求得的角度本來是用于查“時(shí)氣差表”的,但查“時(shí)氣差表”使用的參數(shù)卻并非交角余角,實(shí)際上是交角。由此可見,“交角表”先求交角再求其余角的做法不僅多余,而且還影響了其他算表的使用。
圖4 天頂黃道兩圈交角示意圖
總的來看,盡管存在一些細(xì)節(jié)上的偏差,上述三表中的數(shù)據(jù)大體仍與各表“算法”部分相符。不僅如此,三表算法皆有理可依、有據(jù)可憑,符合日月的運(yùn)動(dòng)模型或球面幾何學(xué)。雖然也有與《崇禎歷書》其他部分(如《日躔表》)不一致的情況,但基本都不太影響交食的推算結(jié)果(或者影響甚微)。
在《交食表》中,“視半徑表”的算法情況最為特殊。該表所求參數(shù)共五項(xiàng):太陽視半徑、太陰視半徑、月距地?cái)?shù)、地影半徑及地影差數(shù),這些參數(shù)在計(jì)算交食的過程中都非常重要,直接關(guān)系到食分以及初虧、復(fù)圓的推算。但是,《崇禎歷書》在該表“算法”部分只簡單交代了日月視半徑的算法,而該算法是否合理卻未曾論及。至于其他參數(shù),“算法”部分幾乎只字未提,筆者不得不通過查閱《交食歷指》相關(guān)章節(jié),才得以厘清這些參數(shù)的計(jì)算方法。由于太陽和太陰視半徑的算法基本相同,而地影半徑、月距地?cái)?shù)以及地影差數(shù)的算法又相互關(guān)聯(lián),因此下文將分別對其進(jìn)行討論。
圖5 《崇禎歷書》日月視半徑推算值與表值的比較
圖6 日月視半徑求解示意圖
雖然“視半徑表”的算法部分沒有介紹地影半徑、月距地?cái)?shù)與地影差數(shù)的計(jì)算方法,但在《交食歷指》卷三的“地景視差”中介紹了這些參數(shù)的算法。實(shí)際上,傳教士在“視半徑表”中采用了一種類似于控制變量法的方式來編算“地影半徑”和“地影差數(shù)”。表中所列“地影半徑”是太陽固定在最高時(shí),隨著月亮位置的變化而得到的數(shù)據(jù);“地影差數(shù)”則是月亮的位置固定時(shí),太陽在不同位置與其在最高位置時(shí)的地影半徑之差。為方便敘述,下文以“地影半徑m”表示“視半徑表”中的“地影半徑”表值,以“地影半徑s”表示月亮固定而太陽位置不固定時(shí)的地影半徑。
圖7 《交食歷指》中 地影差數(shù)示意圖
圖8 修正前后的地影半徑m計(jì)算值與表值的比較
雖然“視半徑表”對地影半徑m進(jìn)行的修正看似與幾何模型不符,但傳教士這樣做也并非沒有依據(jù)。事實(shí)上,《崇禎歷書》中的“地影半徑”表值與隆格蒙塔努斯(Christen S?rensen Longomontanus,1562—1647)的《丹麥天文學(xué)》(AstronomiaDanica,1622)完全相同,而兩者的算法其實(shí)也一致([13], p295)。隆格蒙塔努斯在書中對為何要修正地影半徑進(jìn)行了解釋,如圖9a,B為太陽,A為地球,H和L分別是在朔望時(shí)的月亮位置,DF、CE是由于蒙氣等原因造成的日光大于其本體之光的部分,很明顯日光E、F在L所在截面形成的地影要小于C、D所形成者,故而地影半徑的觀測值會(huì)偏小([13], pp293—294)。其實(shí),在《崇禎歷書》中也可以找到類似的內(nèi)容,《交食歷指》卷六“清蒙徑差”篇曾對此專門進(jìn)行討論(圖9b)([2],頁311)。由此可見,傳教士對地影半徑m的修正是對歐洲新近研究成果的吸收,是完全合理的。
圖9 地影半徑觀測值偏小示意圖(a取自《丹麥天文學(xué)》,b取自《崇禎歷書·交食歷指》)
總而言之,“視半徑表”是《交食表》中非常重要的一個(gè)算表,其算法基本也都可以在《崇禎歷書》中找到。不過,傳教士對這些算法的合理性未多作交代,本文對比分析后發(fā)現(xiàn)它們不僅是合理的,而且都可以找到對應(yīng)的歐洲來源。
本文對《交食表》進(jìn)行了系統(tǒng)考察,按計(jì)算原理將其中算表分成三類,并選取每一類中的典型代表對其算法進(jìn)行了分析。對各種算表的深入研究表明,傳教士給出的算法均有其合理性。盡管有些參數(shù)的“算法”介紹看似缺乏理論依據(jù),如“視半徑表”中的日月視半徑,但通過查閱第谷及隆格蒙塔努斯的著作等相關(guān)材料皆可驗(yàn)證其合理性。就《交食表》本身而言,盡管存在一些細(xì)微誤差(如太陰視半徑),但算法與算表數(shù)值之間基本可以互相符合。如果結(jié)合《崇禎歷書》其他部分來看,雖然會(huì)出現(xiàn)前后理論不一致的情況,如前后參數(shù)存在偏差、模型不同等,但它們對于交食的推算影響都很小。
雖然整體來看《交食表》并無太大問題,但其中還是埋藏了一個(gè)可能影響交食推算結(jié)果的隱患。在“視半徑表”中,傳教士沿用西方天文學(xué)的傳統(tǒng),太陽引數(shù)表示的是太陽平遠(yuǎn)點(diǎn)角。事實(shí)上,第谷及隆格蒙塔努斯著作中使用的太陽引數(shù)一直都是平遠(yuǎn)點(diǎn)角,且《崇禎歷書》其他天體(即月、五星)的引數(shù)也都是平遠(yuǎn)點(diǎn)角。但在《日躔表》中,太陽引數(shù)表示的其實(shí)是太陽平近點(diǎn)角?;蛟S傳教士在是為了兼顧中國傳統(tǒng)歷法以冬至為起點(diǎn)的習(xí)慣,才把太陽引數(shù)設(shè)定為平近點(diǎn)角(16)由于當(dāng)時(shí)太陽近地點(diǎn)剛好在冬至點(diǎn)附近,因此將太陽引數(shù)設(shè)定為平近點(diǎn)角可以表面看起來符合以冬至為起算點(diǎn)的傳統(tǒng)。。值得注意的是,《交食表》其他算表中的太陽引數(shù)也是平近點(diǎn)角,也就是說,傳教士唯獨(dú)在“視半徑表”中忘記了他們對太陽引數(shù)的不同設(shè)定,而其原因目前尚不可知。根據(jù)計(jì)算太陽視半徑以及地影差數(shù)的幾何模型,只有用太陽平遠(yuǎn)點(diǎn)角去查“視半徑表”才符合計(jì)算原理,而非平近點(diǎn)角。可見,《崇禎歷書》此處確實(shí)存在錯(cuò)誤,盡管全書對此絲毫沒有解釋。
那么,歷局后來有沒有發(fā)現(xiàn)這個(gè)錯(cuò)誤呢?事實(shí)上應(yīng)該是發(fā)現(xiàn)了的,這一點(diǎn)可以在張寀臣編撰的《交食經(jīng)》中窺見端倪[14]。張寀臣是歷局成員,曾參與《崇禎歷書》的編纂工作,后授職五官司辰,因此《交食經(jīng)》中的內(nèi)容可以在一定程度上反映歷局的情況?!督皇辰?jīng)》雖然也寫明以太陽引數(shù)入“視半徑表”查太陽視半徑,但其所給算例中的太陽視半徑值實(shí)際上卻是將太陽引數(shù)加減六宮轉(zhuǎn)換為平遠(yuǎn)點(diǎn)角后入表才能查得的數(shù)據(jù)(17)《交食經(jīng)》的算例中太陽引數(shù)為七宮四度五分二秒,只有將其減去六宮后入“視半徑表”才能得到書中所給的太陽視半徑值一十五分三秒。。如此看來,歷局當(dāng)時(shí)很可能已經(jīng)知道了“視半徑表”太陽引數(shù)的錯(cuò)誤。不僅如此,清初康熙年間欽天監(jiān)編撰的《算七政交食凌犯法》在“推日食法”中也指出,以太陽引數(shù)查“視半徑表”時(shí)需先加六宮[15],可見此時(shí)欽天監(jiān)非常清楚這項(xiàng)錯(cuò)誤應(yīng)當(dāng)糾正。此外,梅文鼎在《交食蒙求》中也提到了這項(xiàng)修正,并明確指出這樣做是由于“視半徑表”太陽引數(shù)起于最高,“而加減表太陽引數(shù)起最卑”([16],頁4—5、22)。顯然,到了康熙后期無論欽天監(jiān)還是民間天文學(xué)者,都已經(jīng)完全知悉了這一問題,且他們都采用了相同的辦法對其進(jìn)行糾正。不過,直到《歷象考成》對“視半徑表”進(jìn)行調(diào)整,將其改成直接用太陽平近點(diǎn)角去查“太陽視半徑”,這一錯(cuò)誤才從根本上得以消除。
另外,如本文2.3節(jié)所述,查“時(shí)氣差表”所用參數(shù)應(yīng)為“天頂黃道兩圈交角”,而“交角表”所求者卻為交角之余角,這一矛盾情況后來其實(shí)也被發(fā)現(xiàn)并糾正。《算七政交食凌犯法》采用的方法是,將用“交角表”算得的結(jié)果入“時(shí)氣差表”查到的時(shí)差與氣差互換數(shù)據(jù),從而得到正確的結(jié)果[15](18)按“時(shí)氣差表”算法,由交角之余角入表查得的時(shí)差恰好是交角入表查得的氣差,反之亦然。。而梅文鼎在《交食蒙求》中則直接用90°減去“交角表”得到的數(shù)值,即真正的交角,然后再用其入“時(shí)氣差表”([16],頁6)。與“太陽引數(shù)”情況類似,直至《歷象考成》將“交角表”所求數(shù)據(jù)改為交角,而非其余角,這一問題才從根本上得以解決。
雖然作為推算交食基礎(chǔ)的《交食表》出現(xiàn)上述問題可能會(huì)影響到最終的推算結(jié)果,但考慮到當(dāng)時(shí)改歷工作的難度,而交食理論難度尤其大,加之崇禎年間時(shí)局動(dòng)蕩,《崇禎歷書》編纂比較倉促,且改歷初期歷局官生尚未完全掌握算法,計(jì)算也不熟練,因此出現(xiàn)一些錯(cuò)誤和矛盾也并非不可理解[11]。盡管如此,傳教士最終提交的改歷成果在實(shí)用層面基本還是“合格”的,而且為了實(shí)現(xiàn)徐光啟“一義一法,必深言所以然之故”的目標(biāo)([2],頁1559),他們盡可能為所有交食算表都撰寫了“算法”介紹,即便這項(xiàng)工作有可能超出了他們的能力范圍。