読者です 読者をやめる 読者になる 読者になる

浮動小数点演算を使わざるを得ない数値計算が難しすぎる件

数値計算を一から勉強をしようと思い、
買ったまま全然読んでなかった本
 サイエンス社 数値計算 洲之内 著, 石渡 改訂
をパラパラ見ている。正直なところ驚いた。ひと言で言えば「数値計算において誤差は避けようがない」と主張しているように感じた。
この本、各アルゴリズムの紹介の後に、ほとんどの場合、真の解からかけ離れた数値計算結果となる数値例が書かれている。同書の例題、演習問題によると情報落ち、桁落ちの影響によって、連立1次方程式の解の計算ですら誤差が発生する。

要するに、「数値計算の精度については、(教科書レベルでは?)まだまだ未解決の問題だ」とぶっちゃけたアピールをしている。とっかかりとして、この本は優れた本だと思う。そして、誤差に関する問題はほとんど解決されず、この本は終わる。

もっと統一的に、数値計算の誤差についての研究はされていないのだろうか?
例えば、「この問題に対して、このアルゴリズムを使えば、誤差は真値の何%以下です。」と理論的に証明できるとか。

ちょっと気持ち悪いので他の文献も検索した。

数値計算と誤差の話~浮動小数点演算はどれくらい信用できるか~』渡部 著
が、読みやすい分量でありながら、数値計算の現状に関してわかりやすかった。

http://yebisu.cc.kyushu-u.ac.jp/~watanabe/RESERCH/MANUSCRIPT/KOHO/FLOATING/float.pdf

要点をまとめる。
浮動小数点演算で数値計算プログラムを書く事自体は、教科書通りやれば、そこまで難しくない。
しかし、(数学的証明がない限り)得られた解の精度は保証されない。
その誤差の問題発生頻度は、上記pdfリンクの冒頭の言葉で表現されるらしい。