一、中國算法的前世
中國古代數學是以創造算法特別是各種解方程的算法為主線。從線性方程組到高次多項式方程,乃至不定方程,中國古代數學家創造了一系列先進的算法(中國數學家稱之為「術」),他們用這些算法去求解相應類型的代數方程,從而解決導致這些方程的各種各樣的科學和實際問題。特別是,幾何問題也歸結為代數方程,然後用程式化的算法來求解。因此,中國古代數學具有明顯的算法化、機械化的特徵。
1、線性方程組與「方程術」
中國古代最重要的數學經典《九章算術》(約公元前2世紀)卷8的「方程術」,是解線性方程組的算法。
2、高次多項式方程與「正負開方術」
《九章算術》卷4中有「開方術」和「開立方術」。《九章算術》中的這些算法後來逐步推廣到開更高次方的情形,並且在宋元時代發展為一般高次多項式方程的數值求解。秦九韶是這方面的集大成者,他在《數書九章》(1247年)一書中給出了高次多項式方程數值解的完整算法,即他所稱的「正負開方術」。
3、多元高次方程組與「四元術」
歷史上最早對多元高次方程組作出系統處理的是中國元代數學家朱世傑。朱世傑的《四元玉鑑》(1303年)一書中涉及的高次方程達到了4個未知數。朱世傑用「四元術」來解這些方程。「四元術」首先是以「天」、「地」、「人」、「物」來表示不同的未知數,同時建立起方程式,然後用順序消元的一般方法解出方程。
4、一次同餘方程組與「中國剩餘定理」
中國古代數學家出於曆法計算的需要,很早就開始研究形如:X≡Ri (mod ai) i=1,2,...,n (1), (其中ai 是兩兩互素的整數)的一次同餘方程組求解問題。公元4世紀的《孫子算經》中已有相當於求解下列一次同餘組的著名的「孫子問題」:X≡2(mod3) ≡3(mod5) ≡2(mod7)《孫子算經》作者給出的解法,引導了宋代秦九韶求解一次同餘組的一般算法——「大衍求一術」。現代文獻中通常把這種一般算法稱為「中國剩餘理」。
5、插值法與「招差術」
早從東漢時期起,學者們就慣用插值法來推算日月五星的運動。起初是簡單的一次內插法,隋唐時期出現二次插值法(如一行《大衍曆》,727年)。由於天體運動的加速度也不均勻,二次插值仍不夠精密。隨著曆法的進步,到了宋元時代,便產生了三次內插法(郭守敬《授時曆》,1280年)。在此基礎上,數學家朱世傑更創造出一般高次內插公式,即他所說的「招差術」。
二、中國算法的近代數學今生
古代與中世紀中國數學家創造的算法,有許多即使按現代標準衡量也達到了很高的水平。這些算法所表達的數學真理,有的在歐洲直到18世紀以後依賴近代數學工具才重新獲得(如前面提到的高次代數方程數值求解的秦九韶程序,與1819年英國數學家W. 霍納重新導出的「霍納算法」基本一致;多元高次方程組的系統研究在歐洲也要到18世紀末才開始在E. 別朱等人的著作中出現;解一次同餘組的剩餘定理則由歐拉與高斯分別獨立重新獲得;至於朱世傑的高次內插公式,實質上已與現在通用的牛頓-格列高裡公式相一致)。這些算法的結構,其複雜程度也是驚人的。如對秦九韶「大衍求一術」和「正負開方術」的分析表明,這些算法的計算程序,包含了現代計算機語言中構造非平易算法的基本要素與基本結構。這類複雜的算法,很難再僅僅被看作是簡單的經驗法則了,而是高度的概括思維能力的產物,這種能力與歐幾裡得幾何的演繹思維風格截然不同,但卻在數學的發展中起著完全可與之相媲美的作用。
這次分享結束,歡迎留言、收藏、分享、關注!