質問<153>99/6/22
from=さぶいぼ
「平方根」


 1)√976000
 
     3 
 2) √100000
   
 3)√0.8844 

これらを小数点以下4桁まで求めたいのですがどのようにす
ればよいのでしょうか?
何か公式のようなものはないのでしょうか?
今までは、数を少しづつ増やしたり減らしたりしてきたので
すが細かい数字まで求めなければいけない場合は不可能にな
ってきました。
どうか良きアドバイスをお願いします。 


お返事99/6/23
from=武田


方法としては、4つあると思います。

1つ目は、関数電卓を利用する方法です。私の勤める工業高
校では、数学の時間はいつでも使って良いことにしています。
もし、差し障りがなければこれが一番でしょう。

2つ目は、開平算という2乗根を求める方法です。大変です
が、小数何位まででも求められます。詳しくは、ここの質問
47に計算方法が書いてありますので参照して下さい。ただ
し、3乗根には使えません。つまり、(1)(3)は解ける
けど、(2)は解けません。

3つ目は、常用対数表を利用するやり方です。(2)を解い
てみましょう。
     3 
X= √(100000) とおく。
logX=(1/3)・log100000
    =(1/3)・5
    =5/3
    =1.6666・・・
常用対数表より、
X=46.41・・・
あれ、このやり方では小数4位まで求めるのは難しそうです
ね。

4つ目は、簡単になるまで変形してから計算する方法です。
(1)を解いてみましょう。
√(976000)=√(27・53・61)
         =23・5・√(2・5・61)
         =40√610
この方法も、最後は関数電卓か、開平算に頼らなくてはなり
ません。

以上4つについて考察してきましたが、小数4位まで求める
のは関数電卓以外は難しそうですね。
こんな結論ではいけませんか?


お返事(追加)99/6/27
from=武田


関数電卓や開平算に頼らなくて、さらに3乗根も解ける方法
はないかと調べていたら、ニュートン法というのがありまし
た。

関数y=f(x)の点(x1,f(x1))における
接線の方程式は、
y-f(x1)=f′(x1)(x-x1)
だから
この接線とx軸が交わる点のx座標をx2とすると、
y=0より
0-f(x1)=f′(x1)(x2-x1)
x2-x1=-f(x1)/f′(x1)
x2=x1-f(x1)/f′(x1これを繰り返していくと、数列の漸化式ができる。
xn+1=xn-f(xn)/f′(xn)

したがって、xn+1はだんだんf(x)=0の解xに
近づいていく。
これを利用して、平方根や3乗根を求めることができる。

平方根√aは、
f(x)=x2-aより
f′(x)=2x
xn+1=xn-(xn2-a)/(2xn)
   =(xn+a/xn)/2
これを利用して質問を解いてみると、

 1)√976000
a=976000、x1=1000とする。
1000は2乗するとaに近いから
x2=(1000+976000/1000)/2
   =988
x3=(988+976000/988)/2
   ≒987.927125
x4=(987.92712+976000/987.92712)/2
   ≒987.927122
∴√976000=987.9271(小数第4位)

 3)√0.8844 
a=0.8844、x1=1とする。
1は2乗するとaに近いから
x2=(1+0.8844/1)/2
   =0.9422
x3=(0.9422+0.8844/0.9422)/2
   ≒0.940427
x4=(0.940427+0.8844/0.940427)/2
   ≒0.940425
∴√0.8844=0.9404(小数第4位)

3乗根3√aは、
f(x)=x3-aより
f′(x)=3x2n+1=xn-(xn3-a)/(3xn2)
   =(2xn+a/xn2)/3
より
     3 
 2) √100000
a=100000、x1=50とする。
50は3乗するとaに近いから
x2=(2×50+100000/502)/3
   ≒46.666666
x3=(2×46.666666+100000/46.6666662)/3
   ≒46.417233
x4=(2×46.417233+100000/46.4172332)/3
   ≒46.415888
x5=(2×46.415888+100000/46.4158882)/3
   ≒46.415888
∴3√100000=46.4159(小数第4位)