[deepconv/arare/sample]

4 次精度中心差分公式の導出と誤差

4 次精度中心差分公式の導出

ここでは 4 次精度差分公式の導出を行う. ただし, ここではスタッガードグリッドを考えていることに注意されたい.

         x+Δx/2  x-Δx/2
            ↓      ↓
   --△--+--△--●--△--+--△--
     ↑         ↑         ↑
  x-3Δx/2       x      x+3Δx/2

上図において, ●上の微分系数を△の 4 点の値を用いて計算する.

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

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

辺々引くと,

        f(x+Δx/2) - f(x-Δx/2) = f'(x)Δx + (1/24)f(3)(Δx)3 + (1/1920)f(5)(Δx) + ... .           (1)

同様に f(x-3Δx/2), f(x+3Δx/2) をテーラー展開すると,

        f(x+3Δx/2) - f(x-3Δx/2) = 3f'(x)Δx + (27/24)f(3)(Δx)3 + (243/1920)f(5)(Δx)5 + ... .    (2) 

(1)x27 - (2) を計算して f(3)(Δx)3 の項を消去すると

        f'(x) = (9/8){ f(x+Δx/2) - f(x-Δx/2) }/Δx - (1/24){ f(x+3Δx/2) - f(x-3Δx/2) }/Δx + (3/640)f(x)(5)(Δx)4 + ... .

Δx の 4 次以上の項を無視すると 4 次精度差分公式

        f'(x) = (9/8){ f(x+Δx/2) - f(x-Δx/2) }/Δx - (1/24){ f(x+3Δx/2) - f(x-3Δx/2) }/Δx

を得る.

4 次精度中心差分の打ち切り誤差

ここでは 4 次精度中心差分による打ち切り誤差の大きさを求める. 誤差は差分公式導出の際に無視した項(の中で最も大きい)

        (3/640)f(x)(5)(Δx)4

で与えられる. また, f(x) = sin(2πx/L), L=NΔx (L は領域幅, N は解像度)を代入すると

        (3/640)(2π/L)5(Δx)4
      = (3/20)π5/(L N4)

と表すこともできる.


Last Update: 2005/03/15 (北守 太一)