数的发展史是什么?( 二 )


用现代符号表达,秦九韶“正负开方术”的思路如下:对任意给定的方程
f(x)=a0xn+a1xn-1+……+an-2x2+an-1x+an=0 (1)
其中a0≠0,an<0,要求(1)式的一个正根 。秦九韶先估计根的最高位数字,连同其位数一起称为“首商”,记作c,则根x=c+h,代入(1)得
f(c+h)=a0(c+h)n+a1(c+h)n-1+……+an-1(c+h)+an=0
按h的幂次合并同类项即得到关于h的方程:
f(h)=a0hn+a1hn-1+……+an-1h+an=0 (2)
于是又可估计满足新方程(2)的根的最高位数字 。如此进行下去,若得到某个新方程的常数项为0,则求得的根是有理数;否则上述过程可继续下去,按所需精度求得根的近似值 。
如果从原方程(1)的系数a0,a1,…,an及估值c求出新方程(2)的系数a0,a1,…,an的算法是需要反复迭代使用的,秦九韶给出了一个规格化的程序,我们可称之为“秦九韶程序”,他在《数书九章》中用这一算法去解决各种可以归结为代数方程的实际问题,其中涉及的方程最高次数达到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+ n(n?1)(n?2)△3
+ n(n?1)(n?2)(n?3)△4+……
这是一项很突出的成就 。
这里不可能一一列举中国古代数学家的所有算法,但仅从以上介绍不难看到,古代与中世纪中国数学家创造的算法,有许多即使按现代标准衡量也达到了很高的水平 。这些算法所表达的数学真理,有的在欧洲直到18世纪以后依赖近代数学工具才重新获得(如前面提到的高次代数方程数值求解的秦九韶程序,与1819年英国数学家W. 霍纳重新导出的“霍纳算法”基本一致;多元高次方程组的系统研究在欧洲也要到18世纪末才开始在E. 别朱等人的著作中出现;解一次同余组的剩余定理则由欧拉与高斯分别独立重新获得;至于朱世杰的高次内插公式,实质上已与现在通用的牛顿-格列高里公式相一致) 。这些算法的结构,其复杂程度也是惊人的 。如对秦九韶“大衍求一术”和“正负开方术”的分析表明,这些算法的计算程序,包含了现代计算机语言中构造非平易算法的基本要素与基本结构 。这类复杂的算法,很难再仅仅被看作是简单的经验法则了,而是高度的概括思维能力的产物,这种能力与欧几里得几何的演绎思维风格截然不同,但却在数学的发展中起着完全可与之相媲美的作用 。事实上,古代中国算法的繁荣,同时也孕育了一系列极其重要的概念,显示了算法化思维在数学进化中的创造意义和动力功能 。以下亦举几例 。

推荐阅读