对数是怎么被发明的?

对数是怎么被发明的?

童凌,医学信息学 PhD

先提一个问题:

10,000*1,000 等于多少?

如果不是太蠢的话(XD),我相信大家都不会这样算:

简单地数一下 0 的个数,两个数字 10000, 1000 分别是 4 个 0 和 3 个 0。所以答案就是一个拥有 4+3=7 个零的一个数,即 10,000,000。

在这样的简化计算过程中,我们实际上就在不知不觉中采用了对数计算方法。

最初发明对数计算方法的人,就是想到了可以创造出一种新的计算乘法和除法的方式,将它们转换成加法和减法:

就这两个等式,给数学家们省下了多少时间和生命!

我们举个使用对数公式和对数表简化计算的例子:

假设

两边同时取以 10 为底的对数,得到:

以四位对数表为例,对数表提供

的值,

查表可得

所以

,两边取指数得

根据对数表反查可得

所以用对数表计算可得

,相比于直接计算

,误差约为 0.004%。

更一般地,对两个任意大数乘积

,令

,有

的值四舍五入到最近的四位小数,查对数表

可得

,两边取指数有

,将指数部分拆分为整数和

的小数部分,再使用反查表求小数部分的指数函数值,即可得到

的值。

整个计算过程中,我们只查两次对数表,进行一次加法运算,再反查一次对数表,就能得到两个大数乘积的值,这就可以大幅度简化大数的乘除法运算,提高运算速度。


再来个天文学领域计算的例子,有人说上面的例子太简单(XD),那我们这次用真的数据:

假设地球以圆形轨道绕太阳运动,根据以下已知数据,计算太阳的质量:

  • 地球与太阳的平均距离
  • 地球公转周期
  • 万有引力常数

根据万有引力定律和牛顿运动定律可知:

不用计算器,使用对数表只要做加法、减法和简单的乘法就能求出这个表达式,所有的对数值都可以由查表得到。当时的天文学家是这样计算的:

如果按照传统方法计算,需要 7 个大数乘法竖式和 1 个除法竖式。这种算法只要一个「对数竖式」,就能取代所有的大数乘法和除法,通过简单的加减大幅度简化了运算过程。

计算所得结果为:太阳质量是

。查有关资料可知,准确值为

,所以上述计算的相对误差为

由此看出,通过对数表进行大数计算,得到的是有误差的数,不是真值,除非是那种数零就可以计算的大数。但对于许多工程计算、甚至科学计算来说,这种精度已经足够。


发明对数计算,都是因为没有计算器可用给逼出来的。

17 世纪初,在工程实践、天文观察等行业和科学研究领域中,人们开始遇到越来越多的大数字,这些大数字还需要通过复杂的乘除运算才能拿来用,所以迫切的需要一种提高计算效率的方法,于是对数和对数表就这样应时而生了。通过上面的对数公式,很容易地就把乘除法转换成了加减法,从此就不用列乘法竖式和除法竖式了。

对数有独一无二的功能:化乘除为加减,化乘方开方为乘除,将高级运算降为次级运算。当时有一种说法:对数的发明让天文学家的寿命增加了一倍。

化乘除为加减,化乘方开方为乘除,将高级运算降为次级运算

第一张对数表是瑞士工程师比尔吉(Jost Bürgi, 1552-1632)制作的,他曾经担任过著名天文学家开普勒的助手,这一工作干的主要任务就是计算天体运行的数值,大概实在是算得头晕眼花了吧,比尔吉产生了化简数值计算的想法,搞出了他自己用的对数和对数表。在完全独立的情况下,苏格兰数学家约翰·纳皮尔男爵(John Napier)发明了现在大家用的对数规则。如今一般都承认他们两人都是对数先驱。

比尔吉搞出的第一张对数表

思考题:那么对数表是怎么发明的?

提示:要发明对数表,只要求出从

的四位小数的值。那么,什么方法能够计算出从

的所有值呢?

(评论区有大佬给出了思路)

我给了其中一种解法,也是当时比尔吉和纳皮尔计算第一张对数表时采用的方法。请移步下面的问题。 我会尽快更新。 : )

在没有计算机的时代,是如何制作对数表的?