離散化誤差

提供: miniwiki
2018/8/19/ (日) 16:56時点におけるAdmin (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

数値解析計算物理学およびシミュレーションで、離散化誤差:Discretization error)あるいは切り捨て誤差:Truncation error)は、連続変数の関数をコンピューターで有限個数(たとえば格子モデルEnglish版上)の計算で表現することに起因する誤差。一般的に、格子の間隔を狭くすることなどによって離散化誤差を減らすことができるが、計算量は増加する。

離散化誤差は、計算物理学有限差分法疑似スペクトル法English版における誤差の主要な要因である。関数f (x ) の微分を

[math]f'(x)= \lim_{h\rightarrow0}{\frac{f(x+h)-f(x)}{h}}[/math]

とおく。h が非常に小さな有限値の場合、

[math]f'(x)\approx\frac{f(x+h)-f(x)}{h}[/math]

と近似できる。このとき、最初の微分の式と2つめの近似式の差が、離散化誤差である。

関連する現象

信号処理では、離散化に対応するのは標本化であり、標本化定理の条件が満たされる場合、情報は失われない。そうでない場合、標本化によって発生する誤差は折り返し雑音(エイリアシング)と呼ばれる。

定義域 (domain) の有限性から発生する離散化誤差は、値域 (range) の有限性から発生する量子化誤差や、浮動小数点演算によって発生する丸め誤差と混同してはいけない。値域に対して正確な値を表し、正確な演算を使用することが可能であったとしても、離散化誤差は発生する。離散化誤差は、定義域を離散的な点の集合上で表すから生じる誤差であって、値域の値の誤差ではない[1]数値解析#誤差の発生と伝播も参照)。

誤差評価

誤差の大きさは、その絶対量ではなく、格子幅h との関数関係により表される。その解析には、テイラー展開が用いられる。通常、数値解析ではh には小さい値が取られるため、より高次精度のものが誤差も小さい。

以下では、関数f の厳密な微分をDf 、離散化した微分をΔf と表す。

1次精度

1階微分Df の離散化Δf として次式を採用する:

[math]\Delta f(x) = \frac{f(x+h)-f(x)}{h}[/math]

このとき、厳密な微分との差は、

[math]\begin{align}\Delta f(x) - Df(x) &= \frac{h}{2}D^2f(x)+\cdots\\ &= O(h)\end{align}[/math]

すなわち、h の1次のオーダーとなる。ここでOランダウの記号である。このように、誤差がh の1次のオーダーとなることを、1次精度という。

2次精度

1階微分Df の離散化Δf として次式(中心差分という)を採用する:

[math]\Delta f(x) = \frac{f(x+h)-f(x-h)}{2h}[/math]

このとき、厳密な微分との差は、

[math]\begin{align}\Delta f(x) - Df(x) &= \frac{h^2}{6}D^3f(x)+\cdots\\ &= O(h^2)\end{align}[/math]

となる。このことを、2次精度という。

参考文献

  1. Higham, Nicholas (2002). Accuracy and Stability of Numerical Algorithms (2 ed). SIAM, 5. 

関連項目