古代中国数学家喜欢将某些定理、公式、解题方法称为某某术。
比如说,勾股定理叫作“勾股术”,负数运算法则叫作“正负术”,通过矩阵变换求解方程组的算法叫作“方程术”,巧用完全平方公式手动开平方的算法叫作“九章开方术”,用三边长度计算三角形面积的公式叫作“三斜求积术”,用相似三角形性质进行测量的方法叫作“重差术”。
勾股术、正负术、方程术、重差术、三斜求积术......听上去很神秘,看上去很玄妙,仿佛武侠小说里的摄心术、点穴术、轻功提纵术、左右互搏术、传音入密术、飞花摘叶术、分筋错骨手、壁虎游墙功、降龙十八掌、九阴白骨爪等武功,有强大的实用性和杀伤力。事实上,这些定理、公式和解题方法虽说没有杀伤力,但确实跟武功一样实用。
我们再看古代中国数学家独创的另一门“武功”——四元术。
话说《射雕英雄传》第二十九回,郭靖背着身受重伤的黄蓉,闯进瑛姑隐居地,瑛姑正聚精会神为55225这个数字开平方。瑛姑尚未算完,黄蓉随口报出答案:235。瑛姑以为黄蓉瞎猫撞上死耗子,又让黄蓉给34012224这个数字开立方。黄蓉还是脱口而出:324。瑛姑不服,将郭靖与黄蓉领进里屋,只见地板上铺满细沙,细沙上画着许多横平竖直的符号和大大小小的圆圈,还写着“太”“天元”“地元”“人元”“物元”等字样。面对这些符号和文字,郭靖如对天书,黄蓉却毫不费力地看懂了。不但看懂了,黄蓉还能快速求解。
原文写道:
“黄蓉从腰间抽出竹棒,倚在郭靖身上,随想随在沙上书写,片刻之间,将沙上所列的七八道算题尽数解开。”
瑛姑写在细沙上的那些符号和文字,到底是什么东西呢?金庸先生有注解:“即今日代数中多元多次方程式,我国古代算经中早记其法,天、地、人、物四字,即西方代数中X、Y、Z、W四未知数。”
金庸说的对吗?对了一半。天元、地元、人元、物元,确实代表方程里的未知数;但在一个或一组方程里写下天、地、人、物四字,只表明该方程是多元方程,并不表明其是多次方程。
另外,用天、地、人、物表示未知数,是元朝数学家朱世杰发明的,用来表示四元及四元以下的多元方程,数学史上称为“四元术”。黄蓉和瑛姑生活在宋朝,宋朝虽然也有四元方程,甚至还有更多元的方程,但却没有出现四元术。宋朝人列方程,还是习惯于像汉唐时期的数学家一样,将方程列成矩阵形式,矩阵里只有未知数的系数和常数项,没有未知数。所以,瑛姑在沙地上列的那些方程,应该只有数字,没有文字。就算有文字,也不会“超前”到使用天、地、人、物等文字。
朱世杰发明四元术,最初也不是为了列多元方程,而是想用简便方法推导出“黄方”的边长。黄方又是什么东西呢?它是在直角三角形里画出的最大正方形(图6-1)。
随便画一个直角三角形,并在里面画出黄方。设这个直角三角形的两个直角边长度分别为a和b,斜边长度为c,再设黄方的边长为x。由图6-1可知,黄方的面积为x2,加上两个小直角三角形△CDE和△EFB的面积,就是大直角三角形△CAB的面积。△CDE的底为x,高为a-x;△EFB的底为b-x,高为x;△ABC的底为b,高为a。列出方程:
化简这个方程,将x2约去,可得:
这是用代数法推导黄方边长,所列方程包括四个未知数:x、a、b、c。推导之后,黄方边长x等于直角三角形三边长度a、b、c组成的一个代数式。整个推导过程并不复杂,学过初中数学的小朋友就能独立完成。
可朱世杰是古人,他没见过西方代数,不可能用x表示黄方边长,用a、b、c表示直角三角形的三个边。如果不使用未知数,直接加减乘除和乘方,整个推导过程将变得异常复杂,并且很容易出错。于是乎,朱世杰采用了一个非常天才的办法——用天、地、人、物这四个汉字,分别代表黄方边长和直角三角形的三边。他用汉字列出方程,再化简方程,最终得到了正确的推导结果。在推导黄方边长的过程中,朱世杰尝到了用多个汉字表示多个未知数的甜头,所以他把这个方法推而广之,发明了四元术。
朱世杰著有《四元玉鉴》一书(图6-2),用“太”表示常数项,用“天元”“地元”“人元”“物元”表示未知数,偶尔也用“甲”“乙”“丙”“丁”表示未知数。用这些汉字表示未知数,不仅能列出四元方程,也能列出三元、二元和一元方程。
我们解多元方程,通常需要列出方程组,有多少个未知数,方程组里就要包含多少个方程。朱世杰擅长用多元方程解决三角学问题,未知数是直角三角形的边长和黄方的边长,这些未知数之间存在着紧密的数量关系,只要祭出勾股定理和黄方公式即前面推导出的黄方边长公式这两大武器,就能将多元a+b方程化简成一元高次方程。单个的多元方程也许无法求解,变成一元方程以后,求解就简单多了。
以《四元玉鉴》收录的一道方程题为例:“今有直邑,不知大小,各开中门,只云南门外二百四十步有塔。人出西门,行一百八十步见塔。复抹邑西南隅,行一里二百四十步,恰至塔所。问邑长阔各几何?”
翻译成现代汉语,说有一座长方形的城池(图6-3),长短未知,在东西南北四堵城墙的中段,各开一个城门,其中南门向南240步有一座塔。某人从西门向西走,走180步,能看到南门外那座塔;又从城池西南角出发,向东南走1里240步(秦汉以降,1里为360步),恰好走到那座塔下。请问城池的长度和宽度各是多少呢?
首先统一单位,1里240步等于600步。然后画出示意图(图6-3),在城池正中央选定一个点,设该点到北门的距离为天元,到西门的距离为地元,则天元的2倍即为城池南北长度,地元的2倍即为城池东西长度。由题意,从西门西行180步到某点能看到南门外那座塔,设从该点到城墙西南角的距离为人元。根据勾股定理,列出方程:
(180+地元)2+(240+天元)2=(600+人元)2
孤苦伶仃一个方程,却含有天元、地元、人元三个未知数,怎么解?原则上没法解。好在这些未知数分别都是直角三角形上的线段,能逐步推算和化简。朱世杰将这个三元方程化简成了一元高次方程:
天元4+480×天元3-270000×天元2+15552000×天元+1866240000=0
再用前代数学家贾宪、杨辉、秦九韶等人发明的“增乘开方术”“释锁开方术”“正负开方术”求解,解得天元=240。将天元=240代入原方程,又算出地元=180。因为城池南北长度是天元的2倍,东西长度是地元的2倍,所以这座城长宽分别为480步和360步。
需要说明的是,朱世杰没有见过阿拉伯数字,他用四元术列出来的方程,绝对不是我们书写的这个样子,而是用算筹符号表示数字,用算筹位置表示乘方。他列出来的多元方程,正像金庸先生描写的那样:“细沙上画着许多横平竖直的符号,和大大小小的圆圈。”那横平竖直的符号就是算筹符号,那大大小小的圆圈则是占位符,近似于现在的0。
