微分の差分近似は、テイラー展開後に目的の項について整理するのみです。
簡単に高次精度化ができるようですが、今まで気にしたことがありませんでした。
反省も込めて、整理です。
**************************************
1次精度‐1階微分
前進差分(テイラー展開)
f(x+Δx)=f(x)+Δxf′(x)1!+Δx2f′′(x)2!+Δx3f′′′(x)3!+Δx4f(4)(x)4!+Δx5f(5)(x)5!+…
f′(x)=f(x+Δx)−f(x)Δx−Δxf′′(x)2!−…
=f(x+Δx)−f(x)Δx+O(Δx)
後退差分(テイラー展開)
f(x−Δx)=f(x)+−Δxf′(x)1!+Δx2f′′(x)2!+−Δx3f′′′(x)3!+Δx4f(4)(x)4!+−Δx5f(5)(x)5!+…
f′(x)=f(x)−f(x−Δx)Δx+O(Δx)
2次精度‐1階微分
中心差分(前進差分‐後退差分)
f(x+Δx)−f(x−Δx)=2Δxf′(x)1!+2Δx3f′′′(x)3!+2Δx5f(5)(x)5!+…
f′(x)=f(x+Δx)−f(x−Δx)2Δx−Δx2f′′′(x)3!−…
=f(x+Δx)−f(x−Δx)2Δx+O(Δx2)
2次精度‐2階微分
中心差分(前進差分+後退差分)
f(x+Δx)+f(x−Δx)=2f(x)+2Δx2f′′(x)2!+2Δx4f(4)(x)4!+2Δx6f(6)(x)6!+…
f′′(x)=f(x+Δx)−2f(x)+f(x−Δx)Δx2−2Δx2f(4)(x)4!−…
=f(x+Δx)−2f(x)+f(x−Δx)Δx2+O(Δx2)
2次精度‐1階微分
中心差分(2Δx)
f(x+2Δx)=f(x)+2Δxf′(x)1!+22Δx2f′′(x)2!+23Δx3f′′′(x)3!+24Δx4f(4)(x)4!+25Δx5f(5)(x)5!+…
f(x−2Δx)=f(x)+−2Δxf′(x)1!+22Δx2f′′(x)2!+−23Δx3f′′′(x)3!+24Δx4f(4)(x)4!+−25Δx5f(5)(x)5!+…
f(x+2Δx)−f(x−2Δx)=22Δxf′(x)1!+24Δx3f′′′(x)3!+26Δx5f(5)(x)5!+…
f′(x)=f(x+2Δx)−f(x−2Δx)4Δx−22Δx2f′′′(x)3!−…
=f(x+2Δx)−f(x−2Δx)4Δx+O(Δx2)
4次精度‐1階微分
中心差分(Δx, 2Δx)
f(x+Δx)−f(x−Δx)=2Δxf′(x)1!+2Δx3f′′′(x)3!+2Δx5f(5)(x)5!+…
f(x+2Δx)−f(x−2Δx)=22Δxf′(x)1!+24Δx3f′′′(x)3!+26Δx5f(5)(x)5!+…
8{f(x+Δx)−f(x−Δx)}−{f(x+2Δx)− f(x−2Δx)}=12Δxf′(x)+O(Δx5)
f′(x)=8{f(x+Δx)−f(x−Δx)}−{f(x+2Δx)− f(x−2Δx)}12Δx+O(Δx4)
4次精度‐2階微分
中心差分(Δx, 2Δx)
f(x+Δx)+f(x−Δx)=2f(x)+2Δx2f′′(x)2!+2Δx4f(4)(x)4!+2Δx6f(6)(x)6!+…
f(x+2Δx)+f(x−2Δx)=2f(x)+23Δx2f′′(x)2!+25Δx4f(4)(x)4!+27Δx6f(6)(x)6!+…
16{f(x+Δx)+f(x−Δx)}−{f(x+2Δx)+f(x−2Δx)}=30f(x)+24Δxf′′(x)2!+O(Δx6)
f′′(x)=16{f(x+Δx)+f(x−Δx)}−30f(x)−{f(x+2Δx)+f(x−2Δx)}12Δx2+O(Δx4)