投稿者:与坂 昇平
投稿日:2009年10月 8日(木)12時08分17秒
|
|
|
前の 投稿で
マトリックスを ガウスの 掃きだし方で 解いた所
正確には 5.5 E-9 を プログラムは
-1.5E-15 と 表示し そのまま
計算を つずけて オカシナ 回答が 出ました
そこで
計算途中の 数値
TK(a) に 以下のように 条件を 付け加えました
if abs(TK(a))<0.000001 then goto 10 else goto 20
10
TK(a)=0.000000000000000000000000000000
20
それで
この プログラムは 一応 正確な 答えを 出しました
しかし
時々 計算された 数値に -34298675431657
等と 一目に プログラムの 暴走と 感じられる
数値が 計算されます
この場合
どの様に プログラムを 止めるのでしょうか ???
例えば
if ABS(TK(a)>100000000 then goto 30 else goto 40
30
print " error "
input xxx
40
例えば プログラムで ロボットを 動かす場合
ロボットは プログラムの ミスが 解りませんので
異常の時は 止める 場合です
|
|
|
投稿者:白石 和夫
投稿日:2009年10月 8日(木)12時38分9秒
|
|
|
> No.621[元記事へ]
BASICプログラムをを終了させる命令は
STOP
です。
STOP文は単純実行文なので,
IF ○○○ THEN STOP
のようにIF文と組み合わせても使えます。
|
|
|
投稿者:山中和義
投稿日:2009年10月 8日(木)12時39分35秒
|
|
|
> No.621[元記事へ]
与坂 昇平さんへのお返事です。
> 時々 計算された 数値に -34298675431657
> 等と 一目に プログラムの 暴走と 感じられる
> 数値が 計算されます
ピボット選択は正しく行っていますか。
0に近い小さい値で各係数を割ると誤差が大きくなっていきます。
> この場合
> どの様に プログラムを 止めるのでしょうか ???
それでいいと思います。
連立方程式を掲載していただければ、こちらでも検証できると思いますが、、、?
|
|
|
戻る