root.bas


  行列方程式を解く一つの方法として、行列式として展開する方法がある。

   (1)


   (2)

この方程式は二次であり、二つの根を持つ。小さい方の根を求めるために
x の値を1から系統的に増やして行くと、方程式(2)の解に近づく。
 三次方程式は解析的に根を求めることができるが、ここでは繰り返しによる方法で
解を求めることにする。


10 ' Program root
20
' 精密な解に収束させるには,増分を小さくする
30 X = 0 '
例 X=4
40 X = X + 1
' 例 X=X+0.1
50 A = (210-42*X)*(12-2*X)-(42-9*X)^2
60 IF A>0 THEN GOTO 40
70 PRINT X
80 END


10 ' Program root
20 ' 精密な解に収束させるには,増分を小さくする
30 X =
4.9348
40 X = X +
0.00001
50 A = (210-42*X)*(12-2*X)-(42-9*X)^2
60 IF A>0 THEN GOTO 40
70 PRINT A, X
80 END

実行結果

行番号30と40を書き換えて実行すると、

初期値が1で、増分が1の時 x=5でループを抜ける
初期値が4で、増分が0.1の時 x=5.0でループを抜ける
初期値が4.9で、増分が0.01の時 x=4.94でループを抜ける
初期値が4.93で、増分が0.001の時 x=4.935でループを抜ける
初期値が4.934で、増分が0.0001の時 x=4.9349でループを抜ける
初期値が4.9348で、増分が0.00001の時 x=4.93488でループを抜ける

 これにより、6桁の有効精度で根が求まったことになる。



2002 Copyright 木原 寛