John Napier · 1550–1617

纳皮尔

他把乘除换成了加减:先想出两个一快一慢的点,再照它排出一张每一分一行的正弦对数表

Naplogx=107ln107x\mathrm{Nap}\,\log x = 10^{7}\,\ln\frac{10^{7}}{x}
今天的写法。1614 年他给的是一个运动学定义(见第一件),没有底数、也没有 e:整正弦 10000000 的对数是 0,正弦每缩到一半,对数就多出 6931471.8

约翰·纳皮尔 1550 年生于爱丁堡城外的默奇斯顿城堡,父亲阿奇博尔德后来做到苏格兰铸币厂厂长。1563 年他十三岁进圣安德鲁斯大学,名字不在后来的学位名单上,一般认为他没拿学位就去了欧洲大陆,在哪里读书没有留下记录;1571 年前后回到苏格兰,此后一辈子是个经营庄园的领主,书名页上署的是「默奇斯顿男爵」,拉丁名写作 Neperus。他是激烈的新教徒,自认为最要紧的著作是 1593 年那本《圣约翰启示录全解》,在欧洲大陆译成了荷、法、德文;数学是在神学与庄园之外挤时间做的事。1614 年他在爱丁堡出版了《奇妙的对数表的描述》,九十页的表把正弦之间的乘除一律换成加减。1617 年又出了《筹算术》,教人用十根刻着九九表的方柱与一张棋盘做乘除开方。同年 4 月 4 日卒于爱丁堡。讲那张表怎么造出来的《构造》,1619 年才由儿子罗伯特付印。

「乘对应加」这件事不是他头一个注意到的:1544 年施蒂费尔的《整数算术》已经把 1、2、3、4…… 与 2、4、8、16…… 上下对齐。难处在于把这条对应做得足够密,密到任何一个七位数都查得到,而且每一格都准。瑞士钟表匠比尔吉也独立做出了一张这样的表,一般认为他动手更早,可直到 1620 年才在布拉格印出来,两人的办法不同。纳皮尔的表是第一张印出来、传开了的对数表,logarithmus 这个词也是他造的,一般认为取自希腊文的「比」与「数」。馆里开普勒那一页的《鲁道夫星表》用的就是这种新东西。可他的对数与今天的不一样:没有底数,1 的对数也不是 0。把 0 挪到 1 上、改成以 10 为底,是他与布里格斯 1615 年夏天在爱丁堡商定的,见本页第六件。

纳皮尔肖像
佚名画家,油画,1616 年 · 苏格兰国家美术馆藏(PG 2228)· Wikimedia Commons,公有领域。画上题着「John Napier of Merchiston」与「ÆTATIS SVÆ 66」(时年六十六),左上角是纳皮尔家的纹章与年份 1616——他卒前一年。左手按着一本书,身旁一架天球仪

生平

  1. 1550
    生于默奇斯顿城堡

    爱丁堡城外。父亲阿奇博尔德那年十六岁。

  2. 1563
    进圣安德鲁斯大学

    十三岁。名字不在后来的学位名单上,一般认为他转去了欧洲大陆。

  3. 1593
    《圣约翰启示录全解》

    他自认为最要紧的著作,在欧洲大陆译成了荷、法、德文。

  4. 1614
    《奇妙的对数表的描述》

    爱丁堡,安德鲁·哈特印。前面讲定义与用法,后面九十页是表。见本页第一、三件。

  5. 1615
    布里格斯来访

    夏天,从伦敦北上,住了整整一个月。两人商定改成 1 的对数为 0。见本页第六件。

  6. 1616
    第二次来访;英译本出版

    布里格斯带来新表的主要部分。同年爱德华·赖特的英译本在伦敦出版。

  7. 1617
    《筹算术》

    题献给苏格兰大法官西顿。十根方柱、乘法匣、棋盘上的位置算术三样。见本页第四、五件。

  8. 1617
    卒于爱丁堡

    4 月 4 日。

  9. 1619
    《奇妙的对数表的构造》

    儿子罗伯特付印,附布里格斯的注。书里管对数叫「人造数」。见本页第二件。

  10. 1624
    布里格斯《对数算术》

    一到两万、九万到十万的常用对数,十四位。「致读者」里记下了 1615 年那一个月。

展品厅

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

两个点同时出发,对数是走出来的

一个点匀速走;另一个点越走越慢,速度与剩下的路成正比。前一个走过的路,就是后一个剩下那段的对数。

ab=cd    L(a)L(b)=L(c)L(d)\frac{a}{b} = \frac{c}{d} \;\Longrightarrow\; L(a) - L(b) = L(c) - L(d)

1614 年《奇妙的对数表的描述》第一卷第一章给的不是公式,是六条定义。第一条:一个点在相等的时刻里走过相等的路,这条线叫「等量增长」。第二条:一个点从整个正弦(半径,取 10000000)的一端出发,每一刻切掉的一段与切之前剩下的那段成同一个比例,这条线叫「按比例缩短」——越往后切得越少,永远到不了头。第六条:两个点同时出发、起步一样快,一个等量增长、一个按比例缩短;后者缩到某个正弦时,前者走过的那段路,就是这个正弦的对数。推论紧跟在后面:整正弦 10000000 的对数是 0,比它大的数,对数「小于无」。第二章第一条命题随之而来:成比例的数,对数等差——a 比 b 等于 c 比 d,a 的对数减 b 的对数就等于 c 的对数减 d 的对数,比例里的乘除从此只剩加减。今天把它写成 10⁷ 乘 ln(10⁷/x):演示里正弦每缩到一半,匀速的那个点都恰好多走 6931471.8。它不是今天的自然对数:两数之积的对数不是两个对数之和,而是 ab/10⁷ 的对数,所以他的比例式里总带着那个整正弦,而一般的比例两边一约,这个 10⁷ 就消掉了。同一章末尾他交代了为什么把 0 给了整正弦:本来给谁都行,可整正弦在三角计算里出现得最勤,它的对数是 0,加减它就永远不添麻烦。演示另有两档把「一刻」取得很粗:每刻切掉十分之一,匀速点只走到连续情形的 0.9491 倍;切掉一半,只到 0.7213 倍。他造表时每一刻只切千万分之一,这个倍数与 1 只差亿分之五。

正弦从 10000000 缩到 2,500,000.0,匀速点走了 13,862,943.6——那就是它的对数。正弦每缩到一半,对数都多出同一个 6931471.8;他的表上 30° 那一行(正弦 5000000)印的是 6931469,为什么差了 2.8,见下一件。

镇馆之宝 · 亲手玩

「倘若你没算错」

造表的第二步他写:「你会发现(倘若你没算错)末项是 9995001.222927。」该是 .224804——差在第十位,整张表的对数因此都小了千万分之 3.7 上下。

aba107<L(b)L(a)<abb107\frac{a-b}{a}\cdot 10^{7} < L(b) - L(a) < \frac{a-b}{b}\cdot 10^{7}

表是怎么造出来的,他生前没有印。1619 年儿子罗伯特把遗稿《奇妙的对数表的构造》付印,序里说这篇东西写于「对数」这个词发明之前好几年,所以书里管它们叫「人造数」。办法只用减法与移位:第一张表从 10000000 起,每一步减去自己的千万分之一,一百步到 9999900.0004950;第二张表每一步减去十万分之一,五十步;第三张表每一步减去两千分之一,二十步一列,列与列之间每一步减去百分之一,排成六十九列,最后一格 4998609.4034,已在整正弦的一半以下。每一格的对数都夹在两条界之间:从 a 走到 b,对数的增量大于 (a − b)/a、小于 (a − b)/b,各乘上整正弦,他取两条界的中间。第二张表的末项,他在第 17 节写:「你会发现(倘若你没算错)它是 9995001.222927。」照他的步子重算,是 9995001.224804,差 0.0018770,落在第十位有效数字上。这个数随即被拿去推 9995000 的对数,他得 5001.2485387,而真值是 5001.2504168;第三张表的每一步都背着这点差,六十九列乘下来,整张表的对数都按几乎同一个比例小了千万分之 3.73 到 3.76(9995000 那一步是 3.755,每一列那一步摊薄成 3.732)。演示把 30° 那两页上抄下的四十行(30°0′–8′ 与 30°30′–60′)、八十个对数摊在一张图上,纵轴是印出的数减去今算的真值:点都挤在一条过原点的斜线两旁,而《构造》里他亲手算的三个数正落在这条线上。30° 的正弦 5000000,他印 6931469,真值 6931471.8;把那个比例乘回去,这四十个正弦对数与真值平均只差 0.03,剩下的最多两三个单位。所以这张表的偏差不是抄错,也不是舍入,而是造表第二步里乘错的一个数。

切换「他印的」与「照他的步子重算」,看误差从哪一步来;在 30° 那一页上挑一行,看它落在斜线的哪里

30°0′:正弦 5000000,他印的对数 6931469,按这个正弦今算 6,931,471.81−2.81;同一行右栏(60°0′ 的正弦 8660254)对数 1438410,差 −0.41左栏的对数比右栏大四五倍,偏得也多四五倍。

一页七栏:正弦、正切、正割都在一行里

每一分一行,左边读一个角,把书倒过来从右边读它的余角;中间那栏是两边之差,正好是正切的对数。

L(tanθ)=L(sinθ)L(cosθ),L(secθ)=L(cosθ)L(\tan\theta) = L(\sin\theta) - L(\cos\theta), \quad L(\sec\theta) = -L(\cos\theta)

表占了书的后九十页,每一度两页、每一分一行,一共七栏:左边是分、正弦、对数,中间一栏叫「差」,右边是对数、正弦、分。一行管两个角:从左上往下读是 30°0′、30°1′……,把书倒过来从右下往上读,同一行就是 59°60′、59°59′……——左边的正弦恰是右边那个角的余弦。中间那栏是左右两个对数之差,也就是正切的对数;它的栏头印着「+ | −」:角小于 45° 时是正数,从另一头读那个大于 45° 的角时取负号。正割的对数不用另印,就是余弦的对数添一个负号,余割同理。第一卷第四章他自己举了例子:正弦 6946584 在 44°0′ 那一行,对数 3643349;正切 2186448 对应 12°20′,查中间一栏得 15203064;77°40′ 的正切去查同一行,同一个数取负,−15203064;正割 18118009 对应 56°30′,对数是 −5943212。一张表于是顶了今天的六张。演示里拖动角度,看同一行怎么同时给出这几样;旁边并排印今算的真值,他的数与真值之差,除了末位舍入,就是上一件讲的那个千万分之 3.7 上下——他那五个例子折回去,差都不到一个单位。这套排法是为三角计算准备的:第二卷拿它解平面与球面三角形,每一步都是查两三个数、加加减减。

30°0′:正切的对数 5493061,是正的(栏头的「+」);正割的对数 −1438410,就是余弦的对数添一个负号。

十根筹,每根四面,刻满九九表

十根方柱正好是 0 到 4 里取两个数的全部十种搭配;他算过,小于 11111 的数一个不漏都摆得出,11111 摆不出。

《筹算术》第一卷第一章教怎么做:用银、象牙、黄杨木之类,做十根方柱,每根长约三指、宽是长的十分之一,四面各分九格,每格划一条从左下到右上的对角线;一面刻一个数字的一倍到九倍,两位数就把十位与个位分在对角线两边。刻法有讲究:每根相对的两面,数字加起来是 9,而且倒着刻。按他列的次序排下来,十根筹的正面与右面恰好是 0 到 4 里取两个数的全部十种搭配,每个数字在十根筹上各出现四次。他说再没有哪种刻法比这更富余:小于 11111 的数一个不漏都摆得出,而 11111 要五个 1,摆不出。他还给了更一般的界:小于 10¹⁰ 的数,除非它与它的「对头」(加起来是 9 的数字)算作一类之后,有一类出现五次、两类合起来出现八次、或三类合起来出现十次,否则都摆得出;二十根时这三个数是九、十五、十九,三十根时是十三、二十二、二十八。这正是 1935 年霍尔那条配对定理在这里的样子:每一组数字要的筹,不能多过能刻它们的筹。今天拿逐个匹配的算法把二十万个随机的十位数验一遍,与他的界一个不差。乘法在第三章,他的例子是当年的年份 1615 乘 365:把 1、6、1、5 四根筹并排,第 3、6、5 行各自顺着对角线相加,读出 4845、9690、8075,错开一位相加得 589475。难的乘法于是只剩抄数与加法。

1615 × 365:乘数的每一位各读一行——第 3 行 4845、第 6 行 9690、第 5 行 8075——错开相加得 589475这 4 位数在十根筹上摆得出。

棋盘上只有 1、2、4、8

竖走一格值翻倍,斜走值不变——两条规矩,就能在棋盘上做乘除开方,这是二进制算术最早印出来的样子之一。

《筹算术》末尾附了一卷《位置算术》。序里他说,找省力办法的时候,在对数、筹与乘法匣之外还碰上了这一种:加、减、乘、除乃至开方,全靠在棋盘上把棋子挪来挪去,「所以它该叫游戏,不该叫劳作」。一个数先要换成「位置记号」:a 记 1、b 记 2、c 记 4、d 记 8……,每个字母是前一个的两倍。他举的是当年的年份 1611:依次减去 1024、512、64、8、2、1,记作 abdgkl;另一种换法是一路除以二,逢奇数就在那一格放一子——正是今天把十进制换成二进制的两种办法。棋盘上的规矩只有两条公理:像车那样竖走一格,值翻一倍;像象那样斜走,值不变。第九章的乘法这样做:一个数摆在底边,一个摆在右边,两边每一对子横竖相交的那一格放一子,得到一块长方形的子阵,积就是它们值的总和;再把子斜着滑到边上,同一格里两子并成上一格的一子,读出来就是积。他做了两个例:19 乘 13,即 abe 乘 acd,得 247;1206 乘 604,一路并子并到 524288,合起来 728424。演示把两例都摆出来,一步一步走。这比莱布尼茨 1703 年那篇《二进制算术解说》早八十六年;不同的是他没有用 0 和 1 两个符号记数,只把它当成棋盘上的一套挪法。

19 记作 abe13 记作 acd;落子 9 枚,滑到边上、两两并掉之后剩 7 枚,读出 247abcefgh)。他第九章的第一个例子。

爱丁堡的一个月

1615 年夏天,伦敦的几何学教授布里格斯北上住了一个月。两人商定:1 的对数是 0——常用对数就是这么来的。

1614 年那本书传到伦敦,格雷欣学院的几何学教授亨利·布里格斯一边给学生讲,一边觉得有个地方该改。十年后他在自己那部《对数算术》(1624)的「致读者」里把经过写了下来:他讲课时发觉,若整正弦的对数仍取 0,而它的十分之一——也就是 5°44′21″ 的正弦——的对数取 10000000000,会方便得多,当即写信告诉了作者;一等到学期放假,就动身去了爱丁堡,「受到极殷勤的接待,在那里住了整整一个月」。谈到怎么改时,纳皮尔说他早就这么想过,也盼着这么做,只是已经印出来的那一套先放着,等事务与身体允许再造更方便的;而且他认为该这样改:1 的对数是 0,整正弦的对数是 10000000000。布里格斯写道:「我不能不承认,这要方便得多。」于是他丢开自己已经算了的那些,照这个办法重新算;第二年夏天又去了一趟,把算出来的主要部分给他看,「第三个夏天我也乐意再去,倘若上帝让他活得那么久」。纳皮尔 1617 年 4 月 4 日去世。同年出版的《筹算术》,题献信里已经把这件事交代了:他说新找到的一种对数「比原来的好得多」,可因为身体不好,新表的推算留给精于此道的人,「首先是最博学的亨利·布里格斯先生,伦敦的几何学公共教授,我最亲爱的朋友」。同一封信还说,那十根筹早已被许多人用开,「甚至带到了外国」,朋友劝他赶紧自己印出来,免得被人拿去用别的名字发表。以 10 为底的常用对数由此而来,此后三百多年的滑尺、航海表与工程手册都用它。至于两人初次见面相对无言足有一刻钟的那个故事,出自占星家利利多年以后的转述,只当传闻。

故事展签

传承

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

1614:把正弦之间的乘除换成对数的加减开普勒 1627 年的《鲁道夫星表》用上了它,此后三百年的天文计算与航海定位都靠查对数表今天的分贝、星等、音阶的半音,都是按比例而不是按差刻的尺子:导航与天文里的对数刻度从这里开始
1614:一个点的速度与它剩下的路成正比这就是指数衰减:剩下的量每过相同的时间,按同一个比例缩短放射性衰变的半衰期、电容放电、药物在血液里的代谢,都是这条运动
1615:与布里格斯商定,1 的对数是 0、以 10 为底1624 年布里格斯印出十四位的常用对数;稍后有人把对数刻在尺子上,成了滑尺计算器上的 log 键,与工程师三百多年里的滑尺是同一样东西
1617:十根刻着九九表的方柱,乘法只剩抄数与加法十七世纪的机械计算器把同样的查表加法做进了齿轮数字计算机的乘法器里,仍是「部分积错位相加」这一套算法
1617:棋盘上的位置算术,数都拆成 1、2、4、8 之和1703 年莱布尼茨发表只用 0 和 1 的记数法,同一套算术换了一种写法每一台数字计算机做乘法,都是移位与相加

他在哪几条专题里

专题是按技术组织的演进线,一条从概念提出拉到今天的器物。这里一个字都没手写, 全是 tracks.ts 推出来的。

语录

本来给哪一个正弦、哪一个量配上 0 作对数都行;可最好是给整正弦,免得它的对数——在一切计算里出现得最勤——日后加加减减,给我们添一丁点麻烦。

—— 《奇妙的对数表的描述》第一卷第一章末的「提醒」,1614

你会发现(倘若你没算错)它是 9995001.222927。

—— 《奇妙的对数表的构造》第 17 节,第二张表的末项,1619(据 1620 年里昂版第 10 页)。照他的步子重算是 9995001.224804

加、减、乘、除,乃至开方,全凭棋子挪来挪去,所以它该叫游戏,不该叫劳作。

—— 《位置算术》序,附于《筹算术》,1617

新表的推算,因我身体不好,留给精于此道的人;首先是最博学的亨利·布里格斯先生,伦敦的几何学公共教授,我最亲爱的朋友。

—— 《筹算术》题献信,致苏格兰大法官、邓弗姆林伯爵亚历山大·西顿,1617