只要谈起中国数学史,天元术、四元术一向是不可不提的,因为这被认为是中国传统数学的最高成就。而且一直以来,指责明代数学衰落的重要理由也是天元术、四元术的失传。但是,真正导致中国传统数学在元中期后迅速衰落的原因,还是金和元建立统治时的屠杀和残酷的民族压迫破坏了学术持久传承的环境。
有人会说,金末元初的李冶发明了天元术;元初的郭守敬修订授时历,熟练运用了高阶等差级数和高阶差分法的数学技巧;朱世杰发明的四元术,能用相消法求解四元高次方程组,是中国传统数学集大成者。明明金元时期中国数学还是不错的,怎能把落后责任归咎于这两朝呢?
这是因为对于天元术和四元术产生的背景和意义,许多人有误解,而这些误解又导致人们对金元时期的统治对数学发展的严重破坏和阻碍作用没有清晰的认识。要说天元术,主要有如下三点:
第一,天元术的实质是对算筹操作列出方程式过程的书面说明,而非引入未知数。
第二,天元术真正出现在北宋时期。
第三,金对北宋的侵略和后续统治破坏了数学的发展环境,迟滞了天元术的推广和更有价值的发展。
未知数的概念在中国早已有之,成书于战国末到西汉初的《九章算术》里就有多元一次方程的问题。只不过概念隐含在算筹的摆放中,而不诉诸文字记录,如钱宝琮说:
古算一次联立式演算,未知量不以符号表示,但用算筹布其数(系数)于某行某率,列各率之数于上,实数于下,即成一行。
《九章算术》里已包含从两个未知数到五个未知数的联立方程组的问题和解法,用未知数概念建立联立方程组的思想是非常清晰的。随便举一例:
今有上禾三秉,中禾二秉,下禾一秉,实三十九斗;上禾二秉,中禾三秉,下禾一秉,实三十四斗;上禾一秉,中禾二秉,下禾三秉,实二十六斗。问上中下禾实一秉各几何?
其解题过程和现在列出三元一次联立方程组求解区别不大,最大差异仅是并无特定符号代表不同未知数,而是直接把方程系数列成矩阵,通过对增广矩阵的操作求得答案。而到了宋代,无论是解多元一次方程组,还是求一元高次方程的数值解,更发展到相当成熟的地步,许多成果领先西方五六百年。
《九章算术》代表的算筹体系和现代初等数学之间最本质的区别,不在于是否引入未知数的概念列出方程,而在于是否用明确的符号来代表未知数。从运算过程的经济性原则出发,中国古人显然认为引入额外符号多余,通过算筹摆放位置关系已能把未知数的信息表达清楚,对于运算出正确结果来说完全足够。
一切包含在默认假定中,不仅代表未知数的符号是多余的,指代运算关系的加减乘除以及等号也都是多余的,需要哪种运算就对算筹进行哪种类型的变换操作,而解决数学问题的书面记录无非就是对算筹操作流程的记述。
这种算筹体系对数学问题的解决过程就相当于直接给出一套机械化算法,通过程序化的操作就能给出问题的答案。所以中国古算解决问题的方案,可以很容易地一一对应转换成程序算法,直接在计算机上得出结果,其计算效率甚至比一些西方数学近代乃至现代方法都高。吴文俊院士将中国传统数学特点归结为机械化、构造化,对此有深入研究,并取得了很大成果。
但所谓“成也萧何,败也萧何”,当数学需进一步发展,这种缺乏书面符号、完全依附算筹操作的数学体系就遇到了瓶颈。当然瓶颈不是不能突破,关键就在于能否发展出一套独立于算筹操作的书面体系。北宋时期,这种突破已呈现端倪。
据孔国平在《〈测圆海镜〉导读》一书中说,天元术在北宋已经产生,11世纪的洞渊是天元术的先驱,《测圆海镜》中引用的洞渊细草中已明确有立天元一,而洞渊据考证是北宋的洞渊大师李思聪。
另外,李冶天元术也受蒋周等人影响,据李约瑟《中国科学技术史(第三卷):数学》,蒋周可能就是蒋舜元,在1080年就写过一部《益古集》。李冶的《益古演段》就是对此书的直接阐释注解。《山西古代数学史述要》一文则说蒋周为北宋平阳人,学得“立天元一”术,所撰《益古集》在北宋元丰(1078~1085)、金大定(1161~1189)年间都曾刊行。
总之,李冶“立天元一”非其原创是可以肯定的事实,即便阅读《测圆海镜》原文都一目了然。无论其自序还是涉及立天元一题目时,都从未把所谓立天元当作一种值得特别介绍的新方法提出。而从种种迹象判断,天元术在李冶这里还产生了某种程度的倒退。正如前述,如果说“天元”这个概念有什么价值,就是它能够给予未知数一个明确的语言符号,能让传统数学逐渐发展出独立于筹算的符号体系。
但是李冶的立天元一恰恰完全停留在描述算筹操作的阶段,某种程度是将算筹起算点称为立天元,赋予其特定的实际含义(比如圆城半径),然后进行操作。这个阶段还可以说“天元”确实代表未知数。到了筹算图式表达的阶段,汉字“元”就仅是定位符,而非某些人说的未知数x,其作用是说明这个位置的算筹对应的是一次项系数。有时候他也不用“元”,而在常数项旁边写个汉字“太”,只要写了一个汉字确定某行是常数项或者一次项,其他项对应次数则完全由算筹排列的行数来确定。一旦多项式合并结束,方程得出后,连这个定位符的“元”都不再出现(极少数情况下出现的“元”字样可能是误写或后人篡入,见郭书春《尊重原始文献,避免以讹传讹》一文的考证)。
也即在李冶那里,凡带有“元”或“太”字样的算筹图式代表多项式而非方程,真正的方程算式是没有“元”或“太”的。显然李冶并不认为有必要用专门符号代表未知数,推导方程时立天元一,仅仅是描述算筹操作,方法也是照搬前人,他甚至都不觉得有什么必要对这个立天元一作解释。
我们说即便不把元作为未知数符号,就用“元”来代表未知数幂次,进一步推广这种做法,也可看成某种独立的数学符号意识的体现,但李冶显然这点都没有做到。这从他对现已失传的某本数学著作(后面称为“东平算经”)的批评可以看出:
予至东平,得一算经,大概多明如积之术,以十九字志其上下层数曰:仙、明、霄、汉、垒、层、高、上、天、人、地、下、低、减、落、逝、泉、暗、鬼。此盖以人为太极,而以天、地各自为元而陟降之。其说虽若肤浅,而其理颇为易晓,予遍观诸家如积图式,皆以天元在上,乘则升之,除则降之。独太原彭泽彦材法,立天元在下。
以我所见,大部分数学史家如孔国平、李迪、郭书春、钱宝琮等人都把东平算经提到的用十九个汉字代表未知数次幂的做法视为烦琐落后,而将李冶在一次项旁标“元”的做法视为先进,甚至连强调数学文本语言之重要意义的朱一文先生在此问题上都未能免俗。实则若深入思考,不难得出结论,东平算经的做法恰恰体现了中国传统数学开始从依附算筹摆放的体系向独立数学语言发展的倾向,而李冶的做法是一种倒退。
比如孔国平先生说东平算经的作者“不懂得用统一的符号表示未知数的不同次幂”,问题是李冶也根本不用统一符号表示未知数的次幂,算式里的“元”只能用来标明某行放一次项的系数,其他项就是通过算筹排列行数来确定。如果要说统一和简洁,那传统不加任何标注的做法最简洁统一,连“元”都不需要,直接就是从上到下第一行为常数,第二行为一次项,第三行为二次项,依次类推。
若这种逻辑贯彻到底,连“元”这个标注符号都取消,才是最进步的。实际果然到朱世杰《算学启蒙》,表示多项式的天元式都不标注“太”或“元”了。这就是让数学完全回归到依附算筹摆放来传达信息的的死胡同里了。
用十九个字代表未知数的负九次方到九次方,对算筹操作确实多余,但为将表达式从算筹体系中解放出来提供了可能。随便举个例子,原先类似这样的多项式,按李冶方法记录在书面需十层,中间八层则记录○,而按东平算经只需要两行就成,甚至记录在一行表达为“ ”(算筹数字上的斜杠,类似现在负号) 也可一目了然,如再引入甲乙丙丁戊己庚辛等代表未知数,则一个多元多次方程可记录在同一行里,这按李冶和朱世杰的思路是不可能的。
这种用不同汉字和未知数次幂一一对应的方法和三四百年后西方表达多项式的做法有相通处。1585年荷兰的斯提芬用2③+8②-24①-96代表多项式。1601年德国列玛用25Ⅳ+20Ⅱ-10Ⅲ-8Ⅰ代表多项式,到1637年笛卡尔才用字母加右上角数字来表示次幂。
东平算经里十九个汉字实质等价于数字序号,和后来西方人做法的区别仅仅是前者用汉字,后者用罗马数字或圈内数字,进一步发展完全可演变成一个特定汉字(简化点可用笔画)表示未知数再加一个特定形式的数字表示次幂。而按李冶和朱世杰的思路,永远都不必给每个次幂指定一一对应的符号。
所以问题不在于烦琐或简洁,中国传统算筹体系不是不够简洁,而是太简洁了,简洁到所有能省略的东西都省掉了,表示运算的符号省掉了,表示未知量的符号也省掉了。这种简洁的代价就是数学成为算筹体系的附属品,无法往更抽象、更高级的阶段发展。不能用独立符号来代表未知数(李冶用的“元”只能附属于算筹的摆放),就很难产生函数概念和一般表达式,而不能产生函数,也就无法产生导数、积分的一般方法,微积分也就不可能出现。
北宋已出现的“立天元”随着正常学术发展历程,应该是能够向全国扩散,逐步演变成用独立符号代表未知数的。遗憾的是,随着金入侵和屠杀破坏,这一数学思想在一百多年间沉寂了。
对于金的入侵给宋代数学造成的破坏,日本科学史学者薮内清说:
北宋时期活跃的科学技术活动,因靖康之变而遭到了沉重的打击。
南宋遭到的打击是极大的,像《纪元历》在一段时间内也完全丢掉了,经南宋初的高宗热心搜集,才由政府得到。元丰年间刊行的《算经十书》失掉了,到宁宗嘉定年间,才好不容易由鲍澣之重刻。
靖康之变造成了传统的中断,而政府欲使之复活时已经晚了,元灭了南宋。
金末独创性成就是以北宋时代确立的学院式学问传统为基础的。靖康之变中,这种学院传统遭到了重大打击。
到一百多年后的金末,李冶虽运用描述这一方法,却比在他之前的东平算经的思想倒退,使天元术固化为一种单纯说明算筹操作的手段,放弃了使其演变成独立的不依赖于算筹的数学语言体系的可能。
由于李冶本人同金、元统治者的合作,其错误的数学方向产生了更大的影响力,直接导致元初朱世杰受其影响,完全陷在天元术只能是算筹体系附属品的泥潭中不能自拔。既然算筹一个方向的排列次序能用来代表一个未知数的次幂,那要把多个未知数的各个次幂放在同一多项式里,就只能利用东南西北四个方向,未知数之间的乘积组合就只能放在各个方向的夹角中,就这样利用一切方向的空隙还捉襟见肘,这就是朱世杰的四元术。
四元术其实已穷尽了用算筹摆放位置表达数学信息的可能。朱世杰所谓的“天”、“地”、“人”、“物”四元同样不是独立的未知量符号,他在实际给出的算筹图式中不标注天地人物,直接就在中央标注一个“太”表示常数项就行了。按照李冶和朱世杰这种让天元术固化在算筹体系中的思路,中国传统数学确实走向了无法进一步发展的死胡同。
另一方面,南宋的秦九韶从另一方向开始了数学文本符号化进程。据郑诚、朱一文对明钞本《数书九章》的研究,秦九韶在算筹图中引入了不同的双线、单线符号用来代表加减乘除:
赵琦美钞本中的连接线段应是秦书原有内容,在现存各本中最为接近秦九韶原稿。这类连线在某种意义上发挥了现代运算符号的作用,在现存中国古代数学著作中是独一无二的。
可惜秦九韶开启的趋向又被元对南宋的侵略所打断。而随着元明之际算盘逐渐代替算筹,附属于算筹的数学体系不但难以为继,而且本身获得的成就也被逐渐遗忘。朱一文说:
实际上笔者内心更倾向于认为是蒙古人的入侵引发的社会变革导致筹算发展的中断(更准确说,应是筹算数学向文本符号数学发展的中断——引者注)。尽管蒙古统治者制定了若干数学政策,然而这些政策往往是对计算能力提出的要求。而单就计算而言,筹算优于文本,算盘又优于筹算。在此进路上,算盘代替筹算是再自然不过了。但是由此导致的更为严重的结果是,中国传统数学丧失了发展文本数学的契机,有明一代未走出实物数学。而离开数学文本语言,任何代数学或现代数学都无从谈起。
可以说,正是金和元对宋朝的两次侵略和民族压迫打断了中国数学发展的正常进程,导致算筹数学不能正常升级为文本符号数学。计算工具换代为算盘,数学语言却停留在算筹时代。这也解释了为什么传统数学看似在元初达到了高峰,之后却急速下坠,陷于停滞。
如果把中国数学比作一枚火箭,那宋代就已开启了发动机,火箭腾空而起。金的入侵导致北宋灭亡,发动机局部损坏,功率下降,到了元灭南宋,则发动机全部停机熄火。由于惯性,火箭仍不会直接下坠,而会继续往上升一段时间,一直升到最高点才下坠。这个过程也正是中国数学在宋金元时期的轨迹。到了元末,已谈不上像样的数学传承了。
元朝的大屠杀和贯穿始终的民族压迫政策对数学发展造成的破坏作用是值得探讨的一个问题。元初成就较大的几个数学家几乎都是北方汉人,而本来数学发达的南方却不见踪影。这和元的等级制中汉人(北方汉人)排第三等,南人排在第四等当有一定关系。
元统治者征伐各地进行屠城时,往往保留有实用价值的工匠,屠尽其他平民。数学家在他们看来无非一种可以利用的匠人,这可解释为什么元初郭守敬等能被起用。但也正因一切都不过服务于统治目的,尽管郭守敬本身才华卓越,理论上也有造诣,但他撰写的数学和天文著作却全部锁藏深宫,最后没有一本流传下来。
另一数学家朱世杰虽在民间游学授徒,但在民族压迫的大环境下,很难形成健康的渴求知识、发展学术的良性循环的氛围。尽管有记载说当时向朱世杰学习四元术的人很多,但历史事实表明,这种所谓的学习并未产生有效传承,人们的好奇心大多被民族压迫下的窘蹙焦虑遏制,最终,其成果被遗忘也就不足为奇了。
值得一提的是,元时期大量色目人来华,其间不乏天文数学专家,据李约瑟说,《几何原本》阿拉伯文版本甚至翻译本也已流入中国。如按正常轨迹,中国完全可从阿拉伯学到更为书面化的数学体系和西方公理演绎系统,但遗憾的是,这也没能实现。个中原因恐怕也和民族压迫时期人们的精神面貌变得麻木、狭隘、缺乏好奇心有关。这正如阿拉伯被蒙古侵略后,文明陷于停滞保守。薮内清也说:
蒙古人本身不是具有高度文明的民族,它没有积极起到相互介绍东西方文明的作用,可以说是把阿拉伯的影响限制到了最低限度。
我们承认数学在明代的落后,但也须认识到背后的历史原因。这不是明朝造成的,而是金和元对两宋的先后入侵以及残酷的民族压迫打断了传统数学发展的正常趋势,造成了算器和数学语言发展之间的严重脱节。
算法数学之美微信公众号欢迎赐稿
稿件涉及数学、物理、算法、计算机、编程等相关领域
稿件一经采用,我们将奉上稿酬。
投稿邮箱:[email protected]