Processing math: 57%

Jul 24, 2017

Babylonian Method

平方根の近似値を求めるアルゴリズムです.例えば,5の推測値として最初にa=2とおいて,次の計算をします.12(a+5a)この計算で得た値を新たにaとおいて,同じ計算を繰り返します.
12(2+52)=94=2.2512(94+594)=16172=2.23611111112(16172+516172)=5184123184=2.2360679787915=2.236067977499なので,3回の計算で驚くほど速く5に近づいたことが分かります.この方法はBabylonian MethodまたはHero's method(Heroはあのヘロンの公式のヘロンと同一人物)と呼ばれています.

この式をよく見ると,a5aのarithmetic mean(算術平均=相加平均)を求める式になっています.面積がsになる長方形の1辺をaとすると,他の1辺はsaになるので,これらの算術平均を新たなaとして同じ計算を繰り返すと,正方形の1辺に近づいていくというわけです.

一般にsを求める場合を漸化式で表せば次式になります.xn+1=12(xn+sxn)極限ではxn+1xnもほぼ同じなので,その値をαとおいて上式に代入すると,α=\frac{1}{2}\left( α+\frac{s}{α} \right)整理すれば,α^2=sすなわち,α=\pm\sqrt{s}となります.

これは17世紀頃に発見されたNewton's Method(ニュートン法)x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}f(x)=x^2-sを当てはめた式と同じになりますが,もちろん,Babylonian Methodの方がずっと早くに知られていたことになります.

急速に近似する様子を確かめるものをGeoGebraでつくってみました.試してみてください.

因みに,平方根の近似値を求める方法は,小数点から 2 桁ずつ区切って割り算のようにする方法 extraction of square root(開平法)がよく知られています.

<Reference>
Methods of computing square roots
https://en.wikipedia.org/wiki/Methods_of_computing_square_roots

No comments:

Post a Comment