平方根を求める(5)
最後に
「タイガー計算機」の説明として書いた「平方根を求める方法」を、長々と詳細に解説してみました。
この解説を全部読んでもわからないといわれたら…
ごめんなさい。僕にはこれ以上の解説はできそうにありません。
長くて読むのが面倒くさい、という意見は却下。
もともと「平方根」という概念がややこしいので、易しい解説をしようと思うと長くならざるを得ません。
ところで、この方法は、「連続した奇数を引いていくだけ」というわかりやすさはありますが、計算方法としては…あまり洗練されていません。
平方根を求めるために、1×1、2×2、3×3、4×4…と順番に平方数を生成し、元の値と比較しているだけだからです。
パソコンや電卓の内部では、ほかの方法で平方根を求めています。
たとえばニュートン法(厳密には、ニュートン・ラプソン法)では以下のような式を使います。
x = (x + a/x)/2
ただこれだけです。
a を「平方根を求めたい値」だとして、x は何か適当な値で計算します。
右辺を計算すると、左辺の「新しい x」が得られるので、その x を使ってもう一度右辺の計算を行う、というように、何度か繰り返し計算します。
ほとんど x の値が変わらなくなってきたら、それが「平方根」です。
でも、ニュートン法は「繰り返すたびに精度があがる」ので、平方根に近い値を与えることができれば、少ない計算回数で精度よい平方根が得られます。
実際に、ニュートン法で計算して見ましょう。
前のページの問題と同じ、530 の平方根を、x の初期値 50 で、小数点以下15桁まで求めてみます。
1回目から順番に、得られた答えを書くと…
23.895874587458746
23.037717625062371
23.021734414744081
23.021728866443343
23.021728866442675
前のページで求めたように「小数点第2位まで」でよければ、4回目の計算で結果が出ています。
6回目以降は、計算結果が変わらないのでここには書きませんでした。つまり、6回で小数点以下15桁まで求めてしまった、ということになります。
言い換えれば、ニュートン法は効率がよいので、数回の計算でパソコンの精度を軽く超えてしまう、ということです。
余談ですが、計算サンプルページでは、「30桁の計算が見たい」という要望で作ったため、1000桁の計算までは可能なように作ってあります。
ニュートン法では、割り算は含まれているし、計算中の数値は小数点を含むので、手計算で行うのは結構面倒です。
少なくとも、タイガー計算機レベルなら、「連続した奇数を引いていく」方が簡単。
でも、電卓とメモ用紙があれば、ニュートン法で計算したほうが、計算回数も少なくてずっと簡単。
電卓があるなら√キーを押せ、って言われそうですが…
ニュートン法については、ここでは詳しく解説しません。
なんでこんな式で、ほんの数回の繰り返しで平方根が計算できるのか、興味を持った人は調べてみてください。
こちらの方法は、有名な手法なので、解説ページもたくさんありますよ。