假設 \(a\) 是一個隨意給定的正數,當 \(a\) 不是完全平方數時,怎樣可以計算出誤差範圍任意小的平方根 \(\sqrt{a}\) 近似值呢?
關於這個問題,古巴比倫人給出了相當令人滿意的辦法。接下來,我們將介紹巴比倫算法 (The Babylonian Algorithm) 的計算步驟,證明算法的有效性,並估計其誤差範圍。
關於這個問題,古巴比倫人給出了相當令人滿意的辦法。接下來,我們將介紹巴比倫算法 (The Babylonian Algorithm) 的計算步驟,證明算法的有效性,並估計其誤差範圍。
- 我們選取一個夠大的正整數 \(x_0\) 使其滿足\[x^2_0>a.\]這件事很容易可以辦到,例如,我們可以選取 \(x_0=a+1\),此時\[x_0^2=(a+1)^2>a+1>a.\]
- 接著我們令\[x_1=\frac{1}{2}\left(x_0+\frac{a}{x_0}\right).\]
- 由於 \(x_0^2>a\),我們可以得到\[a>\frac{a^2}{x_0^2}=\left(\frac{a}{x_0}\right)^2.\]因此,我們知道\[x_0>\sqrt{a}>\frac{a}{x_0}.\]
- 此外,算幾不等式告訴我們\[x_0^2+\frac{a^2}{x_0^2}>2\cdot\sqrt{x_0^2\cdot\frac{a^2}{x_0^2}}=2a,\]因此\[x_1^2=\frac{1}{4}\left(x_0^2+2a+\frac{a^2}{x_0^2}\right)>a,\]綜合前面的已知事實,我們可以得到下面的關係式:\[x_0>x_1>\sqrt{a}>\frac{a}{x_0}.\]
- 由於 \(x_1\) 與 \(x_0\) 和 \(\displaystyle \frac{a}{x_0}\) 兩點等距,我們可以估計 \(x_1\) 與 \(\sqrt{a}\) 之間的誤差如下:\[x_0-\sqrt{a}=(x_0-x_1)+(x_1-\sqrt{a})>2(x_1-\sqrt{a})>0.\]
- 接下來我們可以令\[x_2=\frac{1}{2}\left(x_1+\frac{a}{x_1}\right),\]並且運用前述的討論可以得到\[x_0>x_1>x_2>\sqrt{a}>\frac{a}{x_2}\]以及\[x_0-\sqrt{a}>2^2(x_2-\sqrt{a})>0.\]
- 繼續同樣的計算(使用數學歸納法),我們可以得到一個遞減的數列\[x_0>x_1>x_2>\cdots>\sqrt{a}\]滿足\[\frac{x_0-\sqrt{a}}{2^n}>x_n-\sqrt{a}>0,\hspace{.5cm}n=1,2,\dots.\]最後,根據 Squeeze 定理,我們可以得到\[\lim_{n\to\infty}x_n=\sqrt{a}.\]
- 後記:其實,就算是我們一開始選取的正數 \(x_0\) 會使得\[x_0^2<a,\]巴比倫算法也照樣會產生一個收斂到 \(\sqrt{a}\) 的無窮數列。建議聰明的各位可以自行給出一個對應的證明喔!