?

《借根方比例》中開方算法之來源新探

2024-01-19 09:19賈洪巖紀志剛
中國科技史雜志 2023年4期
關鍵詞:總綱開方乘方

賈洪巖 紀志剛

(1.中共上海市閔行區委黨校,上海201199; 2.上海交通大學科學史與科學文化研究院,上海200240)

康熙年間,《借根方算法》(1700,以下簡稱“《算法》”)首次通過西方代數學傳入中國,作者是比利時傳教士安多(Antoine Thomas,1644—1709)[1],書中介紹了西方的開方算法①本文將解未知數的計算方法,如(xn=a)、(axn±bxm=c),統稱為開方算法。 稱xn=a 的解法為高次冪開方算法,其中解2 次冪的方法為開平方法,解3 次冪的方法為開立方法,解其余次冪的方法為n 次冪開方算法(n≥4)。稱axn±bxm=c 的解法為高次冪方程解法,其中解2 次冪的方法為二次冪方程解法(或帶縱平方法),解3 次冪的方法為三次冪方程解法(或帶縱立方法),解其余次冪的方法為n 次冪方程解法(4≤n≤6)。。 1712 年,康熙開蒙養齋,梅瑴成(1681—1763)、何國宗(? —1767)等人應召入館并編撰《數理精蘊》,《數理精蘊》下編卷31—36《借根方比例》(以下簡稱“《比例》”)即以《算法》為底本改編而成。

《比例》卷32、33 分別介紹了高次冪開方算法(xn=a)和高次冪方程解法(axn±bxm=c),在清初算家看來“借根方比例法中,開各乘方為最要”([2],下編卷32 頁2)。 也許因為“宋元時期的增乘開方法失傳之后,這是第一次給出高次方程的數值解法”[3],所以《比例》卷33 中的高次冪方程解法也一直備受當代學者的關注。 通過對卷33 中三次冪方程解法的分析,先前研究一般認為卷33 中的高次冪方程解法來源是中、西雙方二者之一①李儼、韓琦認為此法即西方的“牛頓法”,魏保華、潘亦寧也支持西方來源的觀點。 錢寶琮、李迪雖然承認三次冪方程解法與“牛頓法”完全相同,但《數理精蘊》是否受到影響需進一步研究。 李兆華則認為三次冪方程解法“是由中國古代的開帶縱立方法,即《數理精蘊》卷24 的方法,演變來的”。 參見參考文獻[3—10]。。

但是,關于《比例》卷32 中高次冪開方算法(xn=a)的來源②魏雪剛指出《比例》卷32 中的高次冪開方算法與《少廣拾遺》的開方算法一致,指出了兩書之關聯,但稱兩書中的開方算法一致似有不妥(參見參考文獻[11])。 實際上《比例》只是吸收了《少廣拾遺》的部分內容,并非一致,具體分析見下文。,《比例》卷33 中的4—6 次冪方程解法(axn±bxm=c)的來源,以及卷32、33 中開方算法之關系的研究有待加強,而這些算法實際上有非常緊密的關系,應放在一起討論,方可探明原委。 因此,《比例》中的高次冪開方算法與高次冪方程解法有怎樣的關系? 不同次冪的解法有何異同? 它們又是從何而來? 本文基于“古證復原”原則,對比分析了與《算法》《比例》密切相關的幾部算書,為《比例》中的高次冪開方算法、高次冪方程解法之來源給出一種新的可能。

1 相關算書開方算法之異同

1.1 《算法》與《比例》簡要對比

雖然《算法》是《比例》的底本,但兩書中大部分的開方算法并不相同。 總的來說,兩書中開方算法的異同關系如圖1 所示。

圖1 《算法》《比例》部分開方算法對比

《算法》介紹了4—9 次冪的開方算法(xn=a),以及2、3、4、6 次冪的方程解法(axn±bxm=c)。 書中都是盡可能使用“換元法”進行計算,比如,將x4=a 視為X2=a(X=x2);將x6=ax3+b 視為X2=aX+b(X=x3)。 只有在無法使用此法時,安多才給出特殊的計算方法,即5、7 次冪開方算法(即x5=a、x7=a,以下簡稱“查表法”)和三次冪方程解法(即ax3±bx2=c),它們與中算傳統不同,是純粹的數值運算,安多也沒有對這些運算過程作任何解釋說明。

《比例》卷32 介紹了高次冪開方算法(xn=a)(3—10 次冪),清初算家為不同次冪給出了三種開方算法,與本卷開始處介紹的順序一致,分別為“未知法”③由于此算法在處理3—10 次冪時具備機械化、程序化的特征,擁有相同的算法原理,且此算法的來源未知,故而將這種計算方法稱作“未知法”,此名稱為筆者命名,并非出自《比例》原文。、“代開法”“表開法”。 基于開篇以及之后案例中的介紹邏輯,可知三種計算方法雖然不同,但應該是并列關系。 在“未知法”之后,“代開法”之前,還有“蓋幾乘方之本法,有……”字樣,之后的內容是對“未知法”中部分步驟的猜測性解讀(分析見下文)。

在這三種開方算法中,“代開法”和《算法》的“換元法”相同,“表開法”改編自《算法》的“查表法”①“表開法”與“查表法”的算法流程基本相同。 由于清初算家清楚“查表法”的算法原理,所以將《算法》中僅有的5、7 次冪“查表法”作了改進和拓展,使其能夠適用于3—10 次冪,并為它們配備了“新數表”。,二者的來源比較清晰,因此本文不對它們做具體分析。 本文主要討論的一個問題,即卷32 中“未知法”的來源和構造過程②關于清初算家構造“未知法”與“表開法”的先后問題,尚未有證據明確指出二者的先后順序,筆者認為二者應該是同時構造的。 但如果一定要區分構造它們的先后順序,筆者以為,應該是先有“未知法”,后有“表開法”。 原因在于,“表開法”中所需要的數值,“未知法”里都有,且明確了數值的計算方法。 但是,“未知法”所需要的整個運算流程,“表開法”是沒有的。(下文關于卷32 中高次冪開方算法的討論均指“未知法”,特此說明)。

《比例》卷33 介紹了高次冪方程解法(axn±bxm=c)(3—6 次冪)。 其中,三次冪方程解法倍受關注,正是基于對它的分析,前人學者才得出了《比例》中高次冪方程解法的來源是中、西雙方二者之一的結論。 但是,《比例》卷33 中不只有三次冪方程解法,還有4—6 次冪方程解法,且4—6 次冪方程解法的來源未知,同時,卷33 中的3—6 次冪方程解法還呈現出了統一的、機械化、程序化特征。 因此,本文的另一個主題是將《比例》卷33 中的3—6 次冪方程解法視為一個整體,來探討其來源和構造過程,而不只是針對其中的三次冪方程解法。

綜上,首先,目前已知《比例》卷32 中的“代開法”“表開法”源自《算法》,但“未知法”的來源有待探究。 其次,《比例》卷33 中的三次冪方程解法源自《算法》,但4—6 次冪來源未知。 因此,為了更好地探究卷32 中的“未知法”以及卷33 中的高次冪方程解法的來源,有必要對與《比例》《算法》有緊密關系的其他算書作對比分析,為溯源工作打好基礎。

首先,安多在編撰《算法》時引用了《算法纂要總綱》(以下簡稱“《總綱》”),此書同樣為安多所作,約成書于1689—1695 年間[12],因而不能忽略此書。 書中介紹了平方、立方、帶縱平方、帶縱立方四種開方算法。 其次,《比例》作為《數理精蘊》的一部分,《數理精蘊》卷11、23、24 中的開方算法也應得到關注。 其中,下編卷11 介紹了平方、帶縱平方算法,卷23、24 介紹了立方、帶縱立方算法。 再次,在《數理精蘊》的編撰者中,梅瑴成自幼受梅文鼎的影響,何國宗及分校官魏廷珍、王蘭生也都曾和梅文鼎學習過數學和天文[3],加上《比例》卷32 中有部分內容與《少廣拾遺》中的計算方法十分相似,因此,梅文鼎的《少廣拾遺》也值得我們留意。 書中介紹了“諸乘方大法”,可以處理3—13 次冪的開方算法(xn=a),但此法的算法流程和算法原理與“未知法”并不相同。

1.2 相關算書之對比

由于《總綱》《數理精蘊》(卷11、卷23、卷24)均不涉及3 次冪以上的開方算法,因此,在此處先探討《比例》卷32 中“未知法”的開平方、開立方法,以及《比例》卷33 中二次冪、三次冪方程解法與《總綱》《數理精蘊》之關系。

首先,關于《比例》卷32“未知法”的開平方、開立方算法(關系參見圖2)。 對比《總綱》《比例》《數理精蘊》(卷11、卷23)可知:其一,《數理精蘊》卷11、23 中的開平方、開立方算法屬于清初算家所謂的“常法”,算理與《九章算術》無異。 其二,《比例》“未知法”中的開平方、開立方算法都異于“常法”,與中算傳統開方法迥異。 其三,《總綱》的開平方法與“常法”相同,與《數理精蘊》卷11 的步算過程相同;開立方法則異于“常法”,與《比例》“未知法”的步算過程相同。

圖2 《總綱》與《數理精蘊》《比例》中開平方、開立方算法之關系

其次,關于《比例》卷33 中的二次冪、三次冪方程解法(即開帶縱平方、開帶縱立方)。對比《算法》《總綱》《比例》《數理精蘊》(卷11、卷24)可知,幾本算書中的帶縱平方法(二次冪方程)大都相同,且與《算法統宗》的“歸除平方帶縱歌”類似[13],在此不作贅述。 關于開帶縱立方(三次冪方程)算法(關系參見圖3),《數理精蘊》卷24 屬于清初算家所謂的“常法”,與《比例》大體相同但細節有異。 《算法》與《總綱》的表述形式、運算思路極為相近,安多曾在《算法》中稱“此法與《總綱》內第十二節內帶一縱開立方之法同”([14],頁187),也許正因如此,才有學者認為二者是相同的[8],但如果回歸文本內容仔細對比二者的算法過程可知,它們其實還是略有差別的①在求初商積時,《算法》是以多項式為基礎,將初商帶入x3+ax2,《總綱》則是將初商帶入x2(x+a),二者的區別在于前者為數值運算,后者結合了立體幾何圖形的構造進行運算。 參見參考文獻[15]。。 然而,雖然安多在《算法》中聲稱此法與《總綱》相同,但《比例》卷33 的帶縱立方解法卻沿用了《算法》的計算方法,而非《總綱》之法。 值得反思的是,《算法》和《總綱》的運算過程略有不同,但為何安多稱二者相同②依筆者淺見,安多基于西方數學知識背景看待這兩種算法,二者均為純數值運算,因此認為二者算理相同。? 清初算家又為何使用了《算法》的方法,而沒有使用《總綱》的方法? (分析見下文)

圖3 相關算書中三次冪方程解法之關系

通過對比分析《算法》《總綱》《數理精蘊》和《比例》中的部分開方算法可知:首先,《比例》中的開方算法,除了二次冪方程解法,其余大都異于中算傳統中的“常法”。 其次,《比例》卷32 中“未知法”的開立方法源自《總綱》,《比例》卷33 中的三次冪方程解法源自《算法》(圖4)。 不同之處在于,《算法》《總綱》中的開方算法均屬于純數值運算,傳教士安多并未對算法流程作任何解釋,清初算家則是在《比例》中使用中算術語對相關算法作了解釋說明。 但是,“未知法”的4—10 次冪開方算法、《比例》卷33 的4—6 次冪的方程解法來源仍是未知的,因此,下文將用兩節分別討論它們的來源。

圖4 《比例》卷32、33 中部分開方算法來源

2 《比例》卷32“未知法”對《算法》《少廣拾遺》的借鑒與會通

由于《比例》卷33 中的高次冪方程解法與《比例》卷32 中的“未知法”緊密相關,因而在本小節先探討《比例》卷32 中“未知法”(3—10 次冪)的來源。 此外,雖然已知《比例》卷32 中的“表開法”改編自《算法》的“查表法”,且“查表法”與“未知法”的算法原理不同,但“未知法”卻借鑒了“查表法”中的部分計算方法,因此,在探究“未知法”來源之前,需要對“查表法”作一簡要介紹,為之后的探源工作做好鋪墊。

“查表法”是通過查找“數表”中的兩個數值(即“相近小數”與“次行之數”)來求得初商、次商和三商的,這兩個數值與本文主題即《比例》卷32“未知法”、卷33 高次冪方程解法的由來密切相關。

以5 次冪“查表法”求解為例(x5=13383270465632)([14],頁19),首先,要在“數表”中找到與被開方數13383270465632 前部分相近的“相近小數”,即130691232,通過此數值便可得到被開方數的初商(4)和次商(2)。 然后,再找到“相近小數”相同格內的“次行之數”,即15558480,用它便可得到三商的值。 7 次冪的步算過程也是如此,只是“數表”的數值不同,整個步算流程極為便捷。 實際上,清初算家正是參考了“相近小數”和“次行之數”這兩個數值,才能將源自《總綱》的三次冪開方算法擴展至更高次冪,具體分析見下文。

2.1 “未知法”對“相近小數”之參考

基于上文分析可知,《比例》“未知法”的三次冪開方算法源自《總綱》,異于中算傳統中的“常法”(如《數理精蘊》卷23)。 分析“未知法”與“常法”的區別,有助于進一步理解清初算家構造“未知法”時的思考方式,并探究這種計算方法的由來。

“未知法”和“常法”的算法流程都可以總結為以下10 個步驟:①定位;②定初商;③求初商積;④求次商廉隅之共積;⑤求次商廉法;⑥定次商;⑦求初商、次商共積;⑧求三商廉隅之共積;⑨求三商廉法;⑩定三商。 但是,二者的具體計算過程仍有不同,主要體現在步驟5、7、9 上(步驟5、9 的算法原理相同,因此可視為同一問題)。

清初算家曾在《比例》卷32 開平方法的末尾處直言,“此法止用廉法除余積,得次商,即并初商數自乘,得數復與原積相減,與常法不同”([2],下編卷32 頁4)。 此段文字可以看做是對上述步驟5—8 的“解釋說明”,對應了“未知法”與“常法”的不同之處,比如,“即并初商數自乘”對應“未知法”的步驟7(求初商次商共積),但是,這種異于“常法”的計算方法是怎么來的呢?

《數理精蘊》卷23 展現的“常法”計算思路符合中算傳統“析理以辭,解體用圖”這一特征,它將立方體“遞析開之”,分為“方、廉、隅”幾個立方體,分別計算它們的表面積和體積,以此逐步求次商、三商。 因此,在求初商、次商之共積時便需要使用“方、廉、隅”的相關數值反推求之,相應的,此法所需的計算量也比較大。 反之,《總綱》和《比例》“未知法”的三次冪開方算法在此步驟則節省了大量計算,它們只需“合并初商、次商,自乘、再乘”(初商+次商)3即可。

然而,這種“初商次商共積”的計算方法不只是出現在《總綱》的三次冪開方算法中,它同樣出現在《算法》的“查表法”中。 如上文所述,5 次冪“查表法”是用“相近小數”130691232 求得初商、次商為4、2,而此數值130691232 正是“初商、次商相并再自乘四次”之結果(425),二者互為逆運算,同樣的情況在7 次冪的“查表法”中同樣存在。 由于這種逆向思維并不困難,所以清初算家完全能夠意識到“數表”“中每格所列細數二層……上層為初商、次商積”([2],下編卷32 頁44),即(初商+次商)n。

正所謂孤證不立,如果清初算家僅知道《總綱》中的這種計算方法,而沒有見過“查表法”對“相近小數”的使用,其實很難保證他們能夠將《總綱》中的這種異于“常法”的、僅出現在三次冪開方算法中的計算方法適用于更高次冪。 但是,當這種計算方法同時出現在《總綱》的三次冪開方算法和《算法》的5、7 次冪“查表法”中,就足以說明此算法在“求初商次商共積”時的可行性。 同時,由于此法適用于3、5、7 次冪,這也說明此算法可適用于其他次冪。

因此,《比例》“未知法”中的三次冪開方算法雖然源自《總綱》,但清初算家在構造“未知法”的4—10 次冪開方算法時,則應該是在《總綱》三次冪開方算法的基礎上,參考了《總綱》中異于“常法”的計算方法,以及《算法》對“相近小數”的使用方法。 而清初算家之所以在構造3—10 次冪“未知法”時采用了這種方法,主要可能出于兩方面原因:其一,在保證數值準確的前提下,此法可以簡化大量計算步驟。 其二,此法可以適用于任意次冪,有助于使“未知法”在處理高次冪時不至于特別復雜。

2.2 “未知法”對“第一廉汎積”與“次行之數”之會通

除了上述步驟7,《比例》“未知法”的步驟5、9 也與“常法”不同,這兩個步驟求的是“次商廉法”和“三商廉法”,前者用于計算次商,后者用于計算三商。 由于這兩個步驟的算法原理相通,因而在此先討論步驟5。 以“未知法”三次冪開方算法的步驟5 為例,其計算方法為“初商自乘,3 因之”,所得之數“以除次商積,即定次商”。 此方法同樣可以對應清初算家在平方法末尾處所作的“解釋說明”,即“此法止用廉法除余積,得次商……與常法不同”。 但值得反思的是,這種異于“常法”的計算方法是怎么來的? 實際上,清初算家對這一計算過程應該并不陌生,因為此計算方法在《少廣拾遺》中也曾出現過。

2.2.1 “未知法”“蓋本法”與“諸乘方大法”

為了下文更好地探討“未知法”對《少廣拾遺》中計算方法的借鑒,有必要在此之前先對“未知法”與《少廣拾遺》之關系作一個簡要的說明。

清初算家在介紹完“未知法”之后(自三乘方開始),會緊隨著“蓋幾乘方之本法,有……”的一段話,之后會再介紹一種計算方法(以下稱此計算方法為“蓋本法”)。 筆者以為,“蓋”應表示推測,相當于“大約”“大概”,再考慮到“未知法”來源未知,且異于“常法”,故而認為,“蓋幾乘方之本法,有……”之后的“蓋本法”應該是清初算家對前面“未知法”原本樣貌的推測,因此,“蓋幾乘方之本法,有……”應解讀為“大概此處‘幾乘方’原本的計算方法應該是這樣的……”①對比“蓋本法”與“未知法”可知,“蓋本法”中僅第一步計算過程與“未知法”步驟5、6 一致,其余均與“未知法”有異,且有很大的不同。 首先,二者所求關鍵數值的步驟不同,“蓋本法”是先求“次商”,再求“次商廉隅之共積”,但是,“未知法”則是先求“次商廉隅之共積”,再求“次商”,二者正好相反。 其次,“未知法”和“蓋本法”求“次商廉隅之共積”的方法不同。 “未知法”是用過“原積”-“初商積”的方法求得“次商廉隅之共積”;“蓋本法”則是通過對“廉”“隅”做計算,再求“次商廉隅之共積”。 因此,進一步說,筆者認為“蓋本法”僅是針對“未知法”步驟5、6 的原本樣貌的測性解讀,即主要針對開平方法后“解釋說明”中“此法止用廉法除余積,得次商”的回應,而非“未知法”的全部流程。。

實際上,“蓋本法”與《少廣拾遺》“諸乘方大法”中求“廉隅共積”的計算方法非常相似,二者的區別在于乘以次商的時機不同。 “蓋本法”是先求各廉和,再用各廉和一起乘以次商;“諸乘方大法”則是在計算每一廉的定積時,直接乘以次商。 二者有此區別的原因暫且不表,只有解決了之后的一系列問題,才能言明(原因分析見下文)。 但二者的相似性,以及梅瑴成等人對梅文鼎工作的熟悉,說明清初算家在構造“未知法”時,應該參考了《少廣拾遺》中的“諸乘方大法”。

因此,清初算家應該是基于對“諸乘方大法”的了解,將其中的部分計算方法進行了適當的調整,才構造了“蓋本法”,并在“未知法”之后,“蓋本法”之前,給出“蓋幾乘方之本法,有……”的字樣,表示對“未知法”本來樣貌的推測②關于“蓋本法”的作用及意義:清初算家在開平方法后曾指出“未知法”中的步驟5—8 與“常法”不同,而此計算方法能解決“廉法條例甚繁,難于布算”的實際問題。 因此,一方面,“蓋本法”是對“廉法條例甚繁,難于布算”的實際演示,它能夠展現“未知法”確實在“多乘方,所省實多”;另一方面,則是為了解釋,為什么在“求廉法”和“次商”時,即“未知法”的步驟5、6,可以使用“止用廉法除余積得次商”的這種異于“常法”的計算方式。 筆者以為,第二方面是最重要的。。

然而,我們雖然考證了“未知法”“蓋本法”與“諸乘方大法”之間的關系,但是本小節開篇所說的重要問題仍然有待解答,即這種“止用廉法除余積”的異于“常法”的計算方法是怎么來的? 它和《少廣拾遺》又有怎樣的關系?

2.2.2 《少廣拾遺》中的“第一廉汎積”

《少廣拾遺》的“開諸乘方大法”在求次商(或三商)時,需要用“汎積之和”與“余積”相除,但“汎積之和”的求法比較繁瑣。 繁瑣之處在于,不同次冪有不同數量的“廉”,不同“廉”求“汎積”值的方法又不同,最終需要求得每個“廉”的“汎積”值,再將它們相加,才能得到“汎積之和”。

“廉”的汎積值求法(圖5)所示,其中最關鍵的兩個數值為該“廉”的“定率”及其“應有各數”。 首先,隨著乘方數的增加,“廉”的數量會增加,而不同次冪各“廉”的“定率”也有所不同,其數值源自“廉率立成圖”([16],頁5a),如立方有兩個廉,第一廉的“定率”為3。 其次,各“廉”對應的“應有各數”也不同,如立方第一廉的“初商應有各數”即為“初商平冪”。 這兩個數相乘便可得到立方第一廉的汎積值,即初商2×3,如果再求得立方第二廉的汎積值,將二者相加,便能基于此求得次商。

圖5 各廉“汎積”計算流程

稍加留意便可發現,《比例》三次冪“未知法”的步驟5,即上文所述異于“常法”的計算方法,恰好與《少廣拾遺》中三次冪第一廉汎積的計算方法相同,二者都是“初商自乘,三因之”。 無獨有偶,這兩個數值還都是為了求次商所用,只不過《少廣拾遺》的計算更為繁瑣,在處理更高次冪時,它除了要求第一廉的汎積值,還要求其他所有廉的汎積值。

再看“未知法”與“常法”的另一個不同之處,步驟9。 “未知法”(三次冪)為“初商、次商相并自乘,3 因之”,所得為“三商廉法”,用此數便可求三商。 再看《少廣拾遺》求三商時的計算方法,同樣需要計算“汎積之和”,但與上文求次商時略有不同的是,此時各廉“應有各數”的計算方法要改成帶入“初商、次商相并之數”,即所謂“其廉定率不變,但求汎積時,三商則并初商、次商兩位商數合而用之”([16],頁18a)。 因此,《少廣拾遺》在求三次冪的三商時,第一廉汎積的計算方法應為(初商+次商)2×3,此法與“未知法”的步驟9 完全相同。

可見,“未知法”(三次冪)求次商、三商時所需的“次商廉法”“三商廉法”的計算方法與《少廣拾遺》(三次冪)求次商、三商時所用的部分內容(即第一廉汎積求法)完全相同,對比其他次冪(如4—10 次冪)同樣如此。 因此我們說,“未知法”異于“常法”的“止用廉法除余積”的計算方法,極有可能是參考了《少廣拾遺》的“諸乘方大法”。

但是,如果這種可能性是真實的,就引出了另一個問題,即清初算家在熟悉《少廣拾遺》中“諸乘方大法”的基礎上,為什么在構造《比例》的“未知法”時沒有沿用熟悉的算法,而是使用了現在這種“止用廉法除余積”的計算方法呢? 他們是怎么確定,可以僅通過“諸乘方大法”的第一廉汎積,而非所有廉的汎積值的和,就能求得次商和三商呢? 他們是在什么情況下,意識到這種方法不僅能適用于《總綱》的三次冪開方算法,還能拓展并適用于更高次冪? 實際上,清初算家應該是對比了《算法》“查表法”使用的“數表”中的“次行之數”,才確認了此方法的可行性。

2.2.3 “第一廉汎積”與《算法》的“次行之數”

以《少廣拾遺》解四乘方為例(x5=13383270465632,x=422),求三商時,其第一廉“定率”應為5,“應有各數”為424,因此,第一廉“汎積”的計算方法應為424×5=15558480。 而這一數值,恰巧和《算法》五次冪“查表法”所用“數表”中的“次行之數”相同,即求三商時所用的“三商廉法”。 同樣的情況也發生在七次冪上,《少廣拾遺》七次冪求三商時第一廉汎積的數值同樣可以和《算法》七次冪“數表”相應表格的“次行數字”相對應。

因此,除了《總綱》中的三次冪開方算法在求次商、三商時所用的“次商廉法”“三商廉法”可以對應于《少廣拾遺》中的第一廉汎積求法,《算法》中5、7 次冪“查表法”在求三商時所用的“次行之數”也能夠對應于《少廣拾遺》。 應該正是這種一致性,讓清初算家確認并意識到,雖然這種計算方法僅等同于“諸乘方大法”的第一廉汎積求法,且與“常法”不同,但它仍然能夠保證求次商廉法、三商廉法以及次商、三商時的準確性,以及對不同次冪的廣泛適用性。 基于此,清初算家才能夠將《總綱》中僅有的三次冪開方算法進行拓展,只需在不同次冪的步驟5、9 中使用這種異于“常法”的計算方法(表1),即可讓“未知法”適用于更高次冪。

表1 《比例》“未知法”不同次冪次商、三商廉法求法

至此,我們也許可以對上述關于“蓋本法”與“諸乘方大法”為何不同這一問題,嘗試作出回應。

考慮到《數理精蘊》是一部西方數學著作的編譯作品[17],所以“未知法”很可能是作為西方的開方算法來介紹的。 實際上,清初算家在構造出了“未知法”之后,就已經認識到了“未知法”與“常法”有異,出于某種原因,他們需要對這種異于“常法”的計算步驟作解釋說明,因此,就需要借助某種熟知的開方算法,此時,梅文鼎的《少廣拾遺》就派上了用場。 通過參考《少廣拾遺》,清初算家對“諸乘方大法”中的部分計算流程進行了改編,構造了“未知法”之后的“蓋本法”,以此試圖對“未知法”中異于“常法”的部分算法進行解釋,使其合理化;并在介紹“蓋本法”之前,給出“蓋幾乘方之本法,有……”的字樣,表示這是對“未知法”原貌的推測。 同時,此行為還能展現這種西方開方算法的“中源”特征,這與當時“西學中源”說的社會背景也是吻合的。

反觀本小節之主題,雖然《比例》卷32 中的三次冪開方算法源自《總綱》,但是,卷32 中的4—10 次冪開方算法,以及整個“未知法”(3—10 次冪)則應視為中、西算法相互會通融合的產物。 首先,它展現了中算傳統特征的術語和表達形式。 其次,清初算家基于對《算法》5、7 次冪“查表法”所用的“相近小數”和“次行之數”的理解,以及對梅文鼎《少廣拾遺》“開諸乘方大法”的熟悉,才能以《總綱》中異于“常法”的三次冪開方算法為基礎,將其拓展至3—10 次冪。 此外,“未知法”還展現了中算傳統中的程序化、機械化特征(圖6)。 經檢驗,它不僅可以處理《算法》所未及的更大數值,還可以適用于任意次冪,“但其數繁衍而無所用,茲故不載焉”([2],下編卷32 頁3)。

圖6 高次冪開方算法流程圖

3 《比例》卷33 高次冪方程解法的“重構”與“創新”

在討論《比例》卷33 中統一的3—6 次冪方程解法來源之前,首先要指出的是,卷33 中的三次冪方程解法的步算過程與《算法》是一樣的。 如果用現代數學語言解讀,兩書中的解法都和“牛頓法”一樣,也正因如此,才有《比例》三次冪方程解法源自西方之論斷。

但是,兩本算書中的三次冪方程解法還是有差異的。 首先,二者的表述方式不同,《算法》的步算過程是純數值運算,安多僅介紹了各數值的使用方法,但并未對運算過程做任何解釋,其中更沒有任何中算傳統術語。 《比例》則更像是對純數值運算的解讀,清初算家使用了大量中算傳統術語,如“立方廉”“平方廉”“次商廉法”……來解釋運算過程。 其次,《算法》中的高次冪方程(axn±bxm=c)均為多項式相乘之結果,它們屬于純數值運算,與幾何圖形無任何關系,但《比例》的編撰者卻將它們視為不同的幾何圖形,并稱得到這些幾何體的過程為“變正方體而為長方體,或為磬折長方體、扁方體”([2],下編卷33 頁12),體現了中算傳統用圖解方式說明數學問題的特點[18]。 此外,還不應忘記《算法》中3 次冪與4、6 次冪的方程解法并不相同,而《比例》中的3—6 冪次方程解法卻帶有中算傳統的程序化、機械化特征。 因此,在探討《比例》卷33 中高次冪方程解法的來源時,不應忽視其中算淵源。

如上文所述,在《比例》之前,《數理精蘊》卷24 就已經介紹了中算傳統處理三次冪方程的“常法”,有學者認為《比例》卷33 中的三次冪方程解法即來源于此[3],但二者實際上并不完全相同(表2),且清初算家在《比例》中也曾直言稱“借根方比例開帶縱立方,與常法不同”([2],下編卷33 頁10)。

表2 《數理精蘊》卷24、《比例》三次冪方程解法步算流程對比

雖然兩種算法的運算流程大體相同,都可分為“求初商、求初商積、求次商積、求次商廉法、求次商”5 個步驟,但二者對步驟2、4 的處理方式還是略有不同,這體現了“常法”與《比例》卷33 對同一運算法則的不同理解方式。

“常法”使用的是符合中算傳統開帶縱立方的圖解方式,即將一個長方體遞析開之,將其分為一個小長方體,以及包裹在它之外的“方、廉、隅”,求“次商”時,需分別計算“方、廉、隅”的表面積、體積,并以此求得次商(圖7)。 然而,即便清初算家有了熟悉的“常法”,但他們并沒有在《比例》卷33 中沿用此法,而是轉而采用了《算法》中的三次冪方程解法。 究其原因,“常法”所處理的帶縱立方問題總表現為某幾類“常規”幾何體,它們或為“長方體”或為“扁方體”,但《算法》中的方程是多項式相乘的結果,與幾何圖形并無關系。 因此,在清初算家看來,這些一元多次方程“或為長方體扁方體形,或非長方體扁方體形,皆不可知”,既然其樣貌不可知,自然就“不可以帶縱之常法求也”([2],下編卷33 頁10)。

圖7 “常法”圖解與“新”圖解

因此,清初算家為這些“不常規”幾何圖形“重構”了新的圖解方式,以x3+4x2為例,他們借助中算傳統“析理以辭,解體用圖”的方法,把x3+4x2所代表的長方體分成了兩個部分,稱其為“正方體之外多四平方,故成長方體”([2],下編卷33 頁17)(圖7)。 求次商時,只需分別計算“正方體”(x3)和“四平方”(4x2)兩者的“次商廉法”并相加(即步驟4),即可求得“次商”值,而“次商廉法”的計算方法則與《比例》“未知法”沿用《少廣拾遺》第一廉“汎積”的計算方法相同(表1)。

至此,也可以對上文中提及的問題,即“既然《算法》的作者聲稱三次冪方程解法與《總綱》同,那么清初算家為何選擇了《算法》,而非《總綱》”嘗試作出回應。

依筆者淺見,清初算家選擇沿用《算法》計算方法的原因在于,在求初商積時(步驟2):一,《總綱》將初商帶入x2(x+a)的行為與中算傳統的思路相同,此法在《數理精蘊》卷24 中已有體現。 二,《算法》將初商帶入x3+ax2的方法具備將三次冪方程解法拓展至更高次冪方程解法的可能性。 三,《算法》將初商帶入x3+ax2以求初商積的方法(步驟2),可以和之后步驟4 中將x3+ax2拆分為兩個幾何圖形的圖解方式保持一致性,而《總綱》卻不能。

此外,清初算家還將這種新的“圖解方式”應用于任意次冪,在處理高次冪方程時,即便它們的外形“皆不可知”,但只需根據不同次冪改變相應的“次商廉法”計算方法即可。如x5+2x3=7990272,同樣是將其拆分為兩個部分,即“四乘方”(x5)和“兩個立方體”(2x3)([2],下編卷33 頁37),然后分別計算二者的“次商廉法”即可(表1)。 與《比例》卷32 中的“未知法”一樣,卷33 中的4—6 次冪方程解法同樣展現了中算傳統的程序化、機械化特征。

綜上,《比例》卷33 中的三次冪方程解法一直是前人討論的焦點,雖然它和西方的“牛頓法”類似,但它只是3—6 次冪方程解法的其中之一,如此,《比例》卷33 中的高次冪方程解法(3—6 次冪)應該被視為一個整體進行討論。 通過上述對比、復原、分析,可知清初算家沿用了《算法》中的三次冪方程解法,并基于中算傳統的圖解方式對此算法作了“重構”與“創新”,又參考了《比例》卷32“未知法”中源自《少廣拾遺》第一廉汎積的“次商廉法”的求解方式,才構造出了這套新的帶有程序化、機械化特征的高次冪方程解法。

4 余論:對清初算家會通行為的反思

《比例》卷32 的高次冪開方算法(“未知法”)(xn=a)、卷33 的高次冪方程解法(axn±bxm=c)的來源如圖8。 雖然卷32 中的三次冪開方算法源自《總綱》,卷33 中的三次冪方程解法源自《算法》,但是,將這兩個算法改編成一套程序化、機械化的算法流程,并將其拓展、適用于更高次冪的工作應是清初算家“會通中西”的一個創造性成果,并非單獨源自中、西二者之一。

圖8 《比例》卷32、33 開方法來源分析

值得反思的是,《算法》中的高次冪開方算法和高次冪方程解法原本并非全書的重點內容①其一,安多盡量使用開平方、開立方的“換元法”來解決這些開方問題。 其二,在“借未知數—列式—化簡—開方”這一運算流程中,簡單問題經過“化簡”步驟后便能直接得到最終結果,只有復雜問題(即化簡后等式為xn=a 或axn±bxm=c)才會涉及這些算法。 其三,在《算法》的刪減本《借根方算法節要》中,安多僅刪減了對高次冪開方算法的介紹。 其四,傅圣澤在介紹《阿爾熱巴拉新法》時,介紹了西方代數學的符號表示法、等式的概念,唯獨沒有介紹開方算法。,但為何清初算家要在《比例》中稱贊“借根方比例法中,開各乘方為最要”,并做這般創造性的改進工作呢? 究其原因:

其一,開方算法一直以來都是中國傳統數學最為擅長的運算法則之一。 從《九章算術》首次給出開平方法與開立方法,到《孫子算經》對開方算法“超位退位定位”的改進……到南宋的賈憲給出了“增乘開方法”,以及劉益、秦九韶等人對“增乘開方法”的改進,可見開方算法在中國本就有深厚的土壤基礎。

其二,康熙對開方算法有較高的關注度。 在面對傅圣澤(Jean-Fran?ois Foucquet,1665—1741)的“新代數學”(符號代數)時,康熙非但沒有理解這些數學知識的重要意義,在評價傅圣澤的“算法平平”時,他還不忘轉而稱贊《算法》中的開方算法([6],頁25)。當得知西洋人戴進賢(Ignatius Kgler,1680—1746)帶來了“簡單講述小計算之書幾小本”[19]時,他也非常關注“此等人尚有新好法,或有簡便計算數表,開方方法,即繕寫帶給朕”[19]。 由此可見康熙對開方算法的重視。

其三,與“西學中源”說相吻合。 自康熙在《御制三角形推算法論》中明確提出“西學中源”說后[20],歷算學家通常會以此學說為基礎,將西學納入中算傳統。 《數理精蘊》在開篇就描繪了中國古代典籍西傳之圖景([2],上編卷1 頁10),清初算家更是在書中稱西方的比例算法乃中算傳統之質言([2],下編卷3 頁3)……加之康熙曾稱“阿爾朱巴爾,傳自東方之謂也”[21](阿爾朱巴爾,algebra 音譯,即指《算法》),這些宮廷數學家自然要將此觀點付諸實踐,在卷32“未知法”后接“蓋本法”的行為就是一種體現。

相較于西方算法,《比例》卷32 中的高次冪開方算法(“未知法”)和卷33 中的高次冪方程解法不僅可以使用中算傳統術語進行表達,它們還帶有中算傳統的程序化、機械化特征,展現了“中源”的影子,尤其是清初算家對“未知法”本貌的推測,更是建立了西方算法與梅文鼎《少廣拾遺》之間的聯系。 此外,因為清初算家的創造性工作,它們還可以處理更大數值和更高次冪。 相較于中算傳統,由于借鑒了《算法》“數表”中的數值,《比例》卷32 的高次冪開方算法(“未知法”)和卷33 的高次冪方程解法可以在確保計算準確性的前提下,省略大量計算步驟,使算法流程甚是簡捷。 總之,清初算家的會通行為無疑對中算傳統的發展以及中西文化的交流都具有積極意義。

猜你喜歡
總綱開方乘方
金華昆曲《荊釵記》總綱探析——兼論《荊釵記》的版本與演出問題
冪的乘方
數字監管 既能“看病”也能“開方”
“有理數的乘方”檢測題
學習開方『四注意』
深入認識二次根式
認識乘方
為公立醫院“虛胖”把脈開方
專家開方:傳統產業創新互動做強做大
《弟子規》總綱的哲學思考
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合