购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第2章
不断扩展的圆圈

我多么希望我能记起那个圆,

那是阿基米德破解的确切关联。

作者不详,由J. S. 麦凯叙述
《π、 和e的记忆法》,1884年

哥贝克力石阵位于土耳其南部,靠近幼发拉底河的源头。在对该遗址的发掘中,研究人员发现了一系列神秘的巨石阵。4米高的石灰岩石柱围成10~20米宽的圆圈。这些圆圈以一对更大的巨石为中心。这些石柱的形状类似于一个拉长的“T”。大多数石柱都刻有丰富的动物浮雕。在某些部位上的图案令人联想到人的手和手臂。石阵总共有20个圆圈和大约200根石柱。

哥贝克力石阵令人印象深刻,但它真正的不同寻常之处在于其建造年代。该遗址可追溯到公元前10000年至公元前8000年,远远早于古苏美尔。这使哥贝克力石阵成为世界上已知的最古老的巨石遗址。

在6 000年后的欧洲,仍然存在建造巨石圆圈的做法。人们不禁要问,这个圆圈到底有什么特别之处,以至于人类在如此长的时间里选择将其作为一种最伟大的纪念碑建筑?

错综复杂的结构

圆的根本特征是从中心点到边缘的距离是恒定的。这个距离就是圆的 半径 (radius)。圆的 直径 (diameter)或宽度是其半径的两倍。一个圆的 周长 (circumference)是其边缘的长度。一个圆越大,它的周长和直径就越大。可以通过测量来衡量周长与直径之间的关系。拉直一根绳子穿过圆的直径,并将其长度与周长进行比较。你会发现这个圆的周长略大于它直径的三倍。重复测量后能够发现,这个比率对于所有大小的圆来说都是恒定的。当然,从数学的角度来看,“三倍多一点”这个结论并不是特别令人满意。数学家想要的是精确的答案。确定一个圆的周长与直径的精确比率是一场永无止境的探索。

这个确切的比率——不管其真实值是多少——如今用希腊字母π来表示。威尔士数学家威廉·琼斯(William Jones)在1707年首次使用π表示圆周率,古希腊人并不这样用。

把π的真实值全写下来是不可能的。18世纪60年代,约翰·海因里希·兰伯特(Johann Heinrich Lambert)证明了π是一个 无理数 (irrational number),这意味着想要枚举π需要无限多位数字。无论枚举到什么程度,数字都不会出现循环。人们最多能做到获取π的近似值。

除了前面几个整数外,π可以说是数学中最重要的数字。如果没有π,我们就很难对圆和球体进行推理。计算圆周运动、旋转和振动将成为数学难题。π的值被用在许多实际应用中,从建筑到通信、从航天飞行到量子力学。

最早的近似估计3,只对了一位数。大约在公元前2000年,巴比伦人估计π是 =3.125,算对了两位数。埃及莱因德纸草提供了一个略好一点的近似值 =3.16049,接近算对了三位数。然而,计算π值的第一个真正突破来自希腊数学家阿基米德。

阿基米德(约公元前287—公元前212年)被认为是古代最伟大的数学家之一。他出生在西西里岛的锡拉库萨,那里当时是希腊殖民地的一部分。

阿基米德的生平细节不详。今天,人们记住的是他从浴缸里跳起来,跑到街上大喊“Eureka!”(意思是“我找到了!”)的一幕。这个故事出自维特鲁威(Vitruvius)撰写的史书。书中提到阿基米德受国王之托检查一顶王冠。国王怀疑他的金匠偷偷地用一种廉价的金银合金代替了纯金。合金看起来和真金一模一样。阿基米德能找到真相吗?

在金银合金和纯金之间有一个可以测量的差别:纯金的密度更高。物体的密度是它的重量(或质量)除以它的体积。王冠的重量是可以测量的。然而,确定它的体积似乎是不可能的,因为它的形状是不规则的。

在一个充满宿命意味的夜晚,阿基米德爬进浴缸时,浴缸里的水碰巧溢出来了。就在那个瞬间,阿基米德意识到,想要测量一个不规则物体的体积,可以通过测量它浸入水后的排水量来实现。这一推论使他得以确定王冠的密度。

那顶王冠并非纯金打造。金匠犯罪了。

阿基米德破解了一系列重要的力学难题,包括阐释了杠杆定律。然而,他最大的贡献是在几何学上。他的诸多研究推动他探求π的正确值。他的研究成果是一种前所未有的精确计算π值的算法。

阿基米德的π近似算法基于三个方面的认识。首先,正多边形与圆形的外形近似。其次,多边形的周长很容易计算,因为它的边是直的。最后,正多边形的边越多,越接近于圆形。

想象一个圆。然后想象一个六边形(一个正六边形)画在这个圆的内部(图2.1)。六边形的角与圆的边缘相接触,它的边刚好在圆的内部。因为六边形比圆小,所以按道理讲,六边形的周长接近圆的周长,但略小于圆的周长。 [1]

一个正六边形在轮廓上近似于六个完全相同的三角形边对边合在一起,每个重合的边都指向中心点。这些三角形是 等边 (equilateral)三角形,也就是说,所有三条边的长度相等。由于一个六边形有六条边,所以它的周长等于六条三角形边长之和。六边形的直径等于两条三角形边长之和。因此,正六边形的周长与直径之比是 =3。因此,3是π的一个合理近似值。

现在,想象在圆的外面画一个六边形(图2.1)。在这种情况下,六边形每个边的中间与圆接触,而不是角与圆接触。圆的直径现在等于从六边形中心点到其中一边中点距离的两倍。这个更大的六边形的周长是圆直径的 倍。这就得出了π的另一个估计值:3.46410。这个估计值接近真实值,但大了一点。

图2.1 一个带有内六边形的圆(左)和一个带有外六边形的圆(右)。内六边形包含构成它的等边三角形

阿基米德用一种算法改进了这些近似推算。该算法每次迭代都会使两个多边形的边数翻倍。多边形的边越多,用它获得的π的近似值就越可靠。

算法的操作如下:

以一对内多边形和外多边形的周长作为输入。

内多边形周长和外多边形周长相乘。

除以二者之和。

得出一个新的外多边形的周长。

把这个新外多边形的周长乘以之前的内多边形周长。

求平方根。

得出一个新的内多边形的周长。

输出新的内多边形和新的外多边形的周长。

在第一次迭代中,算法将六边形变成了十二边形(有12条边的图形)。这样得到π的估计值为3.10582(内多边形)和3.21539(外多边形),提高到了六位数。

阿基米德算法的美妙之处在于,它可以反复运行。一次运行得到的输出可以作为下一轮迭代的输入进入算法中。这样一来,十二边形就可以转化为二十四边形。四十八边形可以变成九十六边形,以此类推。每一次重复,内多边形和外多边形都向圆更逼近了一点,得出更好的π估计值。

阿基米德完成了一个九十六边形的计算,得到π的两个估计值: 前者精确到四位数。后者不那么精确,但更简单,因而更受欢迎。

不幸的是,阿基米德在锡拉库萨陷落时被一名罗马士兵杀害了。关于这次冲突,有不同版本的描述。在一个版本中,阿基米德拒绝陪同士兵去见他的上级军官,理由是他正在研究一个特别有趣的问题。在另一个版本中,阿基米德试图阻止那个士兵偷他的科学仪器。令人惊奇的是,在将近2 000年之后的1699年,阿基米德的算法才被超越。

世界纪录

考古证据表明,文明出现在中国的时间与出现在美索不达米亚和埃及的时间差不多。中国的城市社会大约最早是在长江和黄河沿岸发展起来的。我们对中国早期数学知之甚少,因为当时用来写字的竹简容易腐烂。虽然东西方之间有过交流,但中国数学似乎在很大程度上是独立发展的。

现存最古老的中国数学著作《周髀算经》于公元前300年左右问世。这本书主要涵盖历法和几何,其中包括勾股定理。《九章算术》是一部类似于莱因德纸草的数学问题汇编,从大约同一时期流传下来。

中国对π值的探究似乎比西方要执着很多。公元264年,刘徽用一个96边的内多边形得到了一个近似值——3.14,精确到了三位数。后来,他将这个方法扩展到一个有3 072条边的多边形,得到了一个改进的近似值——3.14159,精确到了六位数。

公元5世纪,祖冲之在儿子祖暅的协助下做出了更准确的估计。父子二人使用了多边形方法,与阿基米德的方法类似。然而,他们实施了更多次的迭代。他们算出的上限和下限分别为3.1415927和3.1415926,精确到了七位数,创造了新的世界纪录。他们的成就屹立了近900年,是他们卓越贡献的有力证明。

今天,我们知道π等于3.14159265359,精确到12位数。对π的计算现在由计算机算法来承担。根据吉尼斯世界纪录,π的最精确值有31万亿位。产生这一数值的程序是由来自日本的埃玛·岩尾春香(Emma Haruka Iwao)编写的。程序在谷歌云上的25个虚拟机上运行计算,共花费了121天。

算术的艺术

公元前212年阿基米德被杀害是罗马统治欧洲的先兆。公元前146年,古希腊向罗马屈服。从公元前1世纪到公元5世纪,罗马帝国控制着地中海地区。当帝国最终灭亡时,欧洲文明也随之瓦解。此后1 000年里,欧洲数学之光忽明忽暗。在黑暗中,几个学术中心照亮了东方。

大约在公元762年,哈里发哈伦·拉希德(Harun al-Rashid)在他的新首都巴格达建立了智慧馆(Bayt al-Hikmah)。他的继任者不断扩建智慧馆,使之成为9世纪到13世纪一个重要的知识中心,这段时期现在被称为伊斯兰黄金时代。在智慧馆工作的学者将用希腊语和印度语写成的科学和哲学文本翻译成了阿拉伯语。他们还进行了数学、地理、天文学和物理学方面的原创研究。

智慧馆最有影响力的知识分子是穆罕默德·伊本·穆萨·阿尔·花剌子模,他在780年至850年间居住于巴格达。他的生平鲜为人知。然而,他有三部主要作品得以流传至今。

《代数学》(The Compendious Book on Calculation by Completion and Balancing)是一部代数著作。 事实上,英语中的“代数”(algebra)一词,就是从这本书的阿拉伯语标题(al-jabr,意思是恢复平衡)派生而来的。这本书描述了如何使用算法来解决数学问题,特别是线性方程和二次方程。 [2] 虽然此前已经有过关于代数的著作,但是阿尔·花剌子模的呈现风格引起了人们的关注。相比于其他人的工作,他的工作更系统、更循序渐进、更算法化。

阿尔·花剌子模在《印度算术法》(On the Hindu Art of Reckoning,约825年)一书中描述了十进制数字系统,我们今天使用的数字系统也在其中。 十进制数字系统起源于印度河谷文明(今巴基斯坦南部),该文明大约繁盛于公元前2600年,与吉萨金字塔的建造时间大致是同一时代。除了从宗教文献中搜集到的资料外,人们对该地区的原始数学知之甚少。一些铭文显示,9个非零的印度-阿拉伯数字(1—9)于公元前3世纪到公元2世纪之间出现在该地区。可以确定的是,西弗勒斯·塞博赫特(Severus Sebokht)主教在一封信中明确提到了9个非零的印度数字。他在公元650年左右生活在美索不达米亚地区。大约在同一时期,零(0)这个数字终于在印度出现了。

到了8世纪,由于使用起来非常方便,许多波斯学者都采用了印度-阿拉伯数字系统——阿尔·花剌子模的书就是关于这个主题的。他的著作成了印度-阿拉伯数字传向西方的渠道。1126年,英国自然哲学家巴斯的阿德拉德(Adelard of Bath)将《印度算术法》从阿拉伯语翻译成了拉丁语。阿德拉德译本之后,比萨的莱昂纳多(Leonardo of Pisa,即斐波那契)在1202年出版了关于这个主题的另一部著作——《计算之书》(Liber Abaci)。

1258年,在阿尔·花剌子模去世400年后,智慧馆在蒙古军队攻陷巴格达后被摧毁。

令人惊讶的是,人们接受新数字系统的速度很慢。用了几个世纪的时间,罗马数字(I、II、III、IV、V等)才被印度-阿拉伯数字取代。欧洲学者似乎非常乐于用算盘进行计算,并用罗马数字记录结果。直到16世纪,随着人们开始使用笔和纸来计算,十进制数字系统才成为首选。

英语中的“算法”(algorithm)一词正是来自《印度算术法》(Algoritmi de Numero Indorum)拉丁文译本书名中阿尔·花剌子模的名字。

层波叠浪

14世纪至17世纪的欧洲文艺复兴时期,人们重新发现了古典哲学、文学和艺术。数学也重新兴起,尤其体现在会计、力学和地图制作等实践领域的应用当中。15世纪印刷机的发明进一步促进了学术和学问的传播。

随后的18世纪启蒙运动中,西方哲学发生了革命。延续几个世纪的教条在实证和理性诘问下被一扫而空。数学和科学成为思想的基础,技术进步改变了社会的方方面面,民主和对个人自由的追求占据了上风。

观念的转变、沉重的赋税和一场场农业歉收引发了1789年的法国大革命。在这场血腥的动乱中,一位法国数学家为一个算法奠定了理论基础,该算法后来成为世界上最常用的算法之一。

图2.2 1839年由皮埃尔·阿方斯·费萨尔(Pierre-Alphonse Fessard)创作的约瑟夫·傅里叶的半身像[©纪尧姆·皮奥勒(Guillaume Piolle)/CC-BY 3.0.]

1768年,让-巴蒂斯特·约瑟夫·傅里叶(Jean-Baptiste Joseph Fourier,图2.2)出生于法国欧塞尔。傅里叶9岁时成为孤儿,在当地宗教组织开办的学校接受教育。这个小伙子在数学方面的天赋在他十几岁的时候就显现出来了。尽管如此,这个年轻人还是接受了牧师培训。成年后,傅里叶放弃了政府部门的工作,投身数学事业,成为一名教师。但很快,他就卷入了席卷全国的政治剧变。受大革命理想的启发,傅里叶倒向了政治激进主义,并加入了欧塞尔革命委员会。在随后的恐怖统治中,傅里叶发现自己卷入了敌对派系之间的暴力争端。他被关进了监狱,险些被送上断头台。

此后,傅里叶以教师身份搬去巴黎进修。他因数学才能被任命为新成立的巴黎综合理工学院(École Polytechnique)的教师。仅仅两年后,他就成了分析与力学学会的主席。傅里叶似乎注定要在学术界度过一生,直到一件意想不到的事情改变了他的人生轨迹。

在拿破仑领军入侵埃及时,傅里叶被任命为法军的科学顾问。法军于1798年7月1日占领了亚历山大。从那以后,胜利转为可耻的溃败。拿破仑离开了埃及,但傅里叶留在了开罗。在那里,他把自己的科学工作分派出去,并利用业余时间对埃及的文物进行研究。

在傅里叶最终回国后,拿破仑安排这位数学家担任伊泽尔省的行政长官,该省位于阿尔卑斯地区,首府为格勒诺布尔。正是在那里,傅里叶开始撰写他的巨著。他的著作《热的解析理论》(Théorie de la Chaleur)于1822年出版。顾名思义,这本书是关于金属棒中的热传导的。更重要的是,这本书提出,任何波形都可以看成适当时间延迟的和按比例放大缩小的谐波的加合。这个想法在当时备受争议。然而,傅里叶的假定后来被证明是正确的。

为了理解傅里叶的理论,让我们来进行一个思想实验。想象一个游泳池。在泳池一端放一台造波机,假设另一端有某种溢流管且不会反射波。我们假设这台机器产生的单个波浪的波长就是游泳池的长度。我们看着波峰从泳池的一端移动到另一端,然后下一个波峰出现在起点。这个简单的波形被称为 一次谐波 (fi rst harmonic,图2.3)。它的 周期 (period)——两个波峰之间的距离——等于泳池的长度。

现在,想象一下造波机动得更快些。这一回,两个完整的波形周期等于泳池的长度。换句话说,我们总是可以在泳池中看到两个波峰,而不是一个。这个波形就是 二次谐波 (second harmonic)。它的周期等于泳池长度的一半。

图2.3 3个谐波(左)和由它们加合产生的波形(右)。二次谐波被缩小了1/2,三次谐波被延迟了1/2个周期

接下来,我们再把造波机的速度提高一倍。这一回,周期是泳池长度的四分之一。这就是 三次谐波 (third harmonic)。

再来一次翻倍,就得到 四次谐波 (fourth harmonic),以此类推。这个谐波序列叫作 傅里叶级数 (Fourier series)。

傅里叶的非凡思想是,所有的波形——无论何种形状的波形——都是缩放和延迟谐波的加合。缩放的意思是放大或缩小波形的大小。放大会使波峰更高,波谷更低。缩小则相反。延迟一个波形意味着在时间上平移它。延迟意味着波峰和波谷比之前更晚到达。

让我们来看看把谐波加合的效果(图2.3)。设定一次谐波的 振幅 (amplitude)是1。一个波形的振幅是它与平衡位置之间的最大偏差。谐波的振幅就是波峰的高度。二次谐波的振幅是1/2。三次谐波的振幅为1,延迟为1/2个周期。如果我们把这些谐波进行加合,就能得到一个新的 复合波 (compound waveform)。加合的过程模拟了现实世界中波浪相遇时发生的情况。它们就是一个骑在另一个上面。用物理学中的术语表达就是波的 叠加 (superpose)。

显然,加合波形很容易。要逆转这个过程就复杂得多。如果给定一个复合波,如何确定组成复合波的谐波的振幅和延迟?答案就是使用 傅里叶变换 (Fourier transform,FT)。

FT以任何波形作为输入,并将其分解为谐波组分。它的输出是原始波形中分解出来的每一个谐波的振幅和延迟。例如给定图2.3中的复合波,FT将输出三个谐波组分的振幅和延迟。FT的输出是两个序列,其中一个列出了谐波的振幅。对于图2.3中的复合波,各谐波组分的振幅为[1, ,1]。第一项是一次谐波的振幅,以此类推。第二个输出序列是各个谐波的延迟:[0,0, ],以周期计算。

尽管最初只是物理学家对此感兴趣,但在计算机发明后的几十年里,傅里叶变换的真正力量才突显出来。计算机可以快速地、低成本地分析各种波形。

计算机以数字列表的形式存储波形(图2.4)。每个数字代表某一特定时刻波形的水平。较大的正值与波峰相关,绝对值较大的负值与波谷相关。这些数值被称为 样本 (sample),因为计算机每隔一段时间就会对波形的水平采集一次“样本”。如果采样次数足够密集,数字列表就会给出波形形状的合理近似值。

FT首先生成一次谐波。生成的波形包含1个周期——1个波峰和1个波谷,并且与输入序列的长度等同。该算法将两个数字列表里的样本逐个相乘,例如[1,-2,3]×[10,11,12]=[10,-22,36]。然后将这些结果加合起来。加合值就是输入与一次谐波之间的 相关系数 (correlation)。相关系数是对两个波形相似性的衡量,如果相关系数较高,就表明输入中的一次谐波较强。

该算法接下来对延迟四分之一周期的一次谐波副本重复实施求相关系数的操作。这样一来,相关系数衡量的就是输入波形与延迟的一次谐波之间的相似性。

将两个相关系数值(无延迟的和延迟的)融合起来,就可以产生一次谐波的振幅和延迟的估计值。振幅等于两个相关系数的平方和再除以样本数量后的平方根,延迟是通过计算两个相关系数的相对强度得出的。相对强度表明该组分在时间上与两个版本的谐波有多接近。

图2.4 一个波形以及用来表征这一信号的相关联的样本值

对所有的高次谐波实施这种求双重相关系数(无延迟的和延迟的)和融合的操作。这就得出了它们的振幅和延迟。

综上所述,FT算法的工作原理如下:

以一个波形作为输入。

对每一个可能的谐波重复以下步骤:

产生谐波。

求输入与谐波的相关系数。

将谐波延迟四分之一个周期。

求输入与延迟谐波的相关系数。

计算谐波的整体振幅和延迟。

当所有谐波处理完毕后停止重复。

输出每一个谐波的振幅和延迟。

乍一看,把一个复合波分解成组成它的谐波的过程像是数学上的空想——展示起来很漂亮,但几乎没有实际用处。这种观点与现实相去甚远!FT被广泛用于分析现实世界中的 信号 (signal)。

信号是现实世界中随时间变化的任何量。声音信号是能被我们听到的气压的变化。在语音识别系统(如Siri、Alexa)中,FT会在进一步分析之前将声音信号分解成其谐波组分。数字音乐播放器(如Spotify、Tidal)依靠FT识别冗余谐波信息,从而降低数据存储量。

无线电信号是一种可以用电子设备探测到的电磁变化信号。在无线通信系统(如WiFi、DAB)中,FT可以使数据通过无线电信号得到有效传输和接收。

尽管FT非常有用,但它需要用掉很多算力。求相关系数需要花费大量的时间,特别是对于长波形来说。现代设备使用一种原始算法的变体,它被恰当地命名为快速傅里叶变换,或简写为FFT。

FFT发明于1965年,用以满足迫切的军事需要。冷战期间,美国希望能够监视苏联的核试验。唯一的方法是在友好国家的监测站测量爆炸引起的地震震动。不巧的是,使用传统的FT来分析地震数据的速度非常慢。科学家詹姆斯·库利(James Cooley,1926—2016)和约翰·图基(John Tukey,1915—2000)想出了一个新版本的算法,可以在很短的时间内产生相同的结果。

他们的算法利用谐波波形的对称性在不同的求相关系数阶段之间共享结果。在谐波波形中,波谷只是波峰的反面。波峰上升的那一半是下降部分的镜像。高次谐波是低次谐波的加速版。通过对中间结果的再用,消除了计算过程中不必要的重复。

这个主意很奏效。库利-图基版的FFT使美军能将苏联的核试验定位在15千米的精度范围内。

出乎意料的是,在FFT“发明”近20年后,人们发现这个算法实际上已经存在180多年了。伟大的德国数学家卡尔·弗里德里希·高斯(Carl Friedrich Gauss,1777—1855)在1805年将该算法用于天文学数据分析。作为一个完美主义者,高斯生前没来得及将这些结果发表,这种方法最终是在他去世后出版的论文集中被发现的。高斯1805年的笔记显示,他甚至早于傅里叶就开始了这方面的研究。现在回过头来看,这个算法称为高斯变换可能更合适!

傅里叶于1830年5月16日逝世。他的名字后来被刻在埃菲尔铁塔的侧面,以此表彰他的科学成就。

傅里叶动荡的一生几乎与工业革命的时期完全重合。在仅仅70年的时间里,古老的手工业被机器生产所取代。在这些变化中,一位英国人开始思考,机器除了能织布,是不是也能用来做计算。算术领域会不会发生一场工业革命?

[1] 阿基米德无法获得我们今天使用的正弦、余弦和正切三角函数的种种好处。内六边形的边长是 内角的一半等于圆心到边的圆心角。外六边形的边长是

[2] 二次函数型算法的形式为ax 2 +bx+c=0,其中a、b、c是已知常数(或称系数),x是待计算的未知数。 Zw8nK/YQiCT3AGHkU2KDnh1a0rHY5Yxj576X8bKMtosIHuc1Hw8IvwrAEr8I/zyb

点击中间区域
呼出菜单
上一章
目录
下一章
×