行列方程式を解く一つの方法として、行列式として展開する方法がある。
(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 木原 寛