九章格数学 PhiloMath · 数学家的故事绘本 · 第三辑

李善兰 · 垛积与尖锥

第 27 册 · 数学家的故事 · 第三辑 · 1811—1882 · 中国浙江海宁 · 明线:垛积 · 尖锥求积术 · 译《几何原本》后九卷 · 数根 暗线:从「术」到「理」
明线 · 垛积 · 尖锥 · 译书暗线 · 把算法收进道理里1811—1882 · 中国全龄通识 · 三层可读
题解这一册怎么读p.2

李善兰,字壬叔,号秋纫,浙江海宁人,1811 年生,1882 年卒于北京。他没有进过京师做官,没有出过洋,也没有拜过一位数学名家为师;大半生在乡间教书、在书铺里访书、在灯下演草,却在四十岁前后,把中国算学里最有生命力的两样东西——垛积与尖锥——推到了当时世界的水准线上。

本册的明线是四样。第一样,垛积:酒坛、米袋、棋子一层层堆起来,堆成一个三角形、一个方锥形,一共多少?他在《垛积比类》里给出一整套算法,把「一层层加起来」变成了公式。第二样,尖锥:一条曲线下的面积,可以看成无数条越来越短的线叠成的一个「尖锥」,他在《方圆阐幽》里用这个图像算出了幂函数的面积、算出了对数的级数——比微积分正式传入中国早了四十年。第三样,译书:他与伟烈亚力合译《几何原本》后九卷,补齐了徐光启留下的那半部书;又译《代数学》《代微积拾级》《谈天》,微分、积分、函数、级数这些词,就是他在这一步定下来的。第四样,素数:他在《考数根法》里讨论怎样判别一个数是素数还是合数,把数论问题带进了中国算学的视野。

暗线一句:从「术」到「理」。中国算学擅长给出可用的算法,李善兰做的事,是追问算法背后那个统一的道理——为什么三角垛的和总是某三个数相乘再除以六、为什么尖锥的积总是底乘高再除以一个整数;他把一堆看似各管一段的「术」,收进少数几条「理」里。他译书时坚持用「微分」「积分」这样的意译,也正是这个念头:学问要能长在自己的语言里。

本册分五幕:第一幕讲海宁的少年怎样从一部《九章算术》走到《垛积比类》(p.6—p.12);第二幕讲尖锥求积术(p.13—p.19);第三幕讲墨海书馆与三部译书(p.20—p.26);第四幕讲同文馆、素数判定与晚年(p.27—p.33);第五幕讲《则古昔斋算学》与他的身后(p.34—p.40)。

三层读法照旧:故事层无需预备知识;数学层只用到整数四则、乘方与简单的分数运算(p.7—p.9、p.14—p.16、p.21—p.23、p.28—p.30、p.35—p.37),每一步都从头展开;注疏层给出文献、卷次与版本源流,逐页可查。

引子书架上的一部《九章》p.3

嘉庆十五年冬,浙江海宁硖石镇的一户人家添了一个男孩,取名心兰,后改善兰,字壬叔。海宁在清代是文风极盛的地方,藏书之家多,书铺也多;王家算不上大户,但家塾里有一架供学子翻检的旧书。

据李善兰晚年自述,他十岁那年在架上翻到一部《九章算术》,读过之后以为「可不学而能」。这句话不是夸口——一个十岁的孩子当然不可能真懂《九章》,他懂的是那种口气:题目摆出来,答案算出来,中间不必绕弯。「可不学而能」五个字,说的是这部书的性格:它把学问做成了手艺。

《九章算术》成书于汉代,全书二百四十六道题,分方田、粟米、衰分、少广、商功、均输、盈不足、方程、勾股九章。每一章都是官府与民间要用的事:量田、换粮、分钱、开方、算土方、派徭役、算盈亏、解方程组、量距离。没有一道题是为了「有意思」而出的,可每一道题都把一类问题的算法逼了出来。

十四岁那年,他又读到一部更让他吃惊的书——《几何原本》的前六卷,徐光启与利玛窦在 1607 年译出的那半部。这部书的写法与《九章》完全不同:先立界说,再列公论,然后一条一条推下去,后一条压着前一条。一个少年同时读到这两种书,日后做事的路子大概就定了:既要能用,又想知道为什么能用。

这册的故事,从这两部书之间开始。

引子无人可师的二十年p.4

从十四岁到三十四岁,李善兰没有离开过浙江。他在海宁、嘉兴、杭州一带教书、做幕、访书,靠一份塾师的束脩养活自己。这二十年里,他做的是一件当时很少有人做的事:把中国算学从头到尾读一遍,再算一遍。

他读的书单后世大体可以复原:《周髀算经》《九章算术》《孙子算经》《张丘建算经》,这是源头;秦九韶《数书九章》、李冶《测圆海镜》《益古演段》,这是宋元的高峰;梅文鼎的《历算全书》,这是清初的集大成;再加上明末传入的《几何原本》前六卷与《同文算指》。这份书单里有一个断口:宋元数学家最漂亮的那部分——天元术、四元术、垛积、招差——在明代几乎失传,清代学者是从残本与注文里一点点把它们拼回来的。

李善兰读书有个习惯:读一部,就用自己的话把里面的算法重写一遍;重写不通的地方,就是原著有错、或者自己没懂的地方。他把这种练习叫「演草」。据他自己说,二十几岁时演草积了几十册,多数后来散失了。这种笨办法练出来的,是别人没有的两样东西:一是对算式的直觉,二是敢改古书的底气。

与他来往的同道有顾观光、汪曰桢、张文虎等人,都是江南一带精于算学、兼通经史的读书人。他们没有学院,没有刊物,靠借书、抄书、通信联成一个圈子。1845 年,李善兰三十四岁,把自己这些年最要紧的三件东西写成三本薄书,一次交了出来。

引子两件事:堆起来,切开看p.5

后人在李善兰的著作里看到两条主线,一条通向他最出名的《垛积比类》,一条通向《方圆阐幽》。两条线的起点都在很日常的地方。

第一条线:堆起来。粮仓里的米袋一层压一层,最上一层一只,第二层三只,第三层六只,第四层十只——每一层都是一个三角形,每往下一层多一排。一共多少只?这样的堆放法在漕运、仓储、军营里天天出现,古书里叫「垛」。北宋沈括在《梦溪笔谈》里算过酒坛的堆法(他叫「隙积」),元代朱世杰在《四元玉鉴》里把垛积做成了一整套学问。李善兰要做的,是把这套散落的算法收成一条公式。

第二条线:切开看。一块曲边图形的面积怎么算?古人的办法是「割圆」——把圆割成很多小三角形,割得越细越接近。刘徽用割圆术算出了圆周率的近似值,祖冲之把它推到小数点后七位。可割圆只能对付圆和圆弧,碰上抛物线、双曲线下的面积就没办法了。李善兰换了一个图像:把这块面积看成无数条竖线并排站着,线一条比一条短,短到最后收成一个点——形状像一个尖锥。他把这个图像叫「尖锥」。

两条线看起来各管一段:一条数个数,一条算面积。李善兰后来发现,它们其实是同一件事的两种说法——垛积是「离散地加」,尖锥是「连续地加」,加的是同一串数,只是中间那一步有没有跨过去。这个发现,是这册书里最要紧的一处转折。

第一幕 · 故事在一部残本里找回一门学问p.6

道光年间,江南的书铺里能买到的算书,大致分两类:一类是《九章》《孙子》这样的古本,好找;另一类是宋元人的著作,难找,而且多半残缺。朱世杰的《四元玉鉴》在清代已是稀见之本,李冶的《测圆海镜》稍好一些,也常有缺卷。李善兰要读的,正是后面这一类。

《四元玉鉴》成书于元大德七年(1303),全书三卷二百八十问,最要紧的是「四元术」——一次设四个未知数,列四个方程,再消成一个。书里还有大量垛积问题:茭草垛、果子垛、酒坛垛,一层层堆起来问总数。这些题目在明代几乎无人能读,因为「天元」「四元」的布算格式失传了,剩下的只是看不懂的记号。

李善兰读《四元玉鉴》读了很多年。他先从《测圆海镜》入手——那部书讲的是勾股容圆,细密而完整,可以用来反推天元术的布算规则;再把规则拿去解《四元玉鉴》,一句一句地对。这种读法很慢,慢到一年只能啃下几十问,但它能把失传的东西重新长出来。

1848 年,他把这些年算过的垛积问题整理成四卷,题名《垛积比类》。「垛积」是题目,「比类」是方法——把形状不同、层数不同的堆垛,按「第几乘」分成类,一类给一条公式。这部书后来被公认为中国垛积术的集大成之作,也是他一生最早成熟的作品。

第一幕 · 数学三角垛:一层一层加下去p.7

先看最简单的一种堆法。米袋一层层码成三角形:最上一层 1 袋,第二层 3 袋(排成 1+2),第三层 6 袋(1+2+3),第四层 10 袋。第 k 层的袋数,就是前 k 个自然数之和:

第 k 层 = 1 + 2 + … + k = k(k + 1) ÷ 2

四层加起来:1 + 3 + 6 + 10 = 20。若堆十层,一层层加:1、3、6、10、15、21、28、36、45、55,总和 220。层数一多,逐层加就笨了,古人要的是直接算出总数的公式。

公式是:

Sn = n(n + 1)(n + 2) ÷ 6

验算一:n = 4,4 × 5 × 6 ÷ 6 = 20,与逐层加的结果一致。验算二:n = 10,10 × 11 × 12 ÷ 6 = 220,也一致。再看 n = 5:5 × 6 × 7 ÷ 6 = 35,而 1+3+6+10+15 = 35。

这条公式为什么成立?李善兰的写法是「比类」:三角垛的第 k 层是「一乘垛」,它的和必定是三个连续整数相乘再除以六。他不是先猜公式再验算,而是从「层与层之间的差」一步步推出来——第 k 层与第 k−1 层的差是 k,而 k 本身又是一个等差垛的和。一层套一层,套到最外层,就套出了这三个连续整数。

第一幕 · 数学四隅垛:平方数的和p.8

换一种堆法:每层排成正方形。第一层 1 只,第二层 4 只(2×2),第三层 9 只(3×3),第四层 16 只,第五层 25 只。第 k 层就是 k × k,整垛的总数是前 n 个平方数之和。古书叫它「四隅垛」,因为每层四角各有一只,四面是斜边。

五层加起来:1 + 4 + 9 + 16 + 25 = 55。十层则是 385。公式是:

Sn = n(n + 1)(2n + 1) ÷ 6

验算:n = 5,5 × 6 × 11 ÷ 6 = 55;n = 10,10 × 11 × 21 ÷ 6 = 385。两处都对得上。

再看一种:每层排成正方体。第一层 1 只,第二层 8 只,第三层 27 只——第 k 层是 k 的立方。四级立方垛的总和 1+8+27+64 = 100,恰好是 (1+2+3+4)2 = 100。立方垛的和等于「和之平方」,这条漂亮的关系古书早已记下,李善兰把它排进了自己的分类表里。

三座垛摆在一起,规律就露出来了:一乘垛(三角)的和是三个数相乘除以六,二乘垛(四隅)的和也是三个数相乘除以六,只是中间那个因子从 n+1 换成了 2n+1。除数总是六,因子按「乘数」变化——这不是巧合,李善兰要的就是这条线索。

第一幕 · 数学一条公式收尽所有垛p.9

把所有垛排成一张表,规律就清楚了。这张表就是贾宪三角(后世又称杨辉三角),每一行两端为 1,中间每个数等于肩上两数之和:

1  1 1  1 2 1  1 3 3 1  1 4 6 4 1  1 5 10 10 5 1

斜着看:1+3+6+10 = 20;而在下一行,与 10 相邻的那个数是 20。再看:1+4+10+20 = 35,下一行相邻的数是 35。这条「斜列相加等于下一个」的规律,就是垛积的总纲。

写成公式:设第 k 层的数为 C(k+p−1, p)(即从 k+p−1 个里取 p 个的组合数),则

Σk=1n C(k+p−1, p) = C(n+p, p+1)

试三个 p 值。p = 1:左边是 1+2+3+…+n,右边是 C(n+1, 2) = n(n+1)/2,正是三角垛的层数。p = 2:左边 1+3+6+…,右边 C(n+2, 3),正是三角垛的总数——n = 10 时为 C(12,3) = 220,与 p.7 逐层加的结果相符。p = 3:右边 C(n+3, 4),n = 10 时为 C(13,4) = 715。

一条公式,把三角垛、四隅垛、立方垛以及古书里叫不出名字的几十种垛全部收进去了。这是《垛积比类》真正的位置:它不是在添新题,而是给旧题找到了一个共同的根。

第一幕 · 暗线考据学养出来的一代算家p.10

李善兰不是凭空出现的。他背后站着一场持续了一百多年的学风——乾嘉考据学。清代学者为了读通经书,把工夫下在校勘、辑佚、音韵、历算上;读经要读其中的天文历法,于是算学被当成「实学」捡了回来。

乾隆年间编《四库全书》,戴震从《永乐大典》里辑出《九章算术》《海岛算经》等久已失传的算书,写下《算经十书》;此后阮元编《畴人传》(1799),为历代天文算学家立传,第一次把「算学」当成一条独立的学脉来叙述。到李善兰成年时,江南的读书人圈子里,懂算学已经不再是怪癖,而是一种体面。

但考据学有一个天花板:它擅长把古书读对,不擅长把学问往前推。辑出一部宋元算书,校勘得字字有据,就算大功;至于书里的方法能不能用到新问题上,通常不在考虑之内。李善兰起初也在这条路上:他校《四元玉鉴》、注《测圆海镜》,做的都是「把古人的话读通」。

转折发生在他把垛积问题重算了一遍之后。他发现古书给出的答案虽然对,理由却常常是「如此如此,试之皆合」——合了,但不知道为什么合。他于是往前迈了一步:不只问「多少」,还要问「为什么是这个数」。这一步迈出去,考据之学就变成了创造之学。

第一幕 · 交汇一垛米与一串数p.11

把这一幕的两端摆在一起看:一端是粮仓里的一垛米,一端是纸上的一个数阵。中间隔着的,是一次视角的转换。

仓库里的人关心的是总数:这垛米有多少袋,够不够装船。他不需要公式,一层层数完就行;层数多了,数得慢一点,但总能数完。算学家关心的是关系:这一垛与那一垛,为什么总数都是三个数相乘再除以六?如果换一种堆法,除数会不会变?

李善兰做的,是把「数完」变成「算完」。这一步的意义不在于快——古代中国的仓吏并不缺时间——而在于一旦写成公式,问题就可以被搬走:搬到别的形状上(方垛、立方垛),搬到别的层数上(任意 n),搬到别的学问里去(下一幕的尖锥)。

他给这套办法取名「比类」。「比」是比较,「类」是分类:先把垛按形状分成类,再在类与类之间比较,找出那个不变的因子。这个方法后来被他用在了更抽象的对象上——曲线下的面积、对数的级数。所以这一页不是一个仓库故事,而是一整套方法论的起点。

第一幕 · 小结这一幕在讲什么p.12
✦一 点 微 光

一、一个人。李善兰十岁读《九章》,十四岁读《几何原本》前六卷,此后二十年自学不辍,靠「演草」练出了对算式的直觉。

二、一门学问的残本。宋元算学在明代散失,清代学者从残本里把它拼回来。李善兰读《测圆海镜》《四元玉鉴》,读法是把失传的布算规则重新推出来。

三、三座垛与一条公式。三角垛的和是 n(n+1)(n+2)/6,四隅垛是 n(n+1)(2n+1)/6,立方垛是 [n(n+1)/2]2;三者被 ΣC(k+p−1,p) = C(n+p,p+1) 一条公式收尽。

四、一次转身。考据学把古书读对,李善兰要问的是为什么对。从「多少」到「为什么是这个数」,中国算学在这里拐了一个弯。

下一幕,他把同一套「比类」的办法,用在了一条曲线下的面积上——那就是尖锥。

第二幕 · 故事三本薄书,一年刻成p.13

道光二十五年(1845),李善兰三十四岁,把三部书稿交给书坊刻印:《方圆阐幽》一卷、《弧矢启秘》二卷、《对数探源》二卷。三部书都很薄,合起来不到十万字;但它们是同一个想法的三次试验。

《方圆阐幽》讲的是「方」与「圆」怎样互相转化——用尖锥术处理圆内接多边形与圆的面积关系。《弧矢启秘》讲弧与矢(弓形的弦与高)之间的换算,把三角学里的弦表、矢表用尖锥重算一遍。《对数探源》讲对数:为什么一张对数表可以用一个级数算出来。三本书的对象不同,用的却是同一件工具——尖锥。

刻书的过程并不顺利。李善兰当时没有官职,也没有富商资助,刻资靠友人凑;他自己校字、自己画图,据说连版式都亲自排过。书刻成后流传不广,几十年间只在江南算学家的小圈子里转抄。直到《则古昔斋算学》合刊,这三部书才被更多人读到。

但它们的命运很快就变了。1850 年代,来华的传教士与洋员中有人读过这几部书,惊讶地发现:这个没有出过国的中国读书人,用一套自己的图像,做出了与微积分同向的结果。这个评价后来成了李善兰进入墨海书馆的敲门砖。

第二幕 · 数学尖锥:把面积看成一层层的线p.14

要求一块曲边图形的面积,先要给它找一个「可算的形状」。李善兰找的形状是尖锥——一排竖线并排站着,高度从左往右按某种规律递减,减到右端收成一点。这些线排得越密,尖锥就越接近那块曲边图形。

他按「线的长短怎么变」给尖锥分类。如果第 k 条线的高是底边上对应长度的一次方,就叫「一乘尖锥」;是平方,叫「二乘尖锥」;是 n 次方,就叫「n 乘尖锥」。记号很朴素,意思是「高度按几次方变化」。

举一个具体的:底边长 3、左端最高 9,高度按平方递减——左端 9,中间 2.25(即 1.5 的平方),右端 0。这条曲线就是抛物线 y = x2 在 0 到 3 之间的那一段。它是一个二乘尖锥。

关键问题:这样的尖锥,面积是多少?李善兰给出的答案是「底 × 高 ÷ (乘数 + 1)」。二乘尖锥,就是底乘高再除以 3:9 × 3 ÷ 3 = 9。而用今天的积分验算,∫03 x2 dx 也正好等于 9。

他凭什么得到这条法则?靠的是垛积。把尖锥切成许多薄片,每一片的面积近似是一个小矩形;这些矩形的面积排成一列数,恰好就是一个垛积数列。切片越薄,数列越长,而这个数列的和有公式——他在第一幕里已经算熟了。尖锥与垛积,在这里扣上了。

第二幕 · 数学尖锥求积术:一条法则,四次验算p.15

尖锥求积术:若一个 n 乘尖锥的底为 b、高为 h,则它的面积为

S = b × h ÷ (n + 1)

验算一(一乘尖锥,即三角形):底 4、高 3,线高按一次方递减,形状是一个直角三角形。公式给 4 × 3 ÷ 2 = 6;三角形面积公式给 4 × 3 ÷ 2 = 6。一致。

验算二(二乘尖锥,即抛物线弓形):底 3、高 9,y = x2。公式给 3 × 9 ÷ 3 = 9;积分给 ∫03 x2 dx = 27/3 = 9。一致。

验算三(三乘尖锥):底 3、高 27,y = x3。公式给 3 × 27 ÷ 4 = 20.25;积分给 81/4 = 20.25。一致。

验算四(单位底):底 1、高 1 的 n 乘尖锥,公式给 1 ÷ (n+1);积分给 ∫01 xn dx = 1/(n+1)。对所有正整数 n 都成立。

更妙的是叠加。两个同底的尖锥叠在一起,积也相加:一乘尖锥(三角形)加二乘尖锥(抛物弓形),底同为 3,高分别为 3 与 9,面积 4.5 + 9 = 13.5;对应积分 ∫03(x + x2)dx = 4.5 + 9 = 13.5。这条「可加性」让李善兰能处理任意多项式曲线:把曲线拆成几个尖锥,分别算,再加起来。

第二幕 · 数学用尖锥算一张对数表p.16

《对数探源》要回答的问题是:对数表上的那些数,是怎么算出来的?纳皮尔造第一张对数表花了二十年,靠的是逐次开方与减法;李善兰给出的是另一条路——用尖锥。

他的出发点是双曲线。曲线 y = 1/x 下、从 1 到某一点之间夹出的面积,正好量出了那个点的对数。这条结论今天写在微积分课本里(∫1t dx/x = ln t),李善兰是用尖锥叠出来的:把这段面积切成许多薄片,薄片的高度按 1、1/2、1/3 … 递减,和就是一个级数。

他算 ln 2 用的级数是:

ln 2 = 2 × (1/3 + 1/81 + 1/1215 + 1/15309 + …)

逐项算:1/3 = 0.333333;1/81 = 0.012346;1/1215 = 0.000823;1/15309 = 0.000065;1/177147 = 0.000006。五项和 0.346573,乘 2 得 0.693147——与今日 ln 2 的值到小数点后六位全同。

这条级数收敛得极快:五项就到六位,十项可到十位。造表的人只需做加法与除法,不必开方。李善兰在书里说,依此法「对数可坐而得」。这不是夸口——他把一个需要二十年耐心的工作,变成了一道可以在灯下算完的题。

第二幕 · 交汇没有积分号的积分p.17

把李善兰的尖锥放到世界数学的坐标里,会看到一个耐人寻味的错位。

时间上,他晚了两百年。卡瓦列里在 1635 年提出「不可分法」——把面积看成无穷多条线之和,与尖锥的图像几乎一样;牛顿与莱布尼茨在 1660—1680 年代把它变成微积分,并发现了求积与求导互逆这条要害。李善兰的三部书刻于 1845 年,比卡瓦列里晚二百一十年,比牛顿晚一百八十年。

水平上,他走到了同一道门口。幂函数求积、尖锥叠加、对数级数——这三件事他都做出了正确结果;他用的「切薄片、加和、取极限」的思路,与定积分的定义在精神上一致。但他没有跨过最后那道门:没有把「求积」与「求导」认成一件事。所以他算得出 ∫03 x2 dx = 9,却不会有「微积分基本定理」这个念头。

差的不是聪明,是一整套符号与语言。牛顿有 ẋ 与流数,莱布尼茨有 dy/dx 与 ∫;李善兰只有汉字与图。符号不是装饰,它决定了一个人能把什么样的操作写下来、传下去。这也是为什么,十一年后他会去上海译那几本书。

第二幕 · 暗线圆出于方,方出于矩p.18

尖锥不是凭空冒出来的图像,它有一条很长的来路。《周髀算经》开篇就写「圆出于方,方出于矩」——圆是从方里裁出来的,方是用矩尺量出来的。这句话定下了中国几何的一个基本态度:曲的东西,要用直的东西去逼近。

刘徽注《九章》,把这句话变成算法:圆内接正六边形、十二边形、二十四边形……边数一倍倍翻,面积一步步逼近圆,这就是割圆术。祖冲之把 π 算到 3.1415926 与 3.1415927 之间,靠的就是这套逼近。

到了宋代,沈括在《梦溪笔谈》里提出「会圆术」,用弦、矢、直径互推圆弧长;元代郭守敬编《授时历》,用「弧矢割圆术」处理球面上的三角关系。这条传统的核心手法一直是「割」:把曲线割成许多小直线段,加起来逼近。

李善兰换了手法:他不割,他叠。割是把曲线切成小段,段是直的;叠是把面积切成窄条,条是竖的。两种办法在极限处等价,但「叠」有一个好处——每一条窄条都是矩形,矩形面积是底乘高,不会引入新的曲线。尖锥术之所以能一口气算到任意幂次,靠的就是这一点。它是中国几何传统里长出来的一枝,不是移植来的。

第二幕 · 小结这一幕在讲什么p.19
◺一 个 尖 锥 的 剪 影

一、三本薄书。1845 年,《方圆阐幽》《弧矢启秘》《对数探源》同刻。薄,但三者共用一件工具。

二、一个图像。面积可以看成无数条越来越短的线叠成的尖锥;线高按几次方递减,就叫几乘尖锥。

三、一条法则。S = b × h ÷ (n+1)。三角形、抛物弓形、三次曲线弓形,四次验算全对。

四、一张表。双曲线下的面积就是对数;ln 2 = 2(1/3 + 1/81 + 1/1215 + …) = 0.693147,五项到六位。

五、一个错位。他比卡瓦列里晚两百年,却独立走到了同一道门口;差的不是聪明,是符号。这一课,他在十一年后的上海补上了。

第三幕 · 故事墨海书馆里的两个人p.20

咸丰二年(1852),李善兰四十一岁,第一次到上海。他原本是为避乱而来——太平军已下江南,海宁一带不能安坐读书。到上海后,他听说城里有家「墨海书馆」,是伦敦会传教士开的印书局,印书用活字与机器,还养着几个懂算学的洋人。

墨海书馆在麦家圈,1843 年由麦都思创办,是近代中国第一家采用铅印机器的出版机构。馆里的洋人里,有一个三十七岁的英国人叫伟烈亚力(Alexander Wylie),1847 年来华,通汉文,能读中国算书,正在编一部中国文献的提要。

两人见面的情形没有详细记载,但结果很清楚:伟烈亚力读过李善兰的《对数探源》,知道这个中国人自己走出了尖锥术;李善兰则发现,这个洋人手里有几部书,正是中国算学缺的那几块。一个想要中国的算学,一个想要西方的算学,两人一拍即合。

他们的合作方式后世称为「对译」:洋人口述,华人笔受。伟烈亚力看着英文原书,把意思讲成汉语;李善兰听着,一边理解数学内容,一边写成文言,遇到中国没有的概念,就当场造一个词。一部书往往要磨上一两年。李善兰不通外文,伟烈亚力不通高深算学,可两个人合起来,把书译成了。

第三幕 · 数学补上那半部《几何原本》p.21

《几何原本》共十三卷(后世附增两卷,合十五卷)。1607 年徐光启与利玛窦只译了前六卷——平面几何的基础部分;后九卷一直空着,空了二百五十年。

后九卷讲什么?卷七至卷九是数论:最大公约数的求法(辗转相除)、素数的无穷性、比例理论。卷十是不可公度量:证明 √2 这类数不能用两个整数之比表示——这是希腊数学最锋利的一刀。卷十一至卷十三是立体几何:棱锥、圆锥、球、正多面体。

举三条最要紧的。其一,素数无穷:若素数只有有限个,把它们全部相乘再加 1,得到的数要么本身是素数,要么含有不在表中的素因子——两种情形都矛盾。故素数无穷多。其二,球体积:V = 4/3 πr3,李善兰译作「球积等于三分之四乘圜周率乘半径之立方」。其三,正多面体只有五种:正四、正六、正八、正十二、正二十面体——这条结论在卷十三末尾,用每个顶点处平面角之和必须小于四直角来卡死。

译后九卷的难处不在算,在体例。欧几里得的写法是一条命题压一条命题,每一步都要引前面的界说或公论;中文没有对应的书写传统。李善兰的办法是把「论曰」写成严整的文言推理,界说、公论、命题、解、论依次排开,硬生生在文言里造出了一种「证明体」。

第三幕 · 数学代数:给未知数一个名字p.22

咸丰九年(1859),李善兰与伟烈亚力译成《代数学》十三卷,底本是英国德摩根(Augustus De Morgan)的《代数初步》。这部书把「用符号代替数」这件事讲透了——中国算学里也有未知数(天元、四元),但那是布算格式,不是符号运算。

差别在哪里?天元术的「元」只能布在算筹盘上,一个题目一个元;代数的 x 可以脱离具体题目,参与加减乘除、开方、移项,成为一个可以操作的对象。前者是「设未知数解题」,后者是「研究符号本身的运算规律」。

《代数学》里几条基本法则,中国读者是第一次见到:指数律 am · an = am+n;负指数 a−n = 1/an;二项展开 (a+b)2 = a2 + 2ab + b2。这些式子在《垛积比类》里其实见过影子(贾宪三角就是二项系数),但那里是「数阵」,这里是「公式」,一字之差,用法全变。

书里最实用的一章是一元二次方程:ax2 + bx + c = 0 的根为

x = [−b ± √(b2 − 4ac)] ÷ 2a

中国古法(开带从平方)能解同类问题,但要一步步布算;有了这条公式,方程的解成了一个可以直接写出来的式子。李善兰在译序里说,代数之妙在「以简御繁」——四个字,说中了符号的全部好处。

第三幕 · 数学微积分第一次进门p.23

同一年,李善兰译成《代微积拾级》十八卷,底本是美国卢米斯(Elias Loomis)的《解析几何与微积分初步》。这是微积分第一次以完整的书的形式进入中文。书名里的「代」指代数,「微」指微分,「积」指积分,「拾级」是拾级而上——由浅入深的意思。

书分三段:解析几何(用坐标把曲线写成方程)、微分(求变化率)、积分(求面积与总和)。李善兰造了两个关键术语:「微分」指无穷小的增量,「积分」指把无穷多个微分加起来——「积」字既是「累积」,也暗合中国算学的「垛积」,用得极准。

举一个书里的标准例。求 y = x2 的微系数(今称导数):给 x 一个无穷小的增量 dx,则

dy = (x + dx)2 − x2 = 2x·dx + (dx)2

后一项是二阶无穷小,略去,得 dy/dx = 2x。反过来,求 y = x2 下的面积:把区间分成无穷多个 dx 宽的窄条,每条面积 x2dx,加起来得 x3/3。在 0 到 3 之间,27/3 = 9——与第二幕用尖锥算出的结果完全相同。

这一步对李善兰本人的意义,比对中国读者的意义更大。他十九年前用尖锥摸到的答案,如今有了一套通用的写法:不必每次切薄片,只需写出原函数。他在译序里没有明说这层体会,但第二年就动手译《谈天》,把微积分用到天体上去了。

第三幕 · 暗线造词的人p.24

译书最难的一步,往往不是理解,而是给一个没有的东西起名字。英文的 function、differential、coefficient,中文里一个现成的词都没有。李善兰的办法是从古汉语里找字,按意思重新组合,而不是音译。

他造的这批词,今天还在用:函数(「函」是包含,一个量随另一个量而变,如函之含物)、微分与积分(取「微」「积」二字的本义)、系数(相伴之数)、常数与变数、级数、未知数、方程式、根、曲率、渐近线、切线、法线、抛物线、双曲线、椭圆、摆线。他还与韦廉臣合译《植物学》,造了「细胞」一词。

也有失败或改道的:他把 logarithm 译成「对数」(沿用旧译),把 algebra 译成「代数学」(日本人后来用「代数」),把 equation 译成「方程式」(今日简称「方程」)。有些词传下来了,有些被日本译名取代,还有些在两国之间来回搬家——近代中文科学术语的版图,一半是这时候画下的。

为什么坚持意译?他在《代微积拾级》序里说,译书如「借屋」,借来的屋子住不久。音译词是借屋,意译词是自己盖的屋——盖得再简陋,梁柱是自己的,日后能加层。这个念头,与他一生「从术到理」的追求是同一条筋:学问要能长在自己的语言里。

第三幕 · 交汇二百五十年的接续p.25

1607 年,徐光启与利玛窦译出《几何原本》前六卷。徐光启在序里写下一句被后人反复引用的愿望:「欲求超胜,必须会通;会通之前,先须翻译。」 翻完六卷,利玛窦劝他先停一停,说后九卷太难,译出来也没人读。这一停,就是二百五十年。

1857 年,李善兰与伟烈亚力把后九卷译完,在松江刊刻。两部书终于在纸面上接成了一部完整的《几何原本》。李善兰在序里没有夸张,只说了一句:徐文定公未竟之业,今始卒之。

这二百五十年里,中西两边各走了很远。欧洲有了解析几何、微积分、力学、天体力学;中国则经历了明清易代、文字狱、考据学的兴盛与算学的复苏。当李善兰在墨海书馆第一次看到 dy/dx 时,他面对的不是一部书,而是二百五十年的差距。

他的应对方式很特别:不是丢掉自己的东西去学,而是拿自己的东西去接。他用垛积理解级数,用尖锥理解积分,用「比类」理解分类,用「以简御繁」理解符号。正因为他手里有一套自己的算法,他才能在译书时判断哪些是真正的新东西,哪些只是换了个说法。这一点,是那些只会背诵洋书的人做不到的。

第三幕 · 小结这一幕在讲什么p.26
✦ · ⌁一 点 光 与 一 道 细 线

一、一次相遇。1852 年,上海墨海书馆,李善兰与伟烈亚力开始「对译」:洋人口述,华人笔受。

二、半部书补齐。1857 年,《几何原本》后九卷刊行;数论、不可公度量、立体几何进入中文,距前六卷已二百五十年。

三、三部大书。《代数学》(1859)给了符号,《代微积拾级》(1859)给了微积分,《谈天》(1859)给了新的宇宙图景。

四、一批词。函数、微分、积分、系数、级数、切线、渐近线——今天仍在用的术语,多定于此时。

五、一个判断。他不是丢掉自己的东西去学,而是拿垛积、尖锥、比类去接。手里有算法的人,才看得出什么是真新。

第四幕 · 故事北京,算学馆p.27

同治七年(1868),李善兰五十七岁,受聘为北京同文馆算学教习。同文馆是洋务派办的第一所新式学堂,1862 年设,最初只教外语;1867 年加设天文算学馆,争论了整整一年才开出来。

那场争论很凶。反对的人说:让科举正途出身的读书人去学洋人的算学,是「用夷变夏」;赞成的人说:洋人的船坚炮利,根子在算学,不学算学就造不出机器。最后算学馆还是开了,第一批学生大多是八旗子弟与低品官学生,年纪偏大,基础很薄。

李善兰在同文馆教了十四年,直到去世。他教的课从《几何原本》讲到《代微积拾级》,再到天文与力学;教材多半是他自己译的书,讲法也是他自己的:先讲一条「理」,再演几道「术」,最后让学生自己布算。据学生回忆,他讲课时声音不高,遇到学生算错,从不斥责,只在纸上把错处圈出来,让人自己重算一遍。

1869 年,他升任算学总教习,管算学馆的教学。这一个职位在当时并不显赫,俸禄也不算高;但它意味着「算学」第一次在中国有了一个常设的、带学位性质的教学位置。同年,他把《则古昔斋算学》的稿子重新整理,准备合刊。

第四幕 · 数学数根:不能再分的数p.28

李善兰把素数叫「数根」——数的根,不能再往下分的数。这个译法比后来的「素数」「质数」更形象:一个合数可以拆成几个数相乘,拆到最后拆不动了,剩下的就是根。

定义很干脆:大于 1 的整数,如果只有 1 与它本身两个因数,就叫数根。按这条定义,1 不算(它只有一个因数),2 是最小的数根,也是唯一的偶数数根——其余偶数都能被 2 整除。

一百以内的数根有二十五个:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97。从一到一百,数根越来越少,但永远不会没有——欧几里得在《几何原本》卷九已经证明过,李善兰把这条证明译进了后九卷。

找数根最古的办法是「筛」:把 2 的倍数划掉,把 3 的倍数划掉,把 5 的倍数划掉……剩下的就是数根。这个方法希腊人叫「埃拉托色尼筛」,中国算书里也有类似的「求一术」式的排除法。筛法笨,但可靠;它一条一条地排除,绝不会漏,也绝不会错。

问题在于:筛到什么时候停?如果要判断一个很大的数是不是数根,总不能把它的平方根以前的数根全试一遍。《考数根法》要解决的,正是「怎样少试几次」。

第四幕 · 数学一条判据:二的幂次试真假p.29

《考数根法》里最要紧的一条判据是:若 n 是数根,则 2n−1 除以 n 的余数必定是 1。写成同余式:

2n−1 ≡ 1 (mod n)

验一个真的:n = 13,212 = 4096,而 13 × 315 = 4095,所以 4096 ÷ 13 余 1。通过。

验一个假的:n = 15,214 = 16384,15 × 1092 = 16380,余 4,不是 1。立刻断定 15 是合数——不必试除,一步就到。

再验一个大的:n = 91。要算 290,硬算是一位数二十七位的数,但可以逐步取余:26 = 64,212 余 642 = 4096 除 91 余 1(91 × 45 = 4095)。于是 290 = (212)7 · 26 余 1 · 64 = 64,不是 1。91 被判定为合数——而它确实是 7 × 13。

这条判据有一个漏洞:它是必要条件,不是充分条件。有些合数也能通过检验——最小的例子是 341 = 11 × 31,2340 除以 341 恰好余 1。这类数后来被称为「伪素数」。李善兰在书里没有把这条判据说成万灵药,他另给了辅助的排除法:先筛去小数根,再用这条判据复核。两层筛子叠起来,绝大多数合数都逃不掉。

第四幕 · 数学试到平方根就够了p.30

筛法还有一个更基本的省力办法:判断 n 是不是数根,只需试到 √n 为止。理由是:如果 n = a × b 且 a、b 都大于 √n,那么 a × b 就大于 n,矛盾。所以两个因数里必有一个不超过 √n——试到那里还没找到,就说明没有。

例一:97。√97 ≈ 9.85,只需试 2、3、5、7。97 是奇数(非 2);数字和 16(非 3);末位非 0、5(非 5);97 ÷ 7 = 13 余 6(非 7)。四个数试完,97 是数根。

例二:221。√221 ≈ 14.9,试 2、3、5、7、11、13。前五个都除不尽;221 ÷ 13 = 17,整除。221 = 13 × 17——若从 2 试到 13 共六次,就抓到了。

例三:1009。√1009 ≈ 31.8,要试 2、3、5、7、11、13、17、19、23、29、31 共十一个数根。试完都不整除,1009 是数根(它确实是)。

这三个例子说明一件事:试除法的代价随 √n 增长。判断一万以内的数,最多试到 100,尚可手算;判断一亿以内的数,要试到一万,就得靠表或机器。李善兰的判据之所以可贵,正因为它把「试很多次」换成了「算一次幂再取余」——虽然不能全包,但能一口气筛掉绝大多数。

第四幕 · 暗线一场关于「要不要学」的争论p.31

李善兰进同文馆的那一年,朝堂上正在吵一件事:读书人该不该学洋人的算学。这不是学术争论,是路线争论。

反对的一方以大学士倭仁为首,理由是「立国之道尚礼义不尚权谋,根本之图在人心不在技艺」;他们担心的是,一旦科举正途的读书人去学洋学,人心就散了。赞成的一方以恭亲王奕䜣为首,理由是「洋人制器,无一不自算学中来」。争论到最后,算学馆开了,但报名的人很少,且多是低品官学生。

这场争论里还有一种调和的说法,叫「西学中源」:说西方的算学本就出自中国,只是传过去又传回来。有人拿《周髀》比勾股,拿《九章》比方程,拿垛积比级数。这种说法在今天看是附会,在当时却有一个实际作用——它让学洋学的人不至于背负「用夷变夏」的罪名。

李善兰对这套说法态度很微妙。他确实相信中国算学有自己的根(尖锥、垛积都是证据),但他从不认为因此就可以不学。他在译序里反复讲的是「补其所未备」「取其所长」,而不是「吾固有之」。这是一个真正懂行的人的判断:知道自己有什么,也知道自己缺什么。

第四幕 · 交汇从一个人的书房到一间教室p.32

李善兰一生有两个身份:自己读书的人,和教别人读书的人。前半生是前者,后半生兼有两者。这个转变看似平常,对中国算学却是一件大事。

在他之前,算学是靠「家学」与「友朋」传的:一个人得到一部好算书,抄给几个朋友,朋友再抄给朋友。梅文鼎的学问传给儿子与孙子,戴震的算学传给弟子,李善兰自己也是靠借书、抄书学出来的。这种传承方式的好处是深,坏处是窄——一部书失传,一条学脉就断。

同文馆的算学馆是另一种样子:有课程、有年限、有考试、有教材、有教习。学生不必自己去访书,教材由教习选定;学得好的可以保举做官,学得差的要留级。这套制度把算学从「一个人的爱好」变成了「一门可以批量传授的学问」。

李善兰参与了这个转变,但他做的事还是老派的:自己编讲义,自己批作业,遇到好学生就单独讲。据同文馆的学生后来回忆,他不太会用新式的分班教法,更喜欢把几个人叫到案前,看他们布算,看到错处就圈出来。这种方式带不出大批学生,却带出了几个真正懂行的。

第四幕 · 小结这一幕在讲什么p.33
✦ · ▭一 点 光 与 一 间 空 屋

一、一个职位。1868 年入同文馆,1869 年任算学总教习,直到 1882 年去世——十四年。

二、一门新学问。他把素数叫「数根」,一百以内二十五个;筛法可靠但笨,试除只需到平方根。

三、一条判据。2n−1 ≡ 1 (mod n):13 通过,15 被拒,91 被拒;341 是漏网的反例。必要而非充分,两层筛子叠用。

四、一场争论。算学馆开在「用夷变夏」的指责声里;李善兰的态度是知道自己有什么,也知道自己缺什么。

五、一次转型。算学从家学、友朋,走进课程与教室。

第五幕 · 故事二十四卷,一个书斋的名字p.34

同治十一年(1872),李善兰六十一岁,把一生的算学著作合编成一部丛书,题名《则古昔斋算学》,二十四卷,收书十三种。「则古昔」出自《诗经》,意思是取法古人;「斋」是他书斋的名号。这个名字很能说明他的自我定位:他不是要另立门户,而是要接着古人的话往下说。

十三种书大致分四类。讲垛积尖锥的:《方圆阐幽》《弧矢启秘》《对数探源》《垛积比类》《尖锥变法解》《级数回求》。讲古算整理与注解的:《四元解》(解朱世杰四元术)、《麟德术解》(解唐麟德历)。讲曲线与测量的:《椭圆正术解》《椭圆新术》《椭圆拾遗》《火器真诀》。讲数论的:《考数根法》。另有《天算或问》一卷,是问答体的札记。

他把这些书合在一起,有一个明确的目的:让人看到一条线索——从垛积到尖锥,从尖锥到级数,从级数到椭圆与弹道。单看任何一本,都只是解决了一类问题;合起来看,是一套方法在不同对象上的反复使用。

丛书刊行后流传不广,但读过的人评价极高。华蘅芳说他的尖锥术「能于西人未言之先,独辟蹊径」;夏鸾翔受他影响,做出了中国最早的圆锥曲线研究。这几句话后来成了评价李善兰的标准说法:不是「中国的牛顿」,而是「在没有牛顿的地方,自己走到了同一个门口的人」。

第五幕 · 数学级数回求:把式子倒过来解p.35

《级数回求》解决的问题看起来很技术,其实是数学里最常遇到的一类:已知 y 用 x 表示的级数,怎样把 x 用 y 表示出来? 用今天的说法,叫级数反演。

举个最简单的例。设

y = x + x2

已知 y 求 x,其实是解一个二次方程;但若 y = x + x2 + x3 + … 呢?方程的次数无穷,公式法用不上。李善兰的办法是「待定系数」:先假设

x = y + Ay2 + By3 + Cy4 + …

再把这个式子代回 y = x + x2,逐项比较 y 的各次幂,定出 A、B、C。代进去算:x2 = y2 + 2Ay3 + …;右边 x + x2 = y + (1+A)y2 + (2A+B)y3 + …。要与左边的 y 相等,则 1+A = 0,2A+B = 0,逐条解出 A = −1,B = 2,C = −5。于是

x = y − y2 + 2y3 − 5y4 + …

验算:取 y = 0.2,逐项算 0.2 − 0.04 + 0.016 − 0.008 + 0.00448 = 0.17248;再加两项得 0.1698。而真解由 x2 + x − 0.2 = 0 得 x = (−1+√1.8)/2 = 0.17082。级数的值与真解只差千分之几,且越往后越近。

这条方法的重要性在于通用:反演不依赖方程的次数,只依赖级数的系数。李善兰用它处理过对数的反求、三角函数的反求——今天叫「反函数的级数展开」,是分析学的基本工具之一。

第五幕 · 数学椭圆的周长:一条算不完的级数p.36

《椭圆正术解》《椭圆新术》《椭圆拾遗》三书,是李善兰晚年用力最深的部分。椭圆有两个基本问题:面积好算(πab),周长难算——它没有初等公式。难处在于:椭圆的弧长积分算不出初等函数,只能用级数逼近。

设长半轴 a、短半轴 b,离心率 e 满足 e2 = 1 − b2/a2。周长 C 的级数是:

C = 2πa × [1 − e2/4 − 3e4/64 − 5e6/256 − …]

实算一个:a = 5,b = 4,则 e2 = 1 − 16/25 = 0.36,e = 0.6。方括号内:1 − 0.09 − 0.006075 − 0.000455 = 0.90347;乘以 2π × 5 = 31.4159,得 C ≈ 28.384。

核对:用拉马努金近似式 C ≈ π[3(a+b) − √((3a+b)(a+3b))],代入得 π[27 − √(19×17)] = π(9.0278) ≈ 28.362。两者相差 0.022,约万分之八——级数取三项已经够用。

李善兰的特别之处在于他不只用级数,还造了「术」:把椭圆的弧、面积、切线、法线分别列出算法,写成可以按步骤操作的条文,最后附上算例。《椭圆拾遗》里甚至有「已知弧长反求角度」的问题——那就是椭圆积分的反问题,只能用级数回求来做。三部书合起来,是一部关于椭圆的完整手册。

第五幕 · 数学炮弹走的那条曲线p.37

《火器真诀》是《则古昔斋算学》里最实用的一部。它讲的是炮弹怎样飞——仰角多少、初速多大、能打多远。在 1860 年代,这是洋务派最急着要知道的事。

理想的弹道是一条抛物线(不计空气阻力)。设初速 v、仰角 θ、重力加速度 g,则射程与最高点为:

R = v2 sin 2θ ÷ g   H = v2 sin2θ ÷ (2g)

实算:v = 100 米每秒,θ = 45°,g = 9.8。射程 R = 10000 × 1 ÷ 9.8 ≈ 1020 米;最高点 H = 10000 × 0.5 ÷ 19.6 ≈ 255 米。

换一个仰角:θ = 30°,sin 60° ≈ 0.866,射程 10000 × 0.866 ÷ 9.8 ≈ 884 米;最高点 10000 × 0.25 ÷ 19.6 ≈ 128 米。仰角越小,射程越短,弹道越平——这就是炮手调角度的依据。

公式里最要紧的一句是 sin 2θ:它在 θ = 45° 时取最大值 1,所以四十五度打得最远;30° 与 60° 的射程相同,只是弹道一个平、一个高。这条「四十五度最远」的结论,古人凭经验知道,李善兰给了它一个可以算出来的理由。

当然,真实炮弹要受空气阻力,射程远小于此,弹道也不再是抛物线。《火器真诀》没有处理阻力——它给的是「理」,不是「表」。这一点李善兰自己在书里说清楚了:算的是无阻力之常理,用时要按实测修订。

第五幕 · 暗线最后十四年p.38

李善兰在同文馆的最后十四年,生活并不宽裕。算学总教习的俸禄有限,他又不肯收学生的贽敬,晚年的日子过得清简。据同文馆的同事说,他住的屋子很小,四壁都是书,桌上永远摊着算稿。

他的身体在七十岁后转坏。光绪八年(1882)十月,他在北京去世,年七十一。同文馆为他请恤,朝廷赐了恤金;友人为他整理遗稿,把未刻的几种抄本收了进去。

身后的事,有一件颇值得一说。他没有留下成体系的门派,也没有一个能接住他全部学问的弟子。华蘅芳、夏鸾翔各自做出了成绩,但走的是不同的路:华蘅芳偏重普及与教育,夏鸾翔偏重圆锥曲线,谁也没有把垛积、尖锥、译书、数论四样串起来。他这条学脉,到他为止。

这不是他的失败,是时代的转折。他之后,中国数学的传习方式变了:学堂取代书院,译本取代抄本,留学取代家学。新一代人可以直接读英文原版,不必再从《九章》与《四元玉鉴》里把方法重新推一遍。李善兰是最后一位「从古书里长出来的大家」,也是第一位「把西学译进中文的人」。这两个身份叠在一个人身上,此后不再有。

第五幕 · 交汇他留下的词,还在说话p.39

一个数学家留下什么?公式会过时,方法会被推广,著作会被重印或散失。但有一件东西留得最久:词。

今天的中学生在课本上读到「函数」「微分」「积分」「系数」「级数」「切线」「渐近线」,不会想到这些词是十九世纪五十年代在上海一间印书局的木桌上,一个不通外文的中国人和一个不通高深算学的英国人,一句一句商量出来的。词一旦定下,就成了一种公共财产——它规定了后来的人怎样思考,甚至规定了哪些问题看起来「自然」。

李善兰的词有一个共同点:都用汉字的本义去对应数学的含义,不用音译。「函数」取「函」的包含义,「微分」取「微」的细小义,「积分」取「积」的累积义。这套造词法后来被日本学者部分采纳、部分改写,再倒流回中国,形成今天中日两国术语「同形不同源」的复杂局面。

更深的遗产是他的方法:拿自己手里的东西去接外来的东西。他用垛积接级数,用尖锥接积分,用比类接分类。这不是「中学为体」的口号,而是一种真实的思想操作——只有真正懂一门学问的人,才知道它能接住什么。这一点,比任何一个公式都更难学。

第五幕 · 小结这一幕在讲什么p.40
✦ · ▤一 点 光 与 一 函 书

一、一部丛书。1872 年《则古昔斋算学》二十四卷、十三种合刊,四类内容共用一套方法。

二、一条反演的法则。y = x+x2 反求 x = y−y2+2y3−5y4+…,待定系数逐项定出。

三、一条算不完的曲线。椭圆周长 2πa[1−e2/4−3e4/64−…],三项即准到万分之八。

四、一条抛出去的弧。R = v2sin2θ/g,四十五度最远——经验变成了可算的理由。

五、一个身后。学脉至其身而止;但他造的词,今天还在每一间教室里被念出来。

收束回望:一条时间线p.41

把五幕串回一条线,正好是十九世纪中国算学的一段断代史。

1811,生于浙江海宁硖石。1821,十岁在家塾架上读到《九章算术》。1825,十四岁读《几何原本》前六卷。1845,《方圆阐幽》《弧矢启秘》《对数探源》三书同刻,尖锥求积术成立。1848,《垛积比类》四卷成书。1852,到上海,入墨海书馆,与伟烈亚力相识。1857,《几何原本》后九卷刊行,距前六卷二百五十年。1859,《代数学》《代微积拾级》《谈天》相继译成。1868,任同文馆算学教习。1869,升算学总教习。1872,《则古昔斋算学》二十四卷合刊,《考数根法》在其中。1882,卒于北京,年七十一。

七十一年,前半生是一个人的书房,后半生是一间教室。他把中国算学里最有生命力的两样东西推到了当时的水准线上,又把西方数学最要紧的几部书译成了中文——两件事他都做成了,但只来得及做一次。

时间线的下一格属于后来者:学堂取代书院,译本取代抄本,留学取代家学。他译下的那些词,留在了每一本教科书里。

收束他的书该怎么读p.42

李善兰的书分四类,各有各的读法。给不同的读者排四条路线。

只想知道他做了什么:读《垛积比类》的序与卷一——序讲他的方法,卷一讲三角垛的造表;不必通读四卷,看懂前二十问即可。配《方圆阐幽》十条,一部薄书一个下午能读完,尖锥的全套想法都在里面。

想看微积分怎么进来的:读《代微积拾级》的译序与卷十、卷十四——前者讲他为什么要译,后者讲微分与积分的定义。译本用文言、竖排、汉字标幂次,读起来慢,但能看到一个新学问第一次被写成中文时的样子。

想看数论:读《考数根法》卷一。《数根》的定义、筛法、以二试之的判据,都在这一卷;卷二卷三是算例与辨难,可以跳读。想看曲线与弹道:读《椭圆正术解》与《火器真诀》,前者细密,后者实用。

四条路线殊途同归:他一生的书都在讲同一件事——把可用的算法,收进可讲的道理里。

收束 · 暗线三个还没有答案的问题p.43

本册收在三道题目上——它们在他那个年代悬着,今天仍各有各的悬法。

其一,为什么没有跨过那道门?尖锥术算出了 ∫03x2dx = 9,却没有发现求积与求导互逆。差的不只是符号,还有一整套「把操作写成式子」的习惯。这个问题今天仍然值得追问:一门学问的语言形式,究竟在多大程度上决定了它能走多远。

其二,素数判定还有多快?李善兰的「以二试之」是必要条件,绕不过伪素数;二十世纪有了概率判定与 2002 年的 AKS 多项式算法。但他的问题没有变:怎样用尽量少的计算,判断一个数是不是根。今天的密码学每天都在算这道题。

其三,意译与音译,哪条路更远?他坚持意译,造出了「函数」「微分」「积分」;同一时期日本多用意译加汉字组合,另有大批音译词后来被淘汰。术语是思维的模具:词选得准,后来的人想得顺;词选得偏,整代人要绕路。这是语言问题,也是数学问题。

动手做摆一座三角垛,数一数p.44

第一幕那条公式,可以用一把棋子亲手验出来。材料:围棋子或硬币二十枚、一张桌面。

步骤一:摆第一层 1 枚。步骤二:第二层摆 3 枚(1+2),压在下面。步骤三:第三层摆 6 枚(1+2+3)。步骤四:第四层摆 10 枚(1+2+3+4)。数一数总数:20 枚。

公式给的是同一个数:

4 × 5 × 6 ÷ 6 = 20

再加一层:第五层要 15 枚,总数 35;公式 5 × 6 × 7 ÷ 6 = 35。再往下想:第十层要 55 枚,十层总 220;公式 10 × 11 × 12 ÷ 6 = 220。

为什么每层多出来的数正好是层号?第四层比第三层多 4 枚(10−6),第五层比第四层多 5 枚(15−10)。多出来的那一排,长度就是层号——所以第 k 层的数,等于前 k 个数之和。一层套一层,套到最后,就是那三个连续整数。

追问一步:如果每层摆成正方形(1、4、9、16、25),五层是多少?55。公式 5 × 6 × 11 ÷ 6 = 55。同一把棋子,可以摆出两种垛,验两条公式。

动手做在方格纸上量一个尖锥p.45

第二幕那条「底乘高除以三」的法则,可以用方格纸亲手逼近。任务:量出 y = x2 在 0 到 3 之间的面积。

步骤一:画坐标轴,横轴 0 到 3,每 0.5 一格。步骤二:描点 (x, x2):0、0.25、1、2.25、4、6.25、9。步骤三:连成曲线,曲线下方就是待量的面积。

步骤四:用小矩形去填。每格宽 0.5,取每格左端的高度作矩形高:0.5 × (0 + 0.25 + 1 + 2.25 + 4 + 6.25) = 0.5 × 13.75 = 6.875——这是「不足」的估计。改取右端的高度:0.5 × (0.25 + 1 + 2.25 + 4 + 6.25 + 9) = 0.5 × 22.75 = 11.375——这是「有余」的估计。

真值被夹在中间:6.875 < 面积 < 11.375。而李善兰的公式给 3 × 9 ÷ 3 = 9,正在两者之间。

步骤五:把格子切细。若把区间分成 n 份,上下两个估计之差恰好是 27/n:n = 6 时差 4.5(与上面 11.375−6.875 相符),n = 12 时差 2.25,n = 60 时差 0.45。格子越细,两头越挤,真值被夹得越紧——这就是「尖锥」的全部秘密。

小典本册关键词条p.46

垛积:把物品按层堆垛后求总数的问题。宋元算书已有,李善兰《垛积比类》集其大成,按「乘数」分类给公式。

比类:李善兰的方法论——先按形状分类,再在类间比较,找出不变的因子。其法相当于先造差分表、再由差分反求通项。

隙积:沈括《梦溪笔谈》中的堆垛求积法,垛积术的前身;「隙」指堆垛内部看不见的空隙。

尖锥:李善兰造的求积图像——把一块面积看成无数条递减的竖线叠成,形如尖锥。线高按 n 次方递减者称「n 乘尖锥」。

尖锥求积术:S = b × h ÷ (n+1)。与今日 ∫0hxndx = hn+1/(n+1) 同值。

数根:李善兰对素数的称法——「数之不可析者」。一百以内二十五个。

以二试之:《考数根法》的判据,2n−1 ≡ 1 (mod n);必要而非充分,341 是著名反例。

级数回求:已知 y 关于 x 的级数,反求 x 关于 y 的级数;李善兰用待定系数法逐项定出。

微系数:《代微积拾级》中对导数的译名,今已不用,代之以「导数」或「微商」。

函数:李善兰定译,取「函」之包含义;今为数学最常用的词之一。

对译:墨海书馆的译书方式——洋人口述,华人笔受,遇到新概念当场造词。

则古昔斋算学:李善兰自编算学丛书,二十四卷十三种,1872 年刊于上海。

小典本册人物与书目p.47

人物

李善兰(1811—1882):本册主人公。字壬叔,号秋纫,浙江海宁人。同文馆算学总教习,《则古昔斋算学》的作者,《几何原本》后九卷的译者。

伟烈亚力(Alexander Wylie,1815—1887):英国伦敦会传教士、汉学家。与李善兰合译《几何原本》后九卷、《代数学》《代微积拾级》《谈天》《重学》。

韦廉臣(Alexander Williamson,1829—1890):英国传教士,与李善兰合译《植物学》,「细胞」一词出于此。

韩应陛(?—1860):松江藏书家,出资刊刻《几何原本》后九卷,世称「韩刻本」。

华蘅芳(1833—1902):晚清数学家,译《代数学》《微积溯源》,评李善兰尖锥术「独辟蹊径」。

夏鸾翔(1823—1864):晚清数学家,受尖锥术影响,著《万象一原》,研究圆锥曲线。

戴煦(1805—1860):与李善兰同时的算学家,独立研究对数与级数,二人有通信往还。

主要书目

李善兰:《则古昔斋算学》二十四卷(1872);《几何原本》后九卷(与伟烈亚力合译,1857);《代数学》十三卷(1859);《代微积拾级》十八卷(1859);《谈天》十八卷(1859)。

延伸一个「积」字的三种写法p.48

本册反复出现一个字:积。它在三处出现,写法各异,其实是一件事。

第一处,垛积(p.7):一层一层的数加起来。1 + 3 + 6 + 10——加的是整数个物件,加数有限,答案精确。这是「离散地积」。

第二处,尖锥(p.15):一条一条的线叠起来。线有无穷多条,每条有长无宽,加起来得到的是面积。这是「连续地积」——李善兰没有「极限」这个词,他用「叠至无穷」四个字代替。

第三处,积分(p.23):∫03x2dx。同一个面积,写成一行符号,一步算出 9。这是「符号地积」——有了一套写法,就不必每次重新切薄片。

三种写法的关系,正好是数学抽象的三级台阶:先数个数(离散),再量面积(连续),最后写成式子(符号)。李善兰走完了前两级,走到第三级门口站住了。而他译的那几本书,把第三级的写法带进了中文——他自己没能用上几年,后来的人用了整整一百五十年。

延伸三桩公案与延伸阅读p.49

公案一:尖锥术有没有受过西方影响?有「传入说」与「独立说」两派。传入说主张尖锥与西方不可分法形似,可能间接受明末清初译书影响;独立说指出尖锥的表述、术语、论证路径全是中国式的,且李善兰当时未见过微积分著作。学界目前的通行看法是独立所得,但承认「形似」确实存在——数学史上,同一个想法在不同地方出现,并不罕见。本册取独立说。

公案二:后九卷的署名与刊刻。译本署「伟烈亚力口译,李善兰笔受」,实际数学内容的理解与表述主要出自李善兰;刊刻者是松江韩应陛,不是墨海书馆。后世有「李善兰独译」与「二人合译」两说,较持平的说法是:没有伟烈亚力的底本与口述,译不成;没有李善兰的算学与文言,也译不成。

公案三:李善兰恒等式的归属。《垛积比类》中有一批组合恒等式,二十世纪被西方学者重新发现并命名为「李善兰恒等式」,其组合证明迟至现代才给出。争议不在归属,而在「他是否意识到这是一般恒等式」——原书的写法是逐类造表,未必自称为定理。这一点,读原书比读转述更清楚。

延伸阅读:钱宝琮《中国数学史》第七编(李善兰专章);李俨《中国算学史》第十一章;梅荣照《李善兰的尖锥求积术》(《自然科学史研究》1983 年第 2 期);郭世荣《李善兰垛积术与有限差分法》;沈国威《近代中日词汇交流研究》第四章;伟烈亚力《中国文献纪要》算学类。

给家长这册在讲什么p.50

这一册讲一个人在没有师承的条件下,把一门老学问往前推了一步,又转身去把另一门新学问译进来。这件事是给孩子的第一课:学问不必等人来教,书在那里,路就在那里。

全书的主线只有一句话:堆起来的东西可以算,切开来的东西也可以算——算得出来,就说得清道理。故事从一个孩子在书架上翻到一部古书讲起,讲到一层层堆起来的米袋、一条越收越窄的尖锥,讲到上海印书局里两个语言不通的人怎样把一部书磨出来,讲到最后十四年的一间教室。孩子读完能带走的东西:一座亲手摆出来的三角垛、一张亲手量出来的尖锥面积图,以及「先分类、再比较」这个笨而有效的办法。

数学层的部分家长可以放心:本册只用整数四则、乘方、简单的分数与开平方,连「极限」都只用「叠至无穷」四个字代替,没有符号运算的先修要求。如果孩子只读故事层,他也能完整读完一条传记线:自学、著书、译书、教书——五幕独立成立。

暗线「从术到理」是留给大人的部分:会做一件事,和知道这件事为什么这样做,是两层境界。前者能养家,后者能传下去。这句话适用于算学,也适用于任何手艺。

给家长可以一起聊的三件事p.51

一、为什么米袋要堆成三角形?带孩子看一次真实的堆垛——水果摊的橘子、仓库的箱子——问他:为什么这样堆不容易塌?答案在力学里:底层承重最大,所以最宽。再问:一共多少个?这就从生活走进了 p.7 的公式。聊的重点不是算对,是让他发现「堆放方式」本身有规律。

二、一张纸能叠出多少个「无穷」?把一张纸对折,再对折,折到第七次就很难了。问孩子:如果能折三十次,厚度是多少?答案是超过珠峰(0.1 毫米 × 230 ≈ 107 公里)。这是「指数」的手感,也是尖锥里「叠至无穷」的日常版——无穷不是一个大数,是一种越叠越快的趋势。

三、如果新学的东西没有中文名字?这是李善兰天天面对的问题。可以玩一个游戏:给孩子一个他没见过的物件(比如一个夹子、一个量角器),让他自己起名字,并说出理由。他会发现:起名不是随便叫,而是要先看懂它是干什么的。这就是「函数」「微分」这些词的来历——先懂,再命名;名字起得准,后来的人学得顺。

三件事都不需要课本,只需要一次散步、一张纸、一个游戏。读完这册书,最好的结果不是记住「李善兰是谁」,而是对「一件事为什么可以这样算」多了一点好奇。

版权与编目版权页p.52

《数学家的故事》第三辑 第 27 册
李善兰 · 垛积与尖锥

体例:五幕 · 52 页 · 三层可读(故事/数学/注疏)
插画:40 幅(留白线体)
数值:全册关键数值实算复核

本册为「格物致知」系列数学通识读物之一,面向全龄读者。
故事层无需预备知识;数学层对应小学高年级至初中;注疏层供检索与延伸。

格式 · 格物致知 · JUST FOR FUN