有限差分法
📂数値解析有限差分法
定義
有限差分法finite difference method, FDMは、微分係数を計算する数値的方法で、短い間隔での平均変化率で微分係数を近似するものである。
説明
公式導出の核心は、テイラー展開だ。
f(x+h)=f(x)+f′(x)h+2!f′′(x)h2+3!f′′′h3+⋯(1)
導関数だけが左辺に来るように整理すると、
f′(x)=hf(x+h)−f(x)+2!f′′(x)h+⋯=hf(x+h)−f(x)+O(h)≈hf(x+h)−f(x)
ここで、O(h)は漸近記号だ。hが十分に小さい場合、右辺は左辺をかなりよく近似するだろう。実際、微分や加速度を初めて学ぶとき、平均変化率の極限として説明されることが多い。
導関数
前進差分
xでの微分係数をxと次のタイムステップx+hの平均変化率で近似することを前進差分という。誤差項はO(h)だ。
f′(x)≈hf(x+h)−f(x)
後退差分
xでの微分係数をxと前のタイムステップx−hの平均変化率で近似することを後退差分という。誤差項はO(h)だ。
f′(x)≈hf(x)−f(x−h)
中央差分
中央差分は、前の二つの方法と違って、誤差項がO(h2)である。(1)でhの代わりに±2hを代入すると、
f(x+h/2)=f(x)+f′(x)2h+2!f′′(x)(2h)2+3!f′′′(x)(2h)3+⋯
f(x−h/2)=f(x)−f′(x)2h+2!f′′(x)(2h)2−3!f′′′(x)(2h)3+⋯
上の式から下の式を引くと、
f(x+h/2)−f(x−h/2)=f′(x)h+23!f′′′(x)(2h)3+⋯
f′(x)について整理すると、
f′(x)=hf(x+h/2)−f(x−h/2)+3!f′′′(x)(2h)2+⋯=hf(x+h/2)−f(x−h/2)+O(h2)≈hf(x+h/2)−f(x−h/2)
二階導関数
(1)と(1)にhの代わりに−hを代入した二つの式を足すと、次のようになる。
+f(x+h)f(x−h)f(x+h)+f(x−h)=f(x)+f′(x)h+2!f′′(x)h2+3!f′′′h3+⋯=f(x)−f′(x)h+2!f′′(x)h2−3!f′′′h3+⋯=2f(x)+f′′(x)h2+24!f′′′′h4+⋯
f′′について整理すると、
f′′(x)=h2f(x+h)−2f(x)+f(x−h)+24!f′′′′h2+⋯=h2f(x+h)−2f(x)+f(x−h)+O(h2)≈h2f(x+h)−2f(x)+f(x−h)
誤差項を考慮しなければ、この式はf′に前進差分法と後退差分法を順に適用して得られるものでもある。
f′′(x)≈hf′(x+h)−f′(x)≈hhf(x+h)−f(x)−hf(x)−f(x−h)=h2f(x+h)−2f(x)+f(x−h)
参考