- くだすれFORTRAN(超初心者用)その6
857 :デフォルトの名無しさん[sage]:2015/12/25(金) 14:17:27.29 ID:H3s+gts8 - 今二分法のプログラム書いているんだけど、うまく収束しなくて困ってるのでここで質問させてください
ある区間[a, b] の間に解があるとして、f(xsol) =0となる点を見つけようとしてます。 関数f(x) は数値計算によってしか求められない(xの多項式では記述できない)とします。 x -> xsol に近づいていると思うのですがどうしても0 に漸近しません。 収束条件は 10^{-1}程度の荒いものでも収束しません。 考えられる原因の1つとして情報桁落ちかな?と思いましたが回避する方法はあるでしょうか? ある程度計算を進めると、区間[x1, x2]において、その中点 (x1+x2)/2の値が一定となってしまいます。
|
- くだすれFORTRAN(超初心者用)その6
858 :デフォルトの名無しさん[sage]:2015/12/25(金) 14:24:09.90 ID:H3s+gts8 - >>857
後出しで申し訳有りません。 変数は全て倍精度で設定しております。
|
- くだすれFORTRAN(超初心者用)その6
861 :デフォルトの名無しさん[sage]:2015/12/25(金) 19:21:54.92 ID:H3s+gts8 - >>859
今4倍精度に宣言して計算終わったところです! 一定になるところは変わりましたが、計算を進めるとやはり中点が一定になります。。。
|
- くだすれFORTRAN(超初心者用)その6
862 :デフォルトの名無しさん[sage]:2015/12/25(金) 19:22:26.63 ID:H3s+gts8 - >>861
すみません、16倍精度の間違えです
|