王鑫義,郭世榮
(內蒙古師范大學 科學技術史研究院,內蒙古 呼和浩特010022)
徐有壬(1800—1860),字君青(鈞卿),浙江烏程(今湖州市)人,晚清八大算學家之一[1]。他所著的《測圓密率》三卷(1840年前后)是在沒有受西方近代數學影響之下獨立研究的結果,共有56“術”,每“術”即為一個公式?!陡顖A八線綴術》(以下稱“《綴術》”)則是他的代表作,原作三卷,后由吳嘉善(1820—1885)述草(1862)和左潛(?—1874)補草(1873)為四卷,該書包括了《測圓密率》中全部的級數展開式,并創(chuàng)造了推求級數展開式的“綴術”。
關于徐有壬的《測圓密率》和《割圓八線綴術》,李儼[2]、錢寶琮[3]、李迪[4]、王海林[5]、孫力[6]、羅見今[7-8]和張升[9]等對此有過詳盡分析,各有側重,但對“綴術”的中算來源只有一些零星討論,忽略了“綴術”作為運算方法這層意義,且對“因式立術,由術立法”的實質闡述不多。鑒于此,本文以徐氏《測圓密率》和《割圓八線綴術》為研究對象,對相關問題做進一步的考察和分析。
清代數學家真正全面掌握天元術是從李銳(1769—1817)完全讀懂《測圓海鏡》開始的。此后,清代中后期的數學家對天元術和借根方都很熟悉,對二者關系的認識也逐漸深入[10]。
1822年,徐有壬首次讀到《四元玉鑒》鈔本后,“積思三晝夜,寫出細草”[11],他未刻的《四元算式》是對《四元玉鑒》的細草,也是清代研究《四元玉鑒》最早的著作。黎應南在《演元九式》序中稱“徐有壬甄而明之,使讀者有下手處”[12],認為徐氏通曉并幫助讀者理解四元術。徐有壬對《四元玉鑒》的深入研究,為以后羅士琳(1789—1853)的細草和其他人的注釋起了重要作用[5]12,從徐氏給羅士琳《演元九式》(1827年)的序中也可看出,他是完全理解四元術的數學含義及相消方法的[13]。此外,徐氏曾將《四元玉鑒》3冊寄贈朝鮮學者金正喜[14];沈欽裴(《四元玉鑒細草》三卷,1829年)、羅士琳(《四元玉鑒細草》三卷,1835年)對四元術的理解也都受到了徐氏的影響??梢哉f,徐有壬為四元術于清代被重新理解的關鍵人物[13]45。
徐有壬在研究《四元玉鑒》的基礎上,對垛積招差之法最有心得,而其《造各表簡法》(又稱為《垛積招差》)早在1856年已經寫成[15]。他在《造各表簡法》的序中寫道:“余讀《四元玉鑒》,究心于垛積招差之法,推之割圓諸術,無所不通?!保?6]事實上,徐有壬研究割圓術比戴煦和李善蘭都早,并把垛積招差二法運用到了割圓問題中。
1859年,馮桂芬與徐有壬一起研究《代微積拾級》,徐有壬認為:“是法壬叔外鮮能通曉,書中文義語氣多仍西人之舊,奧澀不可讀,惟圖式皆可授,宜以意紬繹圖式,其理自見?!保?7]表明他對李善蘭等的翻譯工作并非全然接受。在《綴術》中,徐氏比較了代數學與天元術??梢姡煊腥晌从么鷶祵W,一是表達的不便性;二是運算的繁瑣性;三是深諳天元術的本質,并非完全的泥古不化;但與中西兩種文化固有的觀念和方法不無關系。
需要注意的是,徐有壬同時掌握借根方,深諳天元術,又接觸過代數學。他在研究《四元玉鑒》并為之補細草時強調天元術的重要性與實用性,在《綴術》中則與左潛都表明天元術優(yōu)于借根方,并把“綴術”視為天元術的變形,而在讀到《代微積拾級》時,又指出其佶屈聱牙、晦澀難懂。這些不同階段的觀點反映了他研究天元術、借根方與代數學的動機與動力的不同,不只反映了天元術與代數學這兩種主流學術傳統的競爭與比較的過程。天元術、四元術與借根方對理解代數學起了很大作用,反過來,西方代數學也是幫助理解天元術、四元術和借根方的重要工具。
算式由三部分構成:率名(即連比例各率,用一、二、三等表示率名)、率數(即分子或乘數,用商業(yè)暗碼〡、〢、〣、〤、〥等表示)和除法(即分母用小字旁書寄于率上)。
對于“率式”,在“比例法”中有所說明:“比例既畢,乃取各式之四行齊等列而相并,得數重列之,為所求各率式也?!保?8]所謂“各率式”是指用“比例法”求得的每行率式,“算式”僅指其中的一部分,實指單項式,而“各率式”是多項式或是多個單項式的和。由于這些“算式”共存于一式即“率式”,各項之間構成連比例,因此,對于“率式”也可以按各算式的相關規(guī)則去運算。
對于“級數式”,徐有壬先在《綴術》卷二中引入了“級數”:“新譯西算所云‘級數’是也,其求法初若繁重,究之得數級后,其余‘級數’可以推類,而得以等級井然也?!保?8]由此說明:一方面徐有壬已見到《代微積拾級》,將“級”解釋為“等級”;另一方面,他對“級數”的認識只具其形,在發(fā)現所蘊含的規(guī)律后,通過類推,以期各率式的求解能依附于“級數”之形。
在《綴術》卷四中,徐有壬使用了“級數式”這一術語,因在前幾卷中討論的對象是“術”,而卷四中討論的對象由“術”變?yōu)椤笆健?,且他在尋求“立法之原”時,試圖給出具有一般性的適用方法。
《綴術》卷一的預備知識中還給出了加、減、乘、除法,齊母通分和化分。其中的乘法是用一常數乘,若所乘常數與分母有公因子,可用約去分母中的公因子來代替作乘法。若分母不同者,先齊其分,即用通分法互乘后再相加?!盎帧敝饕獮榱私鉀Q同率名中分母不統一的問題,如:
依據“齊母通分”,“互乘齊之”,“變其式不變其實”,使得弦求矢式的各率式中的分母成“二、二四、二四六”等依次遞增之數,同時與西算中級數表達形式保持一致。
“比例法”是基本方法,“還原術”和“借徑術”等都以“比例法”為前提,也是“比例法”的應用拓展?!胺驳谝恍惺街灰晃徽哂么朔ā保?8],此時第一率式為算式即單項式。較之“比例法”,“比例商除法”的適用范圍更廣,可將“比例法”納入其中。由“正弦求余弦式”,用“比例商除法”得“弦求切式”,記“弦求切式”的各率名為?n,正弦為?2,半徑為r=?1,所求的正切為tanα,余弦為cosα,有:
在《象數一原》(1843年)卷二“半分起度弦矢率論”中,項名達所用的“除法式”與戴煦在《外切密率》(1852年)中推導本弧求切線時所用的方法是相同的。從著作的完成時間看,“比例商除法”并非徐有壬首先使用,但他首先給出該方法名稱。
“借徑術”相當于“代換法”,“還原術”先把“算式”變?yōu)椤奥适健保谩氨壤ā鼻蟾髀适剑瑢陕适较喑?,通過各率式的加減,最后只剩一新的算式,即為所求。這一過程與明安圖的“反求”、李善蘭的“回求”等計算思路大體一致。
《綴術》卷二伊始,徐有壬表明了欲得“綴術”的前提是求得各率式,各率式“連綴而下”,依據連比例各率,再以各率式為基礎,將“式”變?yōu)椤靶g”。并指出了“綴術”“能于算術中自成一隊者”[18],是因為在“弦求矢”等問題時,對于出現的開方問題,可通過屢乘屢除的方法來解決。
前人對徐有壬的幾何證明作了細致詳盡地推導,本文不再贅述。在這一過程中,徐有壬運用了“出入相補原理”“今有術”“三要法”等初等方法,并結合了“比例商除法”“還原術”“借徑術”等推導方法。事實上,并不是徐有壬首先使用此類初等方法解決級數展開問題,早在《割圓密率捷法》卷三的“三法”中,明安圖構造了新的幾何圖形,創(chuàng)造出求二分全弧通弦的方法,在論述中使用了“廉”①指磬折形一側邊之長。、“隅”②指拐角小方形的寬度。和“廉隅共積”③指磬折形面積,即兩長方、正方的和。等術語,依次求得初商、次商和三商等,明氏所構造的這一幾何模型是用無窮級數來逼近平方根[19]。明、徐作法的不同之處在于前者依據開方術,后者避開開方術?!端脑耔b》中的類似問題也運用了“出入相補原理”,徐有壬研究了《四元玉鑒》后,對其中的題目及其解題方法都較為熟悉。
李儼曾依徐氏原意給出了《測圓密率》中弧背求正切式前六項的系數分子,后來嘗試將“一差至四差”等公式化,但結果并不明顯?!稖y圓密率》卷三第13、14、17、18術中均已出現了正切數,但結果不夠清晰[7]856。張升[9]111將徐有壬的和式進行了重新組合,對卷三中“差”的系數用公式明確地表示出來,并對“差”作了進一步研究,重新組合得到了形式上的美觀,而徐有壬對此略而不述,如此組合仍舊不能擺脫“差”對第幾數的依賴。其中的正切級數展開式含有加差形式,是因為徐氏以研究每項之間的遞推規(guī)律為主要目的,加減差則是輔助函數形式[5]39。
在《綴術》卷四中,他將各率式轉化為含有加減差形式的各術,所關注的不再是如何方圓互化,而是如何由“算式”變?yōu)椤奥适健痹僮優(yōu)椤靶g”,由“術”再尋求“立法之原”。徐氏將得到的各式分為不含加減差和含有加減差,前一類的各率式系數分子可用遞推關系來統一表達,后一類則無法得到統一的表達式?!凹鹊酶髑笫?,乃可镕而為術,未能求得差根無可立為術”[18],表明立術的前提是求得差根,而求得差根則是立術的關鍵。在“弦求矢式”中,他引入了“分段除法”和“分段乘法”,含有加減差中各式的“分段除法”與“分段乘法”規(guī)律較為明顯,并且可遞推,不含加減差中各式的“分段除法”規(guī)律明顯,而“分段乘法”規(guī)律不明顯,需用加減差的形式來解釋。為什么徐有壬會引入“綴術”來研究各項之間的關系呢?實際上,要想找到級數展開式的規(guī)律就需研究每項的系數規(guī)律,徐有壬在明安圖和董祐誠等人的工作基礎上,觀察到各項之間的比例關系,加之有些個別率式中的分子分母有著特殊的比例關系,為此,他想從整體上把握并尋求統一的解決方法,雖在《綴術》中通過大量的計算求出了各加減差,卻未能確定求各加減差的遞推規(guī)律,故未能立術。
在“比例法”中,徐有壬將方格分為“除、乘、實、得”,滿足“乘×實÷除=得”,每個式子相當于單項式與多項式相乘的運算?!叭舸笮“司€相求,則中兩行相乘須畫方格如天元術乘法逐層求之”,因為在大小八線相求中,某些率式中的“率數”不是常數,而是多項式,所以要用天元術[4]666。可見,在簡單的“比例法”中“乘”和“實”兩列的計算量較小,操作簡單,基本為單項式與多項式相乘,但在大小八線相求的“乘”和“實”兩列中,運算對象變成了多項式,需要進行多項式與多項式相乘,計算量較大,涉及的步驟較多,因此,方格法可以根據實際的運算對象和計算量的多少來選擇。
吳敬將“格子算法”稱為“寫算”,程大位稱為“鋪地錦”[20]。寫算在后來影響很大,清代數學著作涉及寫算的很多[21]。在《綴術》中稱為“方格捷法”,使人們對“鋪地錦”有了新的認識?!胺礁窠莘ā钡闹匾饔迷谟?,一是在方格內可進行齊母通分再相加減的操作,二是在方格內通過虛線的聯結即把相同率名的算式放一起,便于進行同類項的合并。
一般而言,尾數的截留包括兩個方面:項數的截留(即算至哪一項停止)和奇零小數的處理(即實際應用時對小數的處理)。在《綴術》中,有六處專論尾數截留的問題,多出現在左潛的“案語”中。如在“弦求矢式”中,“用比例法求其三率五率,以下各式列之,至十一率止。十一以下連綴不盡,今每式止求五位,故尾數截去不用也”[18]。求五位是指只求三率、五率、七率、九率和十一率。若半徑取1,則從首項開始得數即為小數。在實際運算中,當取偶數各率時到?10,取奇數各率時,到?11止[4]674。左潛在《綴術釋明》中指出:“求至十一率止,以下截去不用,緣級數式不必多求也”[22],把原來的“各率式”視為“級數式”,他們已認識到級數展開式的項數是“無窮無盡”的。早在《測圓密率》的每術之后,徐有壬就有“如是遞求,至單位下而止”的表述,這一點和明安圖的表述相同,即求至出現小數時停止計算。
可見,徐有壬在一開始就指出各率式是“連綴不盡”的,并在計算之前就規(guī)定了求至十率或十一率,不關注各率式中數值的變化,也不關注求至十率或十一率后造成的誤差問題。但是,徐有壬對“連綴不盡”和“級數式”等的表述,說明了他對級數“無窮無盡”的更深層次的認識。戴煦對這一問題則給出更為詳細地分析和說明。
在《綴術》卷二中,“求式者連綴而下,連比例各率之式”,即是利用連比例關系求出各率式之系數,從而將“式”變?yōu)椤靶g”。從卷四“大小八線相求各式”起,排列方式也發(fā)生了變化,由“豎列之”調整為“橫列之”,“因各算式太繁,故改用橫列”[18],原豎列的各算式中率數為單層即單項式,當率數變?yōu)槎鄬蛹炊囗検降臅r候,豎列的方式不便于表達。對于“橫列”后如何表達,徐有壬亦有詳細介紹:“其率上旁書者為累除法,率下算式為乘數,與前各式例同,其乘數有數層者,非累乘法數,乃天元式也?!保?8]雖調整排列方式前后各式大體相同,均有三部分構成,對于構成要素來講,卻有很大變化。豎列時的各算式由率名、率數和寄母構成,橫列后的各算式由率名、累乘法和累除法構成,率名的奇偶不同所表達的意義也不同?!袄鄢ā奔聪禂档姆帜?,“累乘法”的表達較為復雜,若為單層(即單項式)時與豎列的情形相同,若為多層(即多項式)時需用天元術的表達方式。
徐有壬為何提出“斜綴而下”?一是在方格中進行各算式或各率式的加減和率式的自乘(即“鋪地錦”方法);二是計算含有加減差的各率式時,計算量較大,通過“斜綴而下”可驗證或直接給出該率式中后續(xù)幾項。可見,“斜綴而下”是由方格的形式或豎列形式所帶來的結果,如果換為橫列的形式,以天元式表示,這一效果并不明顯,但徐有壬并非發(fā)現某種對應后就以“斜綴而下”作為立術的依據,而僅是將“斜綴而下”作為驗證的方法。一般情況下,“連綴而下”指同一率式,“斜綴而下”指不同率式,因含有加減差,前者只關注率名的變化而不關注其它變化,后者不僅關注率名而且關注各算式中分母的變化規(guī)律。但需要注意的是,“連綴而下”和“斜綴而下”均包含了徐有壬對級數展開中“無窮無盡”的把握,并非完全直觀層面上的認識。
“是故‘綴術’之生,因于明氏而又足以盡明氏之變,明氏之未能立式也。試取明氏書馭之以‘綴術’,其遞降各率,頃刻可求”[23],顯然,左潛把徐氏“綴術”視為一種推求方法。以往對《綴術》的研究中,更多的是將“綴術”視為一種表達相關運算操作的方法。
從形式上來看,徐有壬接觸并深入研讀了《四元玉鑒》后,使用了其中的術語和表述方式,指出了“借根方”在表達大小八線相求等問題上的局限性,即分母為多項式時無法有效表達。同時,西學作為“他者”,徐有壬等人不僅對西學作出了回應,而且重新審視了中算。中算家的級數表達式至徐有壬才開始趨于符號化[24]32,“綴術”的影響比微積分方法的影響更深遠。如,左潛于《代微積拾級》《代數術》等書出版以后孜孜不倦地發(fā)揮徐氏“綴術”,又如,一些中算家在比較了“綴術”和“微積分”之后,明知微積分有許多優(yōu)越性,卻試圖把微積分和“綴術”放在同樣的位置上,究其心理正在于“綴術”為“國粹”[25]。
從方法上來看,《綴術》中徐有壬將“式”(算式)化為“術”,試圖確定展開式中的每一項均以其前若干項的多項式形式表達的遞推規(guī)律[6]87,再由此遞推求得展開式任意項的表達式?!熬Y術”是《綴術》中“比例商除法”“還原術”和“借徑術”的總括[26],把幾種運算手段有機地結合起來,建立一種演繹體系[26]64。“綴術”雖只是其表現形式,究本質而言,當為無窮級數遞推研究[24]。至于“綴術”的計算,是通過對原算題的變式從原算法基礎上推衍出新的算法,前提則是根據各率式結構的不同,即是否含有加減差先求得各率式,于是各率式的分母有法可尋,而其分子無法可依。
“因式立術”是建立在“算式”的基礎上,用“綴術”處理級數問題的一個關鍵環(huán)節(jié),“術”是在“式”的基礎上提煉而出的[6]92。其中的算式實指單項式,各率式實指多項式或無窮級數,“術”為一般的無窮級數。整數的一些性質確實能夠“移植”到多項式上來[27],反過來,整式到整數也可以進行形式轉換。徐氏之本意是由單一的形式完全統一起來,從而形成一個相互依賴的比較嚴密的新體系,從整體上研究進而尋求統一的作法。
如上所述,徐有壬創(chuàng)造“綴術”與他剛開始接觸四元術有關,“綴術”即為天元術的變形,其最終目的是以“綴術”來實現“因式立術,由術立法”,其中的算式指單項式,率式指多項式或無窮級數,“綴術”則是將“級數式”作為一個整體入算,借助四種計算方法推求級數展開式?!熬Y術”除了作為一種級數表示法之外,更是一種運算方法,“連綴而下”即遞推,“綴”是形,“術”是質,“綴術”的質是由“綴術”的形——連綴之形來反映,而“綴術”的形須由“綴術”的質才能顯現。概言之,其本質是以算式和率式為基礎的連綴而成的運算方法?!耙蚴搅⑿g,由術立法”則表明了徐有壬在探求內在原理時,欲將單項式與多項式推廣至無窮多項,從而使算式與各率式滿足級數式的相關條件。