Jamshīd al-Kāshī · 约1380–1429

阿尔·卡西

他先把误差定死,再倒推该切一个八亿边形——十六位小数是这么算出来的

n=3×228=8053063682π=6.2831853071795865n = 3 \times 2^{28} = 805306368 \quad \Rightarrow \quad 2\pi = 6.2831853071795865
《论圆周》1424 · 内接与外切多边形各切到八亿零五百三十万边,把 2π 夹出十六位小数。他自己报的是六十进制的九位:6;16,59,28,1,34,51,46,14,50

贾姆希德·本·马苏德·卡西约 1380 年生于卡尚,今伊朗中部的一座城;「卡西」就是「卡尚人」,与花拉子米、图西的名号是同一种起法。生年没有确据,1380 这个数是后人推的。他早年以行医为业——名号里的「塔比卜」正是医生——后来才专做数学与天文。能定年的第一件事是 1406 年 6 月 2 日在卡尚观测月食,那是他《哈卡尼历表》里一串月食记录的头一条。那几十年正是帖木儿征战前后,地方凋敝,他在《哈卡尼历表》的序里直言自己穷得几乎做不下去,要不是有赞助人,这本书写不成。转机是兀鲁伯——帖木儿的孙子,本人就是天文学家:1417 至 1420 年间他在撒马尔罕建起经学院,接着动工建天文台。卡西约 1420 年前后应邀前往,做了那座天文台的第一任台长。

撒马尔罕的九年是他最好的九年。1424 年 7 月写完《论圆周》,把 2π 算到九位六十进制小数、十六位十进制小数;1427 年 3 月写完《算术之钥》,一部写给天文学者、测量员、建筑师、账房与商人的算书,五卷从整数、分数、六十进制一路讲到测量与代数,连穹顶和钟乳拱的面积怎么算都在里面;还有一部《论弦与正弦》,把 sin 1° 算到同样的精度,他没写完就死了,由同事卡迪扎德续成。1429 年 6 月 22 日,他死在天文台上。兀鲁伯后来在自己那部历表的序里称他「当世最有名的学者之一,通晓古人之学,能解最难的问题」。可欧洲很久不知道有这么一个人:十进小数的发明长期记在 1585 年的斯蒂文名下,《算术之钥》要到二十世纪中叶才被现代学者细读——卢基 1948 年之后的研究出来,这段历史的次序才被改写。

阿尔·卡西肖像
《论圆周》抄本的末页 · Wikimedia Commons,公有领域(图版取自《卡尚志》一书)。他没有画像传世——Commons 上挂着他名字的是一张现代邮票和今人所绘的像,一张都用不了,所以照惯例放他自己留下的那一页书。页上方那张表把结果列成一行行六十进制数字(用阿拉伯字母记数),下面一段点了比鲁尼的名,说的是前人算多边形周长时误差落在第几位上;末尾是作者的署名与日期,八二七年舍尔邦月中旬,也就是 1424 年 7 月,与《论圆周》的成书时间对得上。

生平

  1. 约1380
    生于卡尚

    今伊朗中部。生年无确据,1380 是后人推的;早年行医,名号里的「塔比卜」就是医生。

  2. 1406
    在卡尚观测月食

    6 月 2 日。他生平第一件能定年的事,记在《哈卡尼历表》里那串月食记录的头一条。

  3. 1407
    《天梯》

    论日月星辰的距离与大小,解前人留下的难处。3 月 1 日成书。

  4. 1410–11
    《天文学简编》

    献给伊斯坎达尔苏丹。

  5. 1413–14
    《哈卡尼历表》

    补图西《伊儿汗历表》之缺,献给兀鲁伯。序里说自己穷得几乎做不下去。

  6. 1416
    两部小书

    《观测仪器说明》讲八种仪器的做法;《花园之乐》讲他自造的「合会盘」——一件做线性内插的仪器。

  7. 约1420
    应邀去撒马尔罕

    具体哪一年众说不一(1417、1418、1421 都有人主张)。他成了那座天文台的第一任台长。

  8. 1424
    天文台动工

    兀鲁伯 1417–1420 年先建成经学院,接着建台。台里前后聚了六十来位学者。

  9. 1424
    《论圆周》

    7 月成书。正 3×2²⁸ 边形,2π 报到九位六十进制小数,自己换算成十六位十进制小数。

  10. 1427
    《算术之钥》

    3 月 2 日成书,献给兀鲁伯。五卷:整数、分数、六十进制、测量、代数,连穹顶与钟乳拱的面积都算给工匠看。

  11. 约1427–29
    《论弦与正弦》

    sin 1° 的三次方程与迭代解。他没写完,卡迪扎德续成;原本失传,靠卡迪扎德的转述留下来。

  12. 1429
    卒于撒马尔罕

    6 月 22 日(回历 832 年赖买丹月 19 日),死在天文台上。日期据肯尼迪从一部抄本的题记考出。

  13. 1449
    兀鲁伯遇弑

    天文台随之散去。《苏丹历数表》由卡迪扎德与阿里·库什吉续完,后者把它带出了撒马尔罕。

  14. 1596
    范·科伊伦报出二十位

    他那十六位的纪录保持了一百七十二年。

  15. 1948
    卢基重新读这本书

    《算术之钥》被现代学者细读之后,「十进小数由斯蒂文 1585 年发明」这个说法才被改写。卢基的德译本 1953 年在柏林身后出版。

展品厅

绝大多数展品都可以亲手把玩——这是本馆的立馆之本;少数以叙述为主的,做成故事展签。

镇馆之宝 · 亲手玩

先把误差定死,再去切八亿边形

他要的精度是:拿这个 π 去算一个直径六十万倍地球的圆,周长错不过一根马鬃。倒推下来,多边形得切到 3 × 2²⁸ 边。

a2n=2anbnan+bn,b2n=a2nbna_{2n} = \frac{2a_n b_n}{a_n + b_n}, \quad b_{2n} = \sqrt{a_{2n} b_n}

阿基米德用正 96 边形把 π 夹在 223/71 与 22/7 之间,此后一千六百多年,凡是靠多边形算 π 的人走的都是同一条路:边数翻倍,每翻一倍就要开一次平方(喀拉拉的马德哈瓦是例外,他走的是无穷级数)。1424 年 7 月的《论圆周》把这条路走到了尽头,而新的东西不在算法里,在次序上——他先写下要多准,再回头算这需要多少条边。他给的标准是一句可以验收的话:取一个直径为六十万个地球直径的圆,算出来的周长与真值相差不得超过一根马鬃。倒推并不难:边数每翻一倍,内接与外切两条周长的夹缝就缩到四分之一,也就是多定下 log₁₀4 = 0.602 位小数;要十六位,就得从正六边形起翻二十八次,于是 n = 3 × 2²⁸ = 805306368。他取半径 60,用六十进制一路算到十位,内接与外切各算一遍,最后报出 2π = 6;16,59,28,1,34,51,46,14,50,并亲手把它换算成十进制的 6.2831853071795865。今天复算得到的数对得上:这一档的上下界前十六位小数完全相同,夹缝宽 2.4 × 10⁻¹⁷;他给的值与真值差 7.9 × 10⁻¹⁸,末位那个 50 正是逐位算下去的 49、55 四舍五入的结果。那句马鬃的话也验得了——按今天的地球直径,那个圆的周长误差是 0.03 毫米,而一根马鬃在 0.1 毫米上下。此前的纪录是马德哈瓦的十一位(约 1400),此后要等一百七十二年,才由荷兰的范·科伊伦以二十位超过。

拖动翻倍次数:看内接与外切两串数字一位位对齐;底下那条尺按他的验收标准回算,这一档到底够不够细

他的做法与阿基米德同源:内接多边形给下界,外切多边形给上界,边数每翻一倍,两条线就往中间收一次。 新的是次序——他先定下要多准,再倒推该切多少边。翻一倍只买 0.602 位小数,要十六位就得从正六边形起翻二十八次,于是 n = 3 × 2²⁸ = 805306368。这一档的上下界前十六位小数完全相同, 而他报出的 2π = 6;16,59,28,1,34,51,46,14,50(六十进制)换成十进制是 6.2831853071795865, 与真值差 7.9 × 10⁻¹⁸。底下那条尺按今天的地球直径回算他的验收标准:3 × 2²⁸ 正是第一个达标的档位——上一档那个圆还要差 0.37 毫米,到这一档只差 0.09 毫米。 拖到最左边看看起点:正六边形只给出 3 到 3.4641,一位小数都还没有。

sin 1°:一个三次方程,他解了它

三倍角公式反过来读就是一个三次方程。他把它改写成「x 等于一个含 x 的式子」,从零开始代,代六轮就够。

x=sin3+4x33x = \frac{\sin 3^\circ + 4x^3}{3}

正弦表要从哪里起步?有了 sin 1°,半角与和角公式就能把整张表推出来;难的正是 1° 本身。18° 与 15° 的正弦都能由尺规作图得到,所以 3° = 18° − 15° 的正弦是现成的:0.05233595624294383。可从 3° 到 1° 要三等分角,尺规作不出来——而这恰恰意味着它满足一个三次方程:sin 3θ = 3 sin θ − 4 sin³θ,令 x = sin 1°,就是 3x − 4x³ = sin 3°。当时三次方程已有作图解法(海亚姆用两条圆锥曲线的交点),但作图给不出数字。他的走法是把方程改写成 x =(sin 3° + 4x³)/ 3,再从 x = 0 起反复代入自己。为什么快:x 只有 0.0175,4x³ 那一项几乎不动,每代一次误差就乘上 4x² = 1/821,也就是稳定地多买 2.91 位十进制、1.64 位六十进制小数。现算给出的轮次是(按「与真值的小数位逐位相同」数):一轮对 4 位,三轮对 10 位,六轮对 19 位——他要的九位六十进制小数(约合十八位十进制),六轮就到了。据《科学家传记辞典》的描述,他实际做的比这更省:每一轮不重算整个数,只算下一位六十进制数字该补多少。他报出的值是 1;2,49,43,11,14,44,16,26,17(半径取 60);与逐位算出的真值比对,前八位六十进制数字完全相同,第九位他给 17、真值是 18,换成十进制,这个 sin 1° 对到小数点后十七位。今天数值分析课上把这套办法叫不动点迭代,而「每轮把误差乘一个固定倍数」正是它的收敛速率。

1° 的正弦是尺规作不出来的——三等分角挡在那里,而这恰好意味着它满足一个三次方程。 他的走法是把方程改写成「x 等于一个含 x 的式子」,再从零开始反复代入: 因为 x 很小,4x³ 这一项几乎不动,每代一次误差就缩到 1/821。六轮之后,十九位十进制小数已经全对;他要的九位六十进制小数(约十八位)到此为止。 底下三行把三个值摆在一起:这一轮算到的、逐位算出的真值、他自己报的那一串。 前八位六十进制数字完全吻合,第九位他给 17、真值是 18——换成十进制,他的 sin 1° 对到小数点后十七位。

开五次方:一位一位把根逼出来

《算术之钥》的例题是 44240899506197 开五次方。分组、试商、平移——与三百年前中国的增乘开方术是同一套手续。

Nna+r(a+1)nan\sqrt[n]{N} \approx a + \frac{r}{(a+1)^n - a^n}

五次方根,就把被开方数从右往左五位一组分开:4424 | 08995 | 06197,三组,所以根是三位数。第一位试 5(5⁵ = 3125 ≤ 4424 < 7776 = 6⁵);第二位试 3(53⁵ = 418195493 ≤ 442408995 < 54⁵);第三位试 6(536⁵ = 44240899506176,离被开方数只差 21)。每定一位都要把 (10a + d)⁵ 展开、把整个方程平移一位,用到的正是二项系数那一行 1 5 10 10 5 1——《算术之钥》里因此印着一张到九次的系数表,当开方的工具表用。有两件事要说清楚。一,这套办法不是他一个人的:卡拉吉与萨马瓦尔一系在他之前已经在用,中国十一世纪的贾宪已有增乘开方法的骨架,十三世纪的秦九韶把它推到了任意次、任意正负系数的高次方程;十九世纪的欧洲把同一套东西叫作鲁菲尼—霍纳格式。二,真正属于他的是最后一步——余数不为零时怎么办。他给的估值是 a + r /((a+1)ⁿ − aⁿ):这道题算出来是 536 + 21/414237740281 = 536.000000000050695,而真值是 536.000000000050885,差 1.9 × 10⁻¹³。这条估值本身只是线性插值,余数越大偏得越多;但把它连同逐位开方一起写进一部教科书,意味着「任意次方根、任意精度,照着做就行」——这正是《算术之钥》要交给天文学者、测量员、账房与工匠的东西。

开方在他手里是一套可以逐位照做的手续,次数任意:分组、试商、把方程整个平移一位、再试下一位。 每一次平移要把 (10a + d)ⁿ 展开,用到的正是二项系数那一行,所以《算术之钥》里干脆印了一张到九次的系数表。 这套办法不是他一个人的:卡拉吉与萨马瓦尔一系在他之前已经有了,中国的贾宪、杨辉、秦九韶也各自走到了同一处—— 秦九韶的正负开方术还更进一步,推到了任意正负系数的高次方程。 真正属于他的是最后那一步:余数不为零时,拿 a + r /((a+1)ⁿ − aⁿ) 估余下的那一截。 这道例题只差 21,估出来的小数与真值差 1.9 × 10⁻¹³。

同一个数,六十进制与十进制各写一遍

九位六十进制小数正好抵十六位十进制:60⁹ = 1.0078 × 10¹⁶。他把结果两边各写一遍,欧洲要到一百五十八年后才有同样的写法。

609=1.0077696×101660^9 = 1.0077696 \times 10^{16}

六十进制是从巴比伦传下来的算盘:托勒密的弦表、伊斯兰世界的历表,以及今天的角度与时分秒,都是它。十进小数不是他发明的——已知最早的记载出自十世纪的乌格利迪西,十二世纪的萨马瓦尔也用过;他做的是把六十进制那一整套算法(加减乘除、开方、进位)原样搬进十进制,并在自己的书里把两种写法并排摆出来。为什么这件事要紧:在此之前,分数要么写成分数,要么写成六十进制,与整数是两套手续;写成小数之后,小数与整数用同一套竖式,「算」这件事第一次在所有数上统一起来。他的 2π 就是现成的例子:六十进制九位 6;16,59,28,1,34,51,46,14,50,十进制十六位 6.2831853071795865。两边的换算率一算就明白——一位六十进制抵 log₁₀60 = 1.778 位十进制,九位正好 16.003 位,所以他报十六位,一位不多一位不少。反过来也有实话:六十进制除得尽的分数更多(60 = 2² × 3 × 5,而 10 = 2 × 5),1/3 在六十进制是干净的 0;20,在十进制却是 0.3333…,这正是历算舍不得它的理由;十进小数最终赢了,靠的是它与整数共用一套写法。至于这本书在欧洲的遭遇:斯蒂文 1585 年的《十进》长期被当作十进小数的起点,而《算术之钥》要到二十世纪中叶才被细读——卢基 1948 年之后的研究,才把这段次序改写过来。

六十进制是天文学的算盘:从巴比伦一路传到托勒密、传到伊斯兰世界的历表,角度与时间到今天还在用它。 十进小数不是他发明的——已知最早的记载出自十世纪的乌格利迪西,萨马瓦尔也用过; 他做的是把六十进制那一整套算法原样搬进十进制,并把自己的结果两边各写一遍。 换算率一眼可见:一位六十进制小数抵 1.778 位十进制,九位正好是十六位。 下半张表是另一半实话:六十进制除得尽的分数更多(60 = 2²×3×5), 这正是历算不肯放手的理由;而十进小数最终赢了,靠的是它与整数用同一套写法。 这件事欧洲晚了一百五十八年:斯蒂文 1585 年的《十进》被当作起点,直到二十世纪中叶《算术之钥》被重新读到。

第三条边:法国课本里的「卡西定理」

两边一角求第三边。这件事《原本》第二卷早已写成面积,图西把它整理成解三角形的办法,他压成了一条能直接代数字的式子。

c2=a2+b22abcosγc^2 = a^2 + b^2 - 2ab\cos\gamma

c² = a² + b² − 2ab cos γ。这条式子的来历要分四段说。第一段是《原本》第二卷命题十二、十三:钝角三角形里,对着钝角那条边的平方,比另两条边的平方和多出两个矩形;锐角三角形里则少掉两个矩形。这两条命题里没有「余弦」二字,写的是面积,内容却与今天这条式子等价;海伦补证了它们的逆命题。第二段在球面上:九世纪的花拉子米与巴塔尼在天文计算里已经用到球面余弦定理的等价形式,只是没有把它作为一般定理陈述出来。第三段是十三世纪的图西,《论完全四边形》把三角形「已知哪几样、解哪几样」整理成一套系统的办法,三角学从此不再只是天文学的附属。第四段才轮到卡西:1427 年的《算术之钥》里,他把解三角形的这一路写成了带明确代数细节的一条式子,可以直接把数代进去算。法国的教科书至今把余弦定理叫作 théorème d'Al-Kashi——这是一个命名习惯,不是发现权;把这四段并排摆着,比一句「谁第一个发现」诚实得多。演示画的是古典证法:从顶点向对边所在的直线作垂足,b cos γ 那一段越过顶点变号的那一刻,修正项就从减变成加,而 γ = 90° 那一档剩下的正是勾股定理。今天测绘、导航与游戏里的碰撞检测,由两边一角求第三边,用的都是这一条。

两条边与它们的夹角一定,第三条边就定了——这句话要变成一个能算的数,中间隔着两千年。 《原本》第二卷命题十二、十三早把它写成了面积:钝角时多出两个矩形,锐角时少掉两个矩形; 十三世纪图西在《论完全四边形》里把「已知哪几样、怎么解」整理成了一套办法;卡西 1427 年在《算术之钥》里把它压成一条可以直接代数字的式子,法国的课本至今叫它「卡西定理」。 拖动夹角看那块投影 b cos γ:它越过 C 点变号的那一刻,修正项就从减变成加,而 γ = 90° 那一档,剩下的正是勾股定理。 今天测绘、导航、碰撞检测里要由两边一角求第三边,用的都是这一条。

写给父亲的两封信

一间屋子里有多少人算得动、王公骑在马上心算太阳的位置、谁在会上被当众说破——这些都写在他给父亲的家书里。

他从撒马尔罕给卡尚的父亲写过至少两封波斯文的信,都没有落日期。它们在二十世纪下半叶才被翻出来:一封 1960 年由肯尼迪与赛勒各自刊布并译出,另一封 1997 年由巴盖里刊出。今天我们对那座天文台日常的了解,有相当一部分直接来自这两封家书。信里记着这些事。兀鲁伯本人的学问:《古兰经》大半能背,文法、法学、韵律都通;有一天骑马途中,他只凭「回历 818 年赖哲卜月里的某个星期一,在十日与十五日之间」这几条,心算出那一天太阳的黄经,精确到两分以内,下了马叫卡西去核对——卡西自己坦白,换成他,同一道题心算只报得出度数,分数报不出来,「可当世没有第二个人做得到他那样」。天文台的规矩:兀鲁伯不许人附和,谁出于恭顺说「是」,他就回一句「你这是把无知加在我头上」;他还会故意抛一个错的问题出来,看谁客气地接下去,再当众把事情说破。撒马尔罕的规模:名单上一万多名学生够格领补助,二十四位计算者(其中几位同时是天文学者,还有几位刚开始读欧几里得),十二处讲数学的地方——他对父亲说,卡尚那边一门学问只有一两个人,讨论不起来。信里也有他自己:他反复向父亲证明自己是这群人里算得最快的那一个,某道题别人磨了十天、他一天就解开;他知道自己不懂宫廷礼数,也知道兀鲁伯容得下这一点。父亲劝他只专一门,他照做了,理由写得很实在——在一门不熟的学问上出一处错,人家会拿它来怀疑你熟的那一门。

故事展签故事展签:一座天文台的日常,靠两封家书留了下来。

传承

他的工作没有留在十八世纪——每条链的终点,都是你今天正在使用的东西。

先定误差,再倒推边数3 × 2²⁸ 边形与十六位小数数值逼近的第一步:先给精度,再选步长
三等分角化成三次方程从零起反复代入,每轮误差乘 1/821不动点迭代:今天数值求根的常用办法之一
把小数与整数写成同一套手续欧洲另起一次:斯蒂文 1585今天的小数点:价格、账户余额、实验读数都靠它
任意次方根的逐位算法与贾宪—秦九韶的增乘开方同形嵌套乘法:今天多项式求值的标准写法
为解三角形合成的那条式子法国课本里的「卡西定理」测绘、导航与碰撞检测
撒马尔罕天文台的正弦表兀鲁伯《苏丹历数表》十七世纪传进欧洲的星表

语录

他在马上只凭那几条已知,就把太阳的黄经心算到两分以内;下了马,他叫我这个仆人去核对。

—— 阿尔·卡西致父亲书 · 大意,据赛勒英译本转译。他接着承认,同一道题自己心算只报得出度数——「可当世没有第二个人做得到他那样」

你这是把无知加在我头上。

—— 同一封信里转述兀鲁伯的话 · 大意,据赛勒英译本转译。谁出于恭顺附和,他就这样回一句;他还会故意抛出错的问题,看谁客气地接下去

我把专业计算者需要的东西都收在这一本书里,尽量避开累人的冗长。

—— 《算术之钥》序,1427 · 大意,据艾丁与哈穆迪英译本转译