唐肖準
摘 要:《九章算術》和《數書九章》這兩部中國古代數學名著記載了許多關于方程方面的優秀研究成果,這些研究成果都遙遙領先于其他國家,但是腐朽的封建制度最終阻礙了中國數學的繼續前進. 直除法和互乘相消法是古代解決一次方程的方法,在解決問題的過程數學家又獨創了“正負術”和“損益術”;在解二次方程的過程中,出現了代數與幾何相結合的端倪;指數方程和代數的引入則是對“趣談”的最好詮釋.
關鍵詞:直除法;損益術;互乘相消法;二次方程;不定方程
代數學發源于9世紀的阿拉伯,最早見于阿拉伯數學家花拉子米的著作. 在中國,春秋戰國時期已有算術,而這些算術的主要形式就是正數的四則運算,而這些四則運算主要是為了解決人們在日常生活中的實際問題,后來隨著經濟和文化的發展,到東漢初期的時候開始出現了未知數的應用,人們根據實際問題的條件列方程為主要研究對象的代數學,這一數學發展在劉徽所注的《九章算術》有明確的記載.這就是我們現在的方程,《九章算術》中的第八章,古代的方程就是現在的線性方程組. 在《九章算術》中明確指出:“群物總雜,各列有數,總言其實.令每行為率,二物者再程,三物者三程,皆如物數程之,并列為行,故為之方程.” 這里還規定了兩個方程式的系數不允許存在相同的比例,即不能有相容方程,也不能有矛盾方程.這和現代方程的思想是如出一轍的. 不過與現在橫行豎列的表示法不同的是,古代通常采用橫列豎行. 如《九章算術·方程》的第1問(以后也是談到古代方程必考究的一個問題).
例1 今有上禾三秉,中禾二秉,下禾一秉,實三十九斗;上禾二秉,中禾三秉,下禾一秉,實三十四斗;上禾一秉,中禾二秉,下禾三秉,實二十六斗. 問上、中、下禾實一秉各幾何?列出的方程如表1所示.
看到上述的方程組,我們不禁要發出這樣的疑問,中國古代并沒有英文字母,那到底是怎么列未知數解方程的呢?的確,英文字母x,y,z是19世紀中葉才傳到中國的,在此之前我國古代方程中的未知數都是用漢字來表示的,譬如“上禾”、“中禾”、“下禾”以及“天”、
“地”、“人”就通常被指代成現在的未知數x,y,z. 列出方程組之后,隨之而來的當然就是求解的問題.
直除法
古代對于線性方程組的解法稱為方程術,其核心是以逐步消元來減少方程的行數及未知數的個數,最終消成每行只存在一個未知數的情況,然后依次把第二、第三個未知數求出來. 在古代這種消元的方法稱為直除術,“直除”的意思就是直接相減.以《九章算術·方程》的第一問為例,在書中關于它的解題過程中有這樣一段話:“以右行上禾遍乘中行,而以直除. 又乘其次,亦以直除.”這段話用方程組的變換可以翻譯為
我們把方程組的系數以方陣的形式橫著寫,就是現行教材中線性方程組系數的增廣矩陣,籌算過程就是現行矩陣的行初等變換,上述的初等變換只需要幾步就可完成.
當時人們借助的運算工具是算籌,方程的各項系數,常數項都用算籌排列成長方形,通過對算籌的移動和重組達到解出方程的目的,它的性質和運算過程跟今天的矩陣是差不多的,所以我們可以很自豪地說,中國是矩陣最早出現的地方.
直除法的提出為簡化行列式和矩陣各行各列相減的概念奠定了基礎,其中劉徽指出的用方程的整行和另一行相減,不影響方程的解這一思想成為方程消元法的奠基石. 在歐洲最早的解線性方程組的方法是由法國數學家布丟在十六世紀中葉提出的,這比中國晚了一千年左右. 《九章》中的直除法不僅是中國古代數學中的偉大成就,也是世界數學史上寶貴的精神財富.
損益術
我們知道,由于在消元過程中會出現小數減大數的情況,這勢必會導致負數的產生. 劉徽在注釋《九章算術·方程》時首次提出了“正負術”的思想:同名相除,異名相益,正無入負之,負無入正之.其異名相除,同名相益,正無入正之,負無入負之. (這里的除、益是減少、增加的意思,同名、異名是同號、異號的意思),通覽這寥寥37個字,卻把正負數的加減法都包括了. 以《九章算術·方程》第八問為例,列出方程以矩陣的形式給出:
從第一個矩陣到第二個矩陣經過的變換是:2×第2列-3×第3列;2×第1列+5×第3列. 從第二個矩陣到第三個矩陣經過的變換是:第2列都約去公約數3. 要注意的是這里的“列”古代稱之為“行”,參考古籍時要注意.
《九章》中出現的正負數是人類文明史上最早出現的關于負量的描述,并且對正負數的加減法則做了說明,到5世紀時,祖沖之把它運用到了二次方程. 后來,朱世杰在《算學啟蒙》中又提出了正負數乘法法則. 在正負術的基礎上,古人創造了移項建立或化解方程的方法,在當時稱之為損益術. 古代所指的損益就是現在我們所說的減少和增加. 在等式的左端減少多少等價于在等式的右端增加多少,同理在等式的右端損就相當于在等式的左端益,就像我們現在所說的收支平衡. 如《九章算術·方程》第二問.
例2 今有上禾七秉,損實一斗,益之下禾兩秉,而實一十斗;下禾八秉,益實一斗,于上禾二秉,而實一十斗. 問上,下禾實一秉各幾何?”
根據題意,我們可以列出方程組
顯然,經過損益之后方程更簡潔也更便于計算. 值得一提的是,損益術的對象不僅包括了常數項,也包括了未知數,同時它的作用還類似于現在的合并同類項. 例如《九章算術·方程》第11問中關于牛馬價各幾何的問題,這里就不再詳敘.
互乘相消法
眾所周知,當方程組的系數較大時利用直除法計算往往會很煩瑣,劉徽針對這個問題首創了互乘相消法,那何為互乘相消法呢?我們不妨來看劉徽在《九章算術·方程》“牛羊直金”問中所提出的解法.
例3 “今有牛五,羊二,直金十兩;牛二,羊五,直金八兩,則牛、羊各直金幾何?”
同理,x的值也可求得. 劉徽還指出這是一種普遍的方法,即使方程式的個數為四行、五行也行得通. 可惜這種先進的思想一直未被當時的數學家重視,直到700多年后才被南宋大數學家秦九韶繼承并發展. 秦九韶的《數書九章》作為中國古代數學史上的另一部巨著,不僅僅是對《九章算術》的擴充和重復,在很大程度上它突破了《九章算術》的限制,并且給予了發展和推廣. 如《數書九章》“均貨推本”問題.
例4 “問有海舶赴務抽畢,除納主家貨物外,有沉香五千八十八兩,胡椒…”根據題意,列出方程組為
最后利用代入法,便得其他各元的值.
回顧上面所陳述的互乘相消法,不難看出這和現在我們所用的解方程組的方法完全一致,秦九韶發展了《九章算術》里的互乘相消法,把它運用到了二次以上方程并且提出了“代入法”和最大公約數的概念,這些成果都遙遙領先于世界上其他國家.
二次方程的解法
中國是世界上最早出現二次方程并求解的國家之一,古代的二次方程常以x2+px=q(p,q為正數)的形式出現,在這里我們不妨默認它為二次方程的標準形式. 利用代數和幾何相結合,通過事物的幾何性質,列方程來求解則可以看作是中國數學的特色之一. 在我國《九章算術》里就有一個關于“引蕸赴岸”的最古老的二次方程問題,它便是利用勾股定理,列二次方程求解的. 又例如《九章算術·勾股》中的第20問“今有邑方不知大小,各中開門. 出北門二十步有木. 出南門十四步,折而西行一千七百七十五步見木. 問邑方幾何?”
書中采用了“帶從開方法”來求方程的正根,即“以出北門步數乘西行步數,倍之,為實,并出南門步數,為從法.開方除之,即邑方”.
這段話用數學語言來解釋就是:以2×20×1775=71000作為常數項放在等式右端,以20+14=34作為一次項的系數(亦即古人所說的“從法”),然后列出標準二次方程,再開帶有“從法”的平方根,解的步驟相當于x=-17+ ,這與韋達的求根公式相吻合. 在這以后,宋代劉益的《益古根源》已經涉及解二次項系數為負數的二次方程,三國時趙爽在《勾股圓方圖注》中還用到了類似于現在我們所用的二次方程求根公式:x=,其中2c為矩形兩邊之和,a為兩邊之積. 而在眾多求二次方程的解法中,最有趣的要數隋唐時期,僧一行利用內插公式來求得方程的正根,這種先進的方法,至今令人稱奇.
不定方程
在西方,人們習慣稱不定方程為“丟番圖方程”,這是因為古希臘數學家丟番圖曾在公元3世紀時大規模地對此進行研究,其實在此之前我國《九章算術》里已出現“五家共井”的不定問題
例5 “今有五家共井,甲二綆不足,如已一綆;已三綆不足,以丙一綆;丙四綆不足,以丁一綆;丁五綆不足,以戊一綆;戊六綆不足,以甲一綆.如各得所不足一綆,皆逮. 問井深,綆長各幾何?”根據題意,可以列出方程:
這道題中有五個方程式,卻出現了六個未知數,劉徽用方程術解出其中一組最小解:x=265,y=191,z=148,u=129,v=76,w=721,并明確指出這是不定方程,只能求得其比率,它的解有無數組.比利時人利勃里希特曾經就說過這是中國數學史上最早的不定方程問題,它的提出要比丟番圖早200多年.后來元魏時期張邱建又提出了“百雞問題”,這是道關于不定方程的世界名題,書中說到:“今有雞翁一,值錢五,雞母一,值錢三,雞雉三,值錢一,凡百錢買雞百只. 問雞翁、母、雉各幾何?”按現代漢語翻譯,列出方程組
我們注意到這里有3個未知數,而方程式只有兩個,張邱建在其答案中提示到:“雞翁每增四,雞母每減七,雞雉每益三,即得.”并且給出了全部的三組整數解:(4,18,78),(8,11,81),(12,4,84)但具體解法并沒有公示出來.
后世之人一直嘗試著尋找“百雞問題”的一般解法,但直到19世紀中葉才由駱騰鳳、時曰醇利用大衍求一術找到一般解法.
x指數方程和對數的傳入
《九章算術》里有道有趣的“二鼠穿垣”問題,在古代浩瀚如海的方程問題中,它倒像是夏日里的一杯涼茶,百合中的一朵玫瑰,讓人感覺眼前一亮,特別引人注目.
例6 “今有垣厚五尺,兩鼠對穿. 大鼠日一尺,小鼠亦日一尺. 大鼠日自倍,小鼠日自半. 問:何日相逢?各穿幾何?”如果我們用今天的代數方法來解,可以借助于等比數列的求和公式,設經過n天兩鼠可以相逢,大鼠每天的穿垣尺數依次為:1,2,22…小鼠每天的穿垣尺數依次為:1,,…經過n天,大鼠共穿進尺數=2n-1,小鼠共穿進尺數= 2-,題中說兩鼠共穿進5尺.
我們可以列一個指數方程:(2n-1)+
這是中國古代關于指數方程的最早記載,通過這道題我們可以發現中國古代的方程研究已經呈橫向發展的趨勢,從方程與指數相結合以及在二次方程這個章節中出現的把幾何與代數相結合,利用事物的幾何性質,列方程來求解中我們不難發現那個時代屬于中國數學特色的端倪.
在求解這個指數方程時,我們勢必會用到對數函數的知識,那么對數是何時傳入我國的呢?據史料記載,最早把對數引入中國的是清朝的數學家薛鳳祚,他在《歷學會通》中給出了多達六位的數字和三角函數的對數表,其實在宋元之后,中國的數學就開始走下坡路了,不過在康熙時期,中國的數學還曾曇花一現過,究其原因:其一,康熙是古代帝王中為數不多的對數學產生濃厚興趣并對數學的發展做出貢獻的皇帝,在他的鼓勵和帶領下,那個時期的數學家在對以前數學文獻的整理和研究上所做出的成就還是值得肯定的. 其二,康熙時期,中國的經濟文化又處于一個巔峰期,這就使得人們有更多的精力和安定和諧的環境去研究數學. 所以在那個時期,保留了很多極為珍貴的高次方程和對數方面的文獻.
我國古代的數學是以代數學作為主流而發展的,其中求解方程是我國古代代數學研究的重點,從劉徽注的《九章算術》里求解一元一次方程開始發展到宋元時期對高次方程解的研究步入一個新臺階,中國數學在方程方面的研究已經遙遙領先于世界其他國家. 但是由于腐朽的封建制度,宋元之后我國數學就開始停滯不前,很多優秀的成果也流失了. 作為數學王國里一顆璀璨的明珠,中國也曾照亮了那個時代方程發展的道路.