平方根を求める(5)


最初のページへ


最後に

「タイガー計算機」の説明として書いた「平方根を求める方法」を、長々と詳細に解説してみました。


この解説を全部読んでもわからないといわれたら…

ごめんなさい。僕にはこれ以上の解説はできそうにありません。


長くて読むのが面倒くさい、という意見は却下。

もともと「平方根」という概念がややこしいので、易しい解説をしようと思うと長くならざるを得ません。




ところで、この方法は、「連続した奇数を引いていくだけ」というわかりやすさはありますが、計算方法としては…あまり洗練されていません。

平方根を求めるために、1×1、2×2、3×3、4×4…と順番に平方数を生成し、元の値と比較しているだけだからです。


パソコンや電卓の内部では、ほかの方法で平方根を求めています。

たとえばニュートン法(厳密には、ニュートン・ラプソン法)では以下のような式を使います。


x = (x + a/x)/2


ただこれだけです。

a を「平方根を求めたい値」だとして、x は何か適当な値で計算します。

右辺を計算すると、左辺の「新しい x」が得られるので、その x を使ってもう一度右辺の計算を行う、というように、何度か繰り返し計算します。

ほとんど x の値が変わらなくなってきたら、それが「平方根」です。


「最初の x」は、0以外なら本当に何でも良いです。1 でも、10でも、a の値でも。
でも、ニュートン法は「繰り返すたびに精度があがる」ので、平方根に近い値を与えることができれば、少ない計算回数で精度よい平方根が得られます。


実際に、ニュートン法で計算して見ましょう。

前のページの問題と同じ、530 の平方根を、x の初期値 50 で、小数点以下15桁まで求めてみます。

1回目から順番に、得られた答えを書くと…

30.300000000000001
23.895874587458746
23.037717625062371
23.021734414744081
23.021728866443343
23.021728866442675

前のページで求めたように「小数点第2位まで」でよければ、4回目の計算で結果が出ています。

6回目以降は、計算結果が変わらないのでここには書きませんでした。つまり、6回で小数点以下15桁まで求めてしまった、ということになります。


実は、普通のパソコンでは、計算の精度は「15桁程度」なので、小数点以下だけで15桁あるこの結果は、誤差を含みます。
言い換えれば、ニュートン法は効率がよいので、数回の計算でパソコンの精度を軽く超えてしまう、ということです。
余談ですが、計算サンプルページでは、「30桁の計算が見たい」という要望で作ったため、1000桁の計算までは可能なように作ってあります。


ニュートン法では、割り算は含まれているし、計算中の数値は小数点を含むので、手計算で行うのは結構面倒です。

少なくとも、タイガー計算機レベルなら、「連続した奇数を引いていく」方が簡単。


でも、電卓とメモ用紙があれば、ニュートン法で計算したほうが、計算回数も少なくてずっと簡単。

電卓があるなら√キーを押せ、って言われそうですが…


ニュートン法については、ここでは詳しく解説しません。

なんでこんな式で、ほんの数回の繰り返しで平方根が計算できるのか、興味を持った人は調べてみてください。

こちらの方法は、有名な手法なので、解説ページもたくさんありますよ。

(ページ作成 2011-12-08)
(最終更新 2012-10-12)

前記事:その4     戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -