-PR-
締切済み

計算精度(限りなくゼロに近く)

  • 暇なときにでも
  • 質問No.94566
  • 閲覧数93
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 62% (23/37)

現在、fortranで大きな数値計算をしています。

そこで、計算回数が多く、その計算過程において大きい値と小さい値とを何回も計算していると誤差が次第に大きくなっていきます。

A=BとなるようにA(又はB)を求めるときの判別としてabs(A-B)<10**(x)
としています。

このxに-300ぐらいの値をいれ判別したいのですがそれは可能ですか?

もちろん計算には倍精度を使っていますがabs(A-B)が10**(-17)付近になると値が一定になってしまいます。これがfortranの限界なのでしょうか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル11

ベストアンサー率 29% (114/390)

倍精度の有効桁数は16~17桁ですから、大体そこが精度の限界になります。

計算の誤差に詳しいページを示しておきますね。(参考URL)


  • 回答No.2
レベル8

ベストアンサー率 46% (22/47)

> A=BとなるようにA(又はB)を求めるときの判別としてabs(A-B)<10**(x)
> としています。

絶対誤差がいいんですかね。
相対誤差も検討してみてください。
  • 回答No.3

fotranで.尋常な方法ではないのですが.物理制限のみという演算をしたことがあります。
変数を整数配列にして.1桁を1配列に割り当てて.演算ルーチンを作成します。
三角関数や対数程度でしたらば.探せば.加減算で求めるプログラムも公開されていますから.開発は特に困難ではないでしょう。

私の場合には.マンマシンインターフェースとして.対話処理にしたことが災いし.プログラム領域が不足し.オーバーレイ構造にするためには.システム情報が必要となり.一般ユーザーであるために開発を断念しました。システム情報を操作するためには.特権ユーザーである必要があったためです。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ