【编者按】:数学论文是科技论文的一种是用来进行数学科学研究和描述研究成果的论说性文章。精品学习网论文网为您提供数学论文范文参考,以及论文写作指导和格式排版要求,解决您在论文写作中的难题。
摘要:中国古代数学具有悠久的传统。本文论述了中国古代数学的算法化、机械化特征及其对世界数学发展主流的历史贡献,并指出了解中国古代数学发展特征对于现实创新活动的借鉴意义。
1 中国古代数学的发展
在古代世界四大文明中,中国数学持续繁荣时期最为长久。从公元前后至公元14世纪,中国古典数学先后经历了三次发展高潮,即两汉时期、魏晋南北朝时期和宋元时期,并在宋元时期达到顶峰。
与以证明定理为中心的希腊古典数学不同,中国古代数学是以创造算法特别是各种解方程的算法为主线。从线性方程组到高次多项式方程,乃至不定方程,中国古代数学家创造了一系列先进的算法(中国数学家称之为“术”),他们用这些算法去求解相应类型的代数方程,从而解决导致这些方程的各种各样的科学和实际问题。特别是,几何问题也归结为代数方程,然后用程式化的算法来求解。因此,中国古代数学具有明显的算法化、机械化的特征。以下择要举例说明中国古代数学发展的这种特征。
1.1 线性方程组与“方程术”
中国古代最重要的数学经典《九章算术》(约公元前2世纪)卷8的“方程术”,是解线性方程组的算法。以该卷第1题为例,用现代符号表述,该问题相当于解一个三元一次方程组:
3x+2y+z=39
2x+3y+z=34
x+2y+3z=26
《九章》没有表示未知数的符号,而是用算筹将xyz的系数和常数项排列成一个(长)方阵:
1 2 3
2 3 2
3 1 1
26 34 39
“方程术”的关键算法叫“遍乘直除”,在本例中演算程序如下:用右行(x)的系数(3)“遍乘”中行和左行各数,然后从所得结果按行分别“直除”右行,即连续减去右行对应各数,就将中行与左行的系数化为0。反复执行这种“遍乘直除”算法,就可以解出方程。很清楚,《九章算术》方程术的“遍乘直除” 算法,实质上就是我们今天所使用的解线性方程组的消元法,以往西方文献中称之为“高斯消去法”,但近年开始改变称谓,如法国科学院院士、原苏黎世大学数学系主任P.Gabriel教授在他撰写的教科书[4]中就称解线性方程组的消元法为“张苍法”,张苍相传是《九章算术》的作者之一。
1.2 高次多项式方程与“正负开方术”
《九章算术》卷4中有“开方术”和“开立方术”。《九章算术》中的这些算法后来逐步推广到开更高次方的情形,并且在宋元时代发展为一般高次多项式方程的数值求解。秦九韶是这方面的集大成者,他在《数书九章》(1247年)一书中给出了高次多项式方程数值解的完整算法,即他所称的“正负开方术”。
用现代符号表达,秦九韶“正负开方术”的思路如下:对任意给定的方程
f(x)=a[0]x^n+a[1]x^(n-1)+……+a[n-2]x^2+a[n-1]x+a[n]=0 (1)
其中a[0]≠0,a[n]<0,要求(1)式的一个正根。秦九韶先估计根的最高位数字,连同其位数一起称为“首商”,记作c,则根x=c+h,代入(1)得
f(c+h)=a[0](c+h)^n+a[1](c+h)^(n-1)+……+a[n-1](c+h)+a[n]=0
按h的幂次合并同类项即得到关于h的方程:
f(h)=a[0]h^n+a[1]h^(n-1)+……+a[n-1]h+a[n]=0 (2)
(注:这里(2)和(1)式子里的a[i],一般是不一样的。)
于是又可估计满足新方程(2)的根的最高位数字。如此进行下去,若得到某个新方程的常数项为0,则求得的根是有理数;否则上述过程可继续下去,按所需精度求得根的近似值。
如果从原方程(1)的系数a[0],a[1],…,a[n]及估值c求出新方程(2)的系数a[0],a[1],…,a[n]的算法是需要反复迭代使用的,秦九韶给出了一个规格化的程序,我们可称之为“秦九韶程序”,他在《数书九章》中用这一算法去解决各种可以归结为代数方程的实际问题,其中涉及的方程最高次数达到10次,秦九韶解这些问题的算法整齐划一,步骤分明,堪称是中国古代数学算法化、机械化的典范。
1.3 多元高次方程组与“四元术”
绝不是所有的问题都可以归结为线性方程组或一个未知量的多项式方程来求解。实际上,可以说更大量的实际问题如果能化为代数方程求解的话,出现的将是含有多个未知量的高次方程组。
多元高次方程组的求解即使在今天也绝非易事。历史上最早对多元高次方程组作出系统处理的是中国元代数学家朱世杰。朱世杰的《四元玉鉴》(1303年)一书中涉及的高次方程达到了4个未知数。朱世杰用“四元术”来解这些方程。“四元术”首先是以“天”、“地”、“人”、“物”来表示不同的未知数,同时建立起方程式,然后用顺序消元的一般方法解出方程。朱世杰在《四元玉鉴》中创造了多种消元程序。
通过《四元玉鉴》中的具体例子可以清晰地了解朱世杰“四元术”的特征。值得注意的是,这些例子中相当一部分是由几何问题导出的。这种将几何问题转化为代数方程并用某种统一的算法求解的例子,在宋元数学著作中比比皆是,充分反映了中国古代几何代数化和机械化的倾向。
1.4 一次同余方程组与“中国剩余定理”
中国古代数学家出于历法计算的需要,很早就开始研究形如:
X≡Ri (mod ai) i=1,2,...,n (1)
(其中ai 是两两互素的整数)的一次同余方程组求解问题。公元4世纪的《孙子算经》中已有相当于求解下列一次同余组的著名的“孙子问题”:
X≡2(mod3) ≡3(mod5) ≡2(mod7)
《孙子算经》作者给出的解法,引导了宋代秦九韶求解一次同余组的一般算法——“大衍求一术”。现代文献中通常把这种一般算法称为“中国剩余定理”。
1.5 插值法与“招差术”
插值算法在微积分的酝酿过程中扮演了重要角色。在中国,早从东汉时期起,学者们就惯用插值法来推算日月五星的运动。起初是简单的一次内插法,隋唐时期出现二次插值法(如一行《大衍历》,727年)。由于天体运动的加速度也不均匀,二次插值仍不够精密。随着历法的进步,到了宋元时代,便产生了三次内插法(郭守敬《授时历》,1280年)。在此基础上,数学家朱世杰更创造出一般高次内插公式,即他所说的“招差术”。朱世杰的公式相当于
f(n)=n△ + n(n-1)/2!△2 + n(n-1)(n-2)/3!△3 + n(n-1)(n-2)(n-3)/4!△4 + ……
这是一项很突出的成就。
这里不可能一一列举中国古代数学家的所有算法,但仅从以上介绍不难看到,古代与中世纪中国数学家创造的算法,有许多即使按现代标准衡量也达到了很高的水平。这些算法所表达的数学真理,有的在欧洲直到18世纪以后依赖近代数学工具才重新获得(如前面提到的高次代数方程数值求解的秦九韶程序,与1819年英国数学家W. 霍纳重新导出的“霍纳算法”基本一致;多元高次方程组的系统研究在欧洲也要到18世纪末才开始在E. 别朱等人的著作中出现;解一次同余组的剩余定理则由欧拉与高斯分别独立重新获得;至于朱世杰的高次内插公式,实质上已与现在通用的牛顿-格列高里公式相一致)。这些算法的结构,其复杂程度也是惊人的。如对秦九韶“大衍求一术”和“正负开方术”的分析表明,这些算法的计算程序,包含了现代计算机语言中构造非平易算法的基本要素与基本结构。这类复杂的算法,很难再仅仅被看作是简单的经验法则了,而是高度的概括思维能力的产物,这种能力与欧几里得几何的演绎思维风格截然不同,但却在数学的发展中起着完全可与之相媲美的作用。事实上,古代中国算法的繁荣,同时也孕育了一系列极其重要的概念,显示了算法化思维在数学进化中的创造意义和动力功能。以下亦举几例。
1.6 负数的引进