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

数値計算アルゴリズムの評価方法

これから数値計算プログラムを書くに先立って(まだ書けてない)、
これからできるであろう自分のプログラムを「客観的」に評価する必要を感じている。

そのため、数値計算アルゴリズムの評価方法を用意したい。
評価の尺度として、計算精度、計算量、計算時間が考えられる。

私の場合、数値計算にリアルタイム性を求めていない。
したがって、私が最も気になるのは計算精度である。

どうすれば計算精度を評価できるだろうか?

話を単純化するため、問題の解が一意的に存在する場合に限定して考える。

理論的な解釈

(机上の話ではあるが、「理論的な実数」を前提としたとき、)アルゴリズムの出す解が真の解に収束するか?
調べる必要がある。

誤差の測定実験

しかし、実際の計算機はメモリーが有限なので、理想的な実数を扱えない。

このような状況において、解の収束を理論的に証明することは、複雑さ故に極めて困難である。

そこで、複数の例題をプログラムに解かせて、その計算精度を評価する必要がある。

近似解と厳密解の誤差を計算するには、厳密解がわかっている例題を使えばよい。
このような例題に対しては、アルゴリズム同士の比較が可能になる。
(一般的に厳密解は得られないことが多い。しかし、特殊なケースでは、厳密解がわかる。)

厳密解がわかっている例題を数多く手中に収めている方が良い。
そのような例題数が多ければ多いほど、数値計算アルゴリズムを、より正確に評価できる。

ただ、(ヒルベルト行列に関する論文を見て思ったのだが、)そういった厳密解は、式が非常に複雑。厳密解の計算にも計算機の力を借りたい。それは可能なのだろうか?