打ち切り誤差の見積もり方

打ち切り誤差の見積もり方

微分係数は 2 次精度差分

f'(x) = f(x+Δx) - (x-Δx) / 2 Δx

で計算される. ただし, Δx は格子点間隔である. この計算による打ち切り誤差の大きさを求める.

f(x+Δx), f(x-Δx) をテーラー展開すると

f(x+Δx) = f(x) + f'(x) Δx + (1/2) f"(x) (Δx)^2 + (1/3!) f'''(x) (Δx)^3 + ...

f(x-Δx) = f(x) - f'(x) Δx + (1/2) f"(x) (Δx)^2 - (1/3!) f'''(x) (Δx)^3 + ...

となる. 辺々引くと

f(x+Δx) - f(x-Δx) = 2 f'(x) Δx + 2 (1/3!) f'''(x) (Δx)^3 + ...

両辺を 2 Δx で割ると

f(x+Δx) - f(x-Δx) / 2 Δx = f'(x) + (1/3!) f'''(x) (Δx)^2 + ...

となる. よって打ち切り誤差は

(1/6) f'''(x) (Δx)^2

となるはずである.

このテスト計算では f(x) として sin 関数, cos 関数を用いている. そこで今, f(x) として sin(2πx/L) を用いると打ち切り誤差は

- (1/6) (2π/L)^3 cos(2πx/L) (Δx)^2

となる. ただし, L は領域の幅である. 誤差の大きさが最大となるところでは cos(2πx/L) は 1 となる. したがって, 誤差の最大値は

(1/6) (2π/L)^3 (Δx)^2

となる.

格子点数と打ち切り誤差

上記より打ち切り誤差は (Δx)^2 に比例する. このテストでは計算領域の大 きさを固定しているので格子間隔 Δx は格子点数 n に反比例する. 従って 格子点数が多くなるほど打ち切り誤差は格子点数の 2 乗に反比例して小さく なる.

Last Update 2004/11/02 (北守 太一)