我们只是知道用公式解题,却不知道为什么能用这个公式。
这也是为什么我高考数学140,但是我真的一点也不了解数学,知其然不知所以然,我只是擅长解题,但从不追究真理。
虽然这位同学的观点有失偏颇,但她至少提出了一个有价值的问题:“根号二等于1.414是怎么推导出来的”。
今天我们就来聊聊这个问题,与各位读者分享根号二的前世今生。
在中文互联网上,根号二常与“第一次数学危机”联系在一起。一种流行的说法是,毕达哥拉斯学派下的成员希帕索斯,偶然间根据老师的“毕达哥拉斯定理”(即勾股定理),发现边长为1的正方形对角线长度(即根号2)无法用有理数表示。
这一发现违背了毕达哥拉斯学派“万物皆数”的教义,因此希帕索斯被同门丢进海里。但毕达哥拉斯学派无法掩盖根号2的存在,从而“万物皆数”的数学大厦轰然倒塌,引发了“第一次数学危机”。
此故事是否是历史的真相已无从考证。不过,可以确定的是,希帕索斯并非第一个发现根号2的人。
在希帕索斯之前的一千多年,约公元前1800年至1600年间,古巴比伦人就发现了根号2。
在编号为YBC 7289的古巴比伦陶泥板上,画着一个正方形和它的两条对角线。对角线长度用一串数字1,24,51,10标注。由于古巴比伦采用六十进制,这串数字可以译作以下公式:
换句话说,古巴比伦人知道边长为1的正方形,其对角线长度大约是1.41421,计算精确到了小数点后5位。
古巴比伦人的发现距今约3700年,了不起的成就。
据数学家推断,古巴比伦人可能用的是下述算法(因而被称为“巴比伦法”)算出根号二的近似值。
令
; 接下来,使用以下递推公式计算:
:
比如:
那么,a?,a?,a?,a?的数值依次是:
可以看到,a?的数值已经精确到小数点后11位,与根号2的精确值非常接近,而我们仅仅做了四次迭代计算而已。
使用巴比伦方法,Ron Watkins在2016年将根号2的数值计算到小数点后十万亿(10^13)位。
小学课本上介绍根号二的时候,其实也解释了
的原因:
对于小学生来说,这样的理解已经足够深刻。不过,如果采用这种方法,猜出1.4、1.41、1.414还算容易,而接下来要计算1.4142, 1.41421, 1.414213, …… 则颇费功夫,效率远不如巴比伦法。
巴比伦法看上去非常有效,不过善于思考的读者朋友们或许已经开始犯嘀咕,“凭什么这样算出来的就是根号2呢?”
问得好。要回答这个问题,需要用到相当深刻的数学原理。以下我们长话短说,尽量用人话来解释。
巴比伦法的递推公式是
;倘若我们令
并代入,那么
化简得
毫无疑问
的一个解。
我们得到了
,而这不是一个巧合。事实上,
是递推式
的一个不动点。
换句话说,如果
, 那么
,保持“原地不动”,故名为“不动点”。
根据巴拿赫不动点定理,由于此递推公式在
区间内为一压缩映射,数列{a_n}将收敛于该区间内的不动点
。这就是巴比伦法能不断逼近根号2精确值的原因。
(注:篇幅所限,省略巴拿赫不动点定理的具体描述、压缩映射的定义、递推公式为压缩映射的推导过程)。
巴比伦法其实是牛顿法的一个特例。在实际求解形如f(x)=0的方程的过程中,我们并不总有简单的方法直接求出x的精确数值,而需要近似地求x的数值解。
牛顿法就是最常用求数值解的方法之一,其递推公式如下:
其中,
表示函数f在x_n处的导数。
牛顿法的本质是不断求函数f(x)在x_n处的切线与x轴的交点,以达到逼近正解的目的。下面这张动图形象地解释了牛顿法的原理。
对于求解根号2这个特例,其实我们求的是
这个方程的正数解。那么我们可以记
代入牛顿法的一般递推公式,可得
这还原了巴比伦法的递推公式。
虽然小学生都知道根号2约等于1.414,但推导过程其实已经超出了中学数学的范围——不仅是中国中学数学课本,也包括全世界的数学课本。
无论是牛顿法还是巴拿赫不动点定理,都只有在大学的数学课中才会涉及到。因此,中国学生不了解根号2的推导原理,而英国学生、美国学生、法国学生也不了解。这是一件非常正常的事,并不能说明“亚洲人的数学能力其实很差”。
本文的目的,则是让更多的读者了解,
究竟是怎么来的。