次に,増加値をだんだん小さくする方法にトライしてみましょう. この方法では
class Root2b { public static void main(String argv[ ]) { double e=0.000000001,d=0.1,x; x=1.0; while(d >= e){ while(x*x < 2.0) x=x+d; x=x-d; d = d / 10; } System.out.println("Square root of 2 = " + x); } }
注意点をいくつか示します.
5+2+5+3+2+4+6+7+3=37回しかありません.プログラムRoot2aではこれが414213529回でしたから,実に約1200000分の1になったことになります.このくらいになると,実際にコンピュータ上で動かしてみても実行時間の差が感じられるようになります.
26.1.3.5 じわじわ法 | 26.1.3.6 10分の1法 | 26.1.3.7 二分法 | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Mon, 26 Apr 2004 03:40:48 JST (1922d) |