科学计算器开根号

2024-08-0601:21:29综合资讯0

这是学习笔记的第 2161 篇文章

科学计算器开根号

学生时代,我们忙于应试,将许多“为什么”抛之脑后。面对未知,我们往往选择默认接受,例如,你真的理解√2吗?

你是否思考过:√2为什么是无理数?我们如何计算它?

或许大多数人的反应是:“1+1开根号就是啊,至于为什么,规定就是这样呗!”诚然,√作为一种符号的确如此,但这远非问题的全部答案。

追根溯源,这个问题比我们想象的更复杂,它可以追溯到古希腊时期。

公元前500年,古希腊数学家毕达哥拉斯(Pythagoras)提出“万物皆为数”(指有理数)的观点。他的学生希伯索斯(Hippasus)却发现一个令人震惊的事实:正方形的对角线与其一边的长度之比无法用有理数表示,这与毕氏学派的理念背道而驰。 这一发现令学派恐慌,希伯索斯最终被残忍地杀害。

要计算√2的值,我们可以将其拆解为两个问题:

1)如何证明√2是无理数?

2)如何计算√2的无理数值?

让我们带着求知欲,一起探索√2为什么是无理数

方法一:尾数证明法:

假设√2是有理数,则可以表示为a/b的形式,其中a和b都是正整数,且a、b互质(最大公因数为1)。

步骤一:√2=a/b,则a²=2b²

步骤二:根据平方数的性质,b²的尾数只能是0、1、4、5、6、9,不可能是2、3、7、8。

步骤三:2b²的尾数只能是0、2、8。

步骤四:由于a²=2b²,所以a²的尾数也只能是0,而不能是2或8。

步骤五:因为2b²一定是偶数,所以b²的尾数只能是0或5。

步骤六:根据上述推导,a和b都存在公因数5,这与a、b互质的假设矛盾。

√2是无理数。

方法二:奇偶分析法

假设√2=a/b,则a²=2b²,其中a和b都是正整数,且a、b互质。

1)由2b²可知,a²是偶数,因此a也是偶数,可以设a=2c。

2)将a=2c代入a²=2b²,得到4c²=2b²,化简得b²=2c²,因此b²也是偶数,b也是偶数。

3)a和b都是偶数,这与a、b互质的假设矛盾。

√2是无理数。值得一提的是,希帕索斯正是用这种方法证明√2的无理性。

除了上述两种方法,还有其他方法可以证明√2是无理数,本文不再一一列举。

接下来,我们探讨如何计算√2的值。以下几种方法较为易懂:

方法一:连分数法

我们知道(√2+1)(√2-1)=1,以此为基础进行推导。

√2-1=1/(√2+1)

√2 = 1+ 1/(√2+1),将√2代入等式右侧,得到

√2 = 1+ 1/(1+ 1/(√2+1)+1) = 1+ 1/(2+ 1/(√2+1))

继续推导:

√2=1+ 1/(2+ 1/(√2+1)) = 1+ 1/(2+ 1/(1+ 1/(√2+1)+1)) = 1+ 1/(2+ 1/(2+ 1/(√2+1)))

这种方法称为连分数法,通过不断迭代可以得到越来越精确的√2值。

方法二:迭代法

√2显然大于1,可以设√2 = y = 1+x

将上式平方,得到

2 = (1+x)(1+x)

展开得到

2 = 1 + x² + 2x + 1

化简得

x² + 2x = 0

进一步推导,得

x(x + 2) = 0

所以

x = 1/(x + 2)

因此

1/x = 2 + x = 2 + 1/(2x) = 2 + 1/(2 1/(x + 2))

= 2 + 1/(2 1/(1/(x + 2) + 2))

通过不断迭代,可以得到越来越精确的√2值。

计算机如何计算√2?

除了上述方法,还有许多更高级的方法可以计算√2,例如牛顿迭代法、二分法等。

在计算机领域,有一种神奇的算法可以快速计算√2,其名为“0x5f375a86”。这个算法看起来像一个内存地址,据传比牛顿迭代法快4倍。其核心代码如下:

i = 0x5f375a86 - (i>>1);

至今,人们仍未完全理解这个常数的由来。值得一提的是,这个常数最初是0x5f3759df,后来Lomont通过暴力穷举找到了更优值0x5f375a86。Lomont将他的发现写成论文《Fast Inverse Square Root》。