元代算学的星空
元代算学的星空
十三世纪中叶,杭州西湖边的一间书坊里,雕版工匠正在雕刻一套新书的版片。书的主人是燕山(今北京)人朱世杰,他把毕生研习所得汇成三卷,题作《四元玉鉴》。其中第三卷"荚锥堆积"一门讨论的是把豌豆荚形状的立体一层层堆叠之后如何由总层数推算其体积,后世数学史家反复研读的正是这一类问题。要真正理解朱世杰的成就,不能只看《四元玉鉴》这一颗星,而要先把它放回十三世纪中国算学的整片星空之中,看清它从何处升起,又与周围的群星构成了怎样的关系。
把目光从杭州西湖南移至湖州,再西移至临安,北上看邢台,再折向燕山——这是十二世纪末至十四世纪初数十年的空间轨迹,也是理解"朱世杰何以写出《四元玉鉴》"必须经过的几处坐标。这一章要做的事情,是铺设出这片星空的轮廓:宋元之际的算学复兴由哪几股力量推动;秦九韶、杨辉、李冶三位先驱者在方法与题材上各自走出了怎样的路;他们留下的遗产如何被朱世杰收拢、推高,并在三卷书中凝结成一种前无古人的综合形态。
一、复兴的土壤:商业、印刷与士风的合流
宋代被许多经济史家称为"古代中国商业革命的高峰"。北宋都城汴梁(今开封)的夜市在三更之后仍有灯火,街市上出售的货物从南海的香料到北地的毛皮无所不包;南宋偏安东南,临安(今杭州)、明州(今宁波)、泉州、福州、广州五座沿海城市构成了庞大的海上贸易网络。商品流通需要度量,度量需要计算,这是最朴素的经济逻辑。从留存至今的宋代账簿、市肆条令和钞盐文书看,商人和税务官员每天面对的已经不是"鸡兔同笼"式的简单问题,而是大宗货物的折算、复利的近似、税额的累进——这些都要求算学超越《九章算术》时代的体例。
但仅有需求并不足以催生算学的高峰。宋代还有一个独特的推动力,即雕版印刷的成熟。北宋庆历年间(1041—1048)毕昇发明活字印刷,但真正对算学传播产生规模效应的,是更早已经普及的雕版印刷术。到了南宋,国子监、州县官学、书院乃至私人书坊,都在刊刻各种实用书籍。算书作为其中的一类,开始以前所未有的速度流通。秦九韶在《数书九章》自序中明确提到,他撰写此书时参考了多种前人算书,其中相当一部分就是通过书坊或私人刻本流传的;杨辉在杭州担任地方官的同时亲自编纂、刊刻算书,留下了"杨辉算法"这一系列刊本。没有印刷术,秦九韶可以写成书,但不可能被千里之外的杨辉读到并加以回应;朱世杰可以写下《四元玉鉴》,但它很可能像很多手稿一样湮灭无闻。印刷术使十三世纪的中国算学第一次具有了"学术共同体"的物理形态,书写出来的东西可以在数月之内送达另一位同行手中,并被批评、补充或反对。
第三股力量来自士人阶层的自我调整。宋代儒学经过周敦颐、邵雍、张载、二程(程颢、程颐)、朱熹的层层构建,形成了精密的"理学"体系。理学强调心性义理,对技艺性学问的态度一度较为淡漠,"玩物丧志"的警告在士人圈子里具有相当的约束力。但到了南宋晚期,一部分士人开始不满于理学的清谈空疏,转向"经世致用"的实学路径,关心水利、田赋、边事,也关心算学。秦九韶本人就是这一转向的代表,他在自序中明言,撰书的目的是使后世从事数学的人"因之予求之而有所得矣",强调算学对解决实际事务的价值。李冶在元初隐居封龙山下,拒不出仕,却把全部精力投入《测圆海镜》与《益古演段》的写作。在他看来,格物穷理既包括义理心性,也包括数学之理。商业需求、印刷术与经世致用思潮三者形成合流,为宋元算学的复兴提供了外部条件、思想正当性与传播载体。
二、群峰并立:秦九韶、杨辉与李冶的差异化贡献
在朱世杰登上算学舞台之前,十三世纪的中国已经出现了三位标志性的人物:秦九韶、杨辉、李冶。他们并非同一学派的师承弟子,而是分别从不同地域、不同问题、不同兴趣出发,各自推进了算学的某个面向。朱世杰的"集大成"位置,正是建立在这三座山峰所代表的差异性之上的。
秦九韶与《数书九章》
秦九韶(约1202—1261),字道古,普州安岳(今四川安岳)人,其父秦季槱曾任南宋地方官,本人亦历任多地职务,足迹遍及南宋东部沿海。他的代表作为《数书九章》(1247年成书),原名《数术大略》,后经明代刻本题为《数书九章》而通行至今。
《数书九章》共八十一问,分九大类。表面上看,这部书沿用了《九章算术》的体例,但实质上已经远远超出了《九章》的范围。它包含了大量来自水利工程、货币折算、田亩丈量、天文历法、营建城防、仓窖容量、测望山高的实际问题。其中"大衍总数术"一章给出了求解一次同余式组的一般程序,这是后世所说的"中国剩余定理"的最早完整叙述;另一章"正负开方术"则给出了求解任意次多项式方程的迭代算法,数值上等价于霍纳(William Horner)1819年才重新发现的方法。换言之,秦九韶在十三世纪已经掌握了今日代数教材中两个重要的基础工具。
秦九韶的方法之所以重要,在于他打通了"几何—代数"之间的若干障碍。求解一个几何问题——测量山高、计算河宽——他往往能把它转化为一个多项式方程,然后用"正负开方术"机械地求出根。这是一种程序化的求解思路,大大降低了特殊问题对特殊技巧的依赖。
不过《数书九章》也有明显的局限。它的体例仍是"问题—答案—术"的传统格式,每一问都是独立的具体问题,缺少系统化的方法论叙述。它的高次方程求解虽然在算法层面极为精巧,但由于缺乏符号化语言,运算过程完全靠文字和筹算记数来表达,这使得复杂方程的书写与传播变得困难。一个现代读者若想完整复原秦九韶的一次开方过程,需要极大的耐心和功夫。
杨辉与商业算术
杨辉(约1238—1298),字谦光,钱塘(今浙江杭州)人,曾任南宋地方官员,主要活动于杭州及周边。他的代表作有《详解九章》(1261)、《日用算法》(1262)、《乘除通变算宝》(1274)、《田亩比类乘除捷法》(1275)、《续古摘奇算法》(1275)等,合称"杨辉算法"。
与秦九韶的官宦学者气质不同,杨辉的兴趣更贴近市井生活。他的《日用算法》和《乘除通变算宝》专门讨论商贸、田亩、仓窖、利息等问题中的乘除捷法,其中包括后世所称的"杨辉三角"(贾宪三角的延伸),即二项式系数表;也包括各种化多为少的乘除算法,例如"以斤求两"的双单位换算、"垛积求和"的层叠求和问题。他的工作直接面向中下层识字人群——账房先生、小吏、商人——这与秦九韶的高次方程形成鲜明对比。
杨辉的局限在于,他对算学方法的"技巧化"远胜于"理论化"。"以斤求两"的口诀虽然便于记忆和传播,但不利于从中提炼出更一般的代数结构。换言之,杨辉的工作保存了算学的实用层面,却没能把它推向更抽象的方向。
李冶与天元术
李冶(1192—1279),原名李治(避清雍正讳改),字仁卿,号敬斋,真定栾城(今河北栾城)人,金元之际的北方学者。他早年进士及第,曾任金朝地方官;金亡后隐居河北封龙山下,数十年间讲学著述。他的代表作为《测圆海镜》(1248)与《益古演段》(1259)。
李冶对算学史最重要的贡献,是系统化地建立了天元术。所谓天元术,即在筹算中设立一个"天元"代表未知数,围绕这个未知数建立多项式方程,把几何问题翻译成方程,再对方程求解。"立天元一"这一步骤在功能上等价于"设未知数为x",它使宋元算学第一次拥有了自己的符号代数范式,虽然它不像今天的x那样用字母表示未知数,但在筹算盘上"天元"是一个明确的、操作上等价于符号的位置。
李冶在《测圆海镜》中讨论了十几个关于"勾股容圆"(直角三角形内切圆)的问题,每一个都通过天元术建立方程并求解,展示出几何—代数转换的威力。他有意识地把方法论与具体问题分离,使天元术成为一种可以反复使用的工具,而非仅限于一个特殊问题的技巧。这是与秦九韶、杨辉都不同的取向:秦九韶的"术"嵌入在每一问的具体叙述中,杨辉的"术"分散在各种实用口诀里,李冶的"术"则被独立地提炼出来,成为一套方法论。
李冶的局限是双重的。一方面,他的天元术仍局限于一元,只能处理一个未知数;另一方面,他虽把天元术系统化,但其表现力受制于单一未知数,无法处理同时含有多变量的几何或物理问题。
三、方程传统的累积:从仰观台到荚锥堆积
上述三人的工作有一个共同的技术交集,即多项式方程的构造与求解。理解了这条传统的纵向累积,才能看清朱世杰何以在《四元玉鉴》中把它推向四元。
秦九韶《数书九章》中有一类以"营建"为题的问题,讨论亭台楼阁的工程量。例如"造仰观台"问:拟造一座仰望天象的高台,底层由若干方砖铺成,每上一层比下一层各边各收若干寸,台共若干层,问共需方砖几何?这是典型的"垛积"问题,把方砖按层堆叠成台,求总体积或总块数。
这类问题之所以棘手,在于总块数与层数、底层尺寸、收分比例之间的关系不是简单的线性或二次函数,而是一个三次甚至四次多项式。秦九韶给出的解法,是把总块数视为未知数,通过几何关系列出方程——例如,设总块数为x,根据已知条件得到形如 $ax^4 + bx^3 + cx^2 + dx + e = 0$ 的四次方程(系数可正可负),然后用"正负开方术"机械求解。整个过程的核心是"列方程"与"开方求解"两步:前一步需要把几何问题翻译成代数表达式,后一步需要一套能在筹算盘上反复迭代的算法。秦九韶两者兼备,这就是"造仰观台"一类问题能够被精确求解的原因。
李冶的天元术使"列方程"这一步发生了质变。在秦九韶那里,列方程主要依赖问题的特殊几何结构,每一问的方程都不一样,没有统一的程式;在李冶那里,"立天元一"成了开场的固定动作,方程的建立过程被标准化了。到了《益古演段》中,李冶进一步把天元术应用于"益古"(即古代继承问题)这一传统题材,展示出方法的可移植性。
朱世杰的《四元玉鉴》把这一传统向前推进了一大步。他把"天元"从一个扩展到四个,这就是所谓的四元。任意两个未知数之间的乘积——例如"天"乘"人"、"地"的平方——都可以出现在同一个方程中。这意味着,多个相互关联的未知量可以同时被纳入一个方程体系,而不必像前人那样逐个求解、再代回。这是从一元代数到多元代数的关键跨越。
《四元玉鉴》卷三的"荚锥堆积"问题尤其值得关注。这是朱世杰以垛积术为基础设计的一组高难度题目:把若干"荚锥"(一种两端尖、中间宽的立体)按层堆叠,层数、形状参数与总体积之间的关系通过一个含两个或三个未知数的高次方程刻画。这一问题的"算法精神",即把堆叠的体积问题转化为方程求解,与秦九韶造仰观台一脉相承;但其方程的复杂程度(多变量、高次、非线性)已经远超秦九韶和李冶。这正是朱世杰"集大成"的具体含义:他既继承了秦九韶的"开方术"程序,又继承了李冶的天元术方法论,再叠加杨辉算学中积累的垛积求和公式,把它们综合进一套能够处理四元高次方程的全新范式。
下面这张图试图把这种累积关系勾勒出来:
```mermaid flowchart LR QJS[秦九韶1247数书九章] --> KFF[正负开方术] QJS --> DYS[大衍总数术] YH[杨辉1261详解九章] --> JF[乘除捷法与垛积] LY1[李冶1248测圆海镜] --> TY[天元术] LY2[李冶1259益古演段] --> TY TY --> YYF[一元方程范式] KFF --> YYF JF --> ZSJ1[朱世杰1299算学启蒙] TY --> ZSJ2[朱世杰1303四元玉鉴] YYF --> ZSJ2 JF --> ZSJ2 DYS --> ZSJ1 ```
阅读这张图时需要注意的是,箭头不是"师承",而是"技术前驱关系"。朱世杰与秦、杨、李并无直接师生关系,但他的每一项关键技术,都能在前人著作中找到对应的端点。他不是孤立的高峰,而是这条技术累积曲线的当下最高点。
四、朱世杰的位置:集大成者与超越者
把这片星空的轮廓描绘清楚之后,我们可以为朱世杰标定一个更精确的坐标。
他的第一部著作《算学启蒙》刊行于1299年,共三卷二十门,内容从九九乘法一直到天元术,是一部完整的算学入门教材,几乎把前面四十年间积累的所有方法都按教学逻辑重新组织了一遍。这部书的重要性在于,它把秦九韶、杨辉、李冶三人的工作系统地"翻译"成可教的程式,使一个普通的习算者只要下几年功夫,就能掌握当时最先进的方法。在某种意义上,《算学启蒙》是宋元算学的"标准化教材",它的出版本身就是对学术共同体的重大贡献。
《四元玉鉴》则是朱世杰个人创造的集中爆发。它不是在《算学启蒙》基础上的简单加码,而是从一元扩展到四元,推到了当时代数能够抵达的边界。具体而言,《四元玉鉴》给出了四元方程的消元法:从四个未知数的方程消去两个,得到两个未知数的新方程,再消去一个,得到一元方程,最后用"正负开方术"求解。这种"逐步消元"在概念上接近于十九世纪西方代数中的结式理论,在技术上则完全是中算家自创的程序。
朱世杰另一个超越前人的贡献,在于垛积招差,亦即用有限差分方法求高阶等间距数列的通项。他在《四元玉鉴》卷中给出的"招差术"公式,等价于现代数学中的牛顿向前差分公式,这意味着他能用代数方法处理任何等间距的离散数据序列。这一技术后来被元代晚期和明代的历算学者使用,成为天文历法计算中的标准工具之一。郭守敬《授时历》(1280年定稿,1281年颁行)中的某些算法,就被学者认为与朱世杰的招差术有亲缘关系——尽管两人是同时代人,具体的思想传播路径尚待研究,但数学工具的并行出现本身,就反映了十三世纪中国算学所积累的成熟度。
把这两项贡献——四元消元与垛积招差——放在十三世纪中国算学的整体格局中看,会发现一个清晰的事实:朱世杰既不是凭空出现的奇才,也不是前人工作的简单继承者。他既是集大成者,整合了秦、杨、李三家的成果;又是超越者,把四元高次方程和招差术推到了当时世界范围内未见的深度。
不过,这里需要做一个冷静的判断。《四元玉鉴》在它诞生的时代并未被广泛理解。朱世杰之后,真正能够完整阅读这部书并加以注释的人极少——元代只有几位,明代几乎没有,清代罗士琳直到十九世纪才给出较完整的校释。换言之,《四元玉鉴》是一座"高于周围建筑"的尖塔,但其后续影响在中国本土是断断续续的;它的真正"复活",是在二十世纪之后,数学史家把它纳入全球数学史框架之后才发生的。
这是后续章节要处理的一个核心张力:朱世杰的成就如此之高,为什么它没有像欧几里得《几何原本》那样成为持久的范式?线索的一部分在《四元玉鉴》本身——其方法的程序化程度虽高,但缺乏公理化结构;线索的一部分在中国学术体制本身——宋元之后印刷术虽在,但算学在科举和官学中的地位反而下降,失去了制度性的传承载体;线索的另一部分在外部——同期伊斯兰世界和文艺复兴前后的欧洲,正在以不同的方式推进数学,而这些信息尚未传到朱世杰手中。这些,我们将在下一章展开。
本章小结
回到开篇提出的问题——朱世杰《四元玉鉴》出现的土壤是什么?这一章给出的回答可以概括为三条线索。
第一,十三世纪中国处于商业革命的鼎盛期,实用的算术与代数方法有广阔的应用场景,这构成了外部需求。第二,雕版印刷的成熟,使算书能够在全国范围内流通,秦九韶、杨辉、李冶三人虽身处不同地域,却能彼此了解对方的工作,形成了事实上的学术共同体。第三,南宋末至元初,部分士人转向经世致用的实学路径,把算学视为格物穷理的一部分,为数学家提供了思想上的正当性。
正是在这样的背景下,秦九韶、杨辉、李冶三人从不同方向推进了算学:秦九韶贡献了"正负开方术"与"大衍总数术"两大程序化工具,杨辉贡献了商用算术与垛积公式,李冶贡献了天元术这一一元符号代数范式。朱世杰的工作建立在三者的累积之上,通过《算学启蒙》把他们的方法标准化,通过《四元玉鉴》把它们综合推进到四元高次方程与有限差分方法。
接下来要追问的是:朱世杰的《四元玉鉴》究竟包含了哪些具体的方法?它如何在卷次安排上组织这些方法?它的"四元"与"消元"在程序上究竟是怎样运作的?这些问题将在下一章——《四元玉鉴》的方法解剖——中逐一展开。