平方根の近似値を求めるアルゴリズムです.例えば,√5の推測値として最初にa=2とおいて,次の計算をします.12(a+5a)この計算で得た値を新たにaとおいて,同じ計算を繰り返します.
12(2+52)=94=2.2512(94+594)=16172=2.236111111⋅⋅⋅12(16172+516172)=5184123184=2.236067978791⋅⋅⋅√5=2.236067977499⋅⋅⋅なので,3回の計算で驚くほど速く√5に近づいたことが分かります.この方法はBabylonian MethodまたはHero's method(Heroはあのヘロンの公式のヘロンと同一人物)と呼ばれています.
この式をよく見ると,aと5aのarithmetic mean(算術平均=相加平均)を求める式になっています.面積がsになる長方形の1辺をaとすると,他の1辺はsaになるので,これらの算術平均を新たなaとして同じ計算を繰り返すと,正方形の1辺に近づいていくというわけです.
一般に√sを求める場合を漸化式で表せば次式になります.xn+1=12(xn+sxn)極限ではxn+1もxnもほぼ同じなので,その値をαとおいて上式に代入すると,α=\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