Zenn
📐

有限差分の列挙とそれらの証明

2024/12/30に公開

Julia Advent Calendar 2024 シリーズ2 の9日目です🎄
https://qiita.com/advent-calendar/2024/julia

はじめに

FiniteDifferenceMatrices.jlLaTeXStrings.jl を用いて中心差分と前進差分, 4次精度までの1階微分から4階微分に対応する 有限差分 (Finite Difference) を列挙し, それらを手で証明していきます.

有限差分の列挙

FiniteDifferenceMatrices.jlfdcoefficient()で求めた係数を使い, LaTeXStrings.jl でうまく数式が表示されるようLaTeXにコンパイルできる文字列を生成します. コードはこちらにあります.
https://gist.github.com/ohno/bd52eb6461aaaeb5c2c3dec78017f33f

中心差分

2次精度

dfdx(x)=f(x+Δx)f(xΔx)2Δx+O(Δx2) \frac{\mathrm{d}f}{\mathrm{d}x}(x) = \frac{ f(x + \Delta x) - f(x - \Delta x) }{{2\Delta x}} + O(\Delta x^{2})
d2fdx2(x)=f(x+Δx)2f(x)+f(xΔx)Δx2+O(Δx2) \frac{\mathrm{d}^{2}f}{\mathrm{d}x^{2}}(x) = \frac{ f(x + \Delta x) - 2 f(x ) + f(x - \Delta x) }{{\Delta x}^{2}} + O(\Delta x^{2})
d3fdx3(x)=f(x+2Δx)2f(x+Δx)+2f(xΔx)f(x2Δx)2Δx3+O(Δx2) \frac{\mathrm{d}^{3}f}{\mathrm{d}x^{3}}(x) = \frac{ f(x + 2 \Delta x) - 2 f(x + \Delta x) + 2 f(x - \Delta x) - f(x - 2 \Delta x) }{{2\Delta x}^{3}} + O(\Delta x^{2})
d4fdx4(x)=f(x+2Δx)4f(x+Δx)+6f(x)4f(xΔx)+f(x2Δx)Δx4+O(Δx2) \frac{\mathrm{d}^{4}f}{\mathrm{d}x^{4}}(x) = \frac{ f(x + 2 \Delta x) - 4 f(x + \Delta x) + 6 f(x ) - 4 f(x - \Delta x) + f(x - 2 \Delta x) }{{\Delta x}^{4}} + O(\Delta x^{2})

4次精度

dfdx(x)=f(x+2Δx)+8f(x+Δx)8f(xΔx)+f(x2Δx)12Δx+O(Δx4) \frac{\mathrm{d}f}{\mathrm{d}x}(x) = \frac{ - f(x + 2 \Delta x) + 8 f(x + \Delta x) - 8 f(x - \Delta x) + f(x - 2 \Delta x) }{{12\Delta x}} + O(\Delta x^{4})
d2fdx2(x)=f(x+2Δx)+16f(x+Δx)30f(x)+16f(xΔx)f(x2Δx)12Δx2+O(Δx4) \frac{\mathrm{d}^{2}f}{\mathrm{d}x^{2}}(x) = \frac{ - f(x + 2 \Delta x) + 16 f(x + \Delta x) - 30 f(x ) + 16 f(x - \Delta x) - f(x - 2 \Delta x) }{{12\Delta x}^{2}} + O(\Delta x^{4})
d3fdx3(x)=f(x+3Δx)+8f(x+2Δx)13f(x+Δx)+13f(xΔx)8f(x2Δx)+f(x3Δx)8Δx3+O(Δx4) \frac{\mathrm{d}^{3}f}{\mathrm{d}x^{3}}(x) = \frac{ - f(x + 3 \Delta x) + 8 f(x + 2 \Delta x) - 13 f(x + \Delta x) + 13 f(x - \Delta x) - 8 f(x - 2 \Delta x) + f(x - 3 \Delta x) }{{8\Delta x}^{3}} + O(\Delta x^{4})
d4fdx4(x)=f(x+3Δx)+12f(x+2Δx)39f(x+Δx)+56f(x)39f(xΔx)+12f(x2Δx)f(x3Δx)6Δx4+O(Δx4) \frac{\mathrm{d}^{4}f}{\mathrm{d}x^{4}}(x) = \frac{ - f(x + 3 \Delta x) + 12 f(x + 2 \Delta x) - 39 f(x + \Delta x) + 56 f(x ) - 39 f(x - \Delta x) + 12 f(x - 2 \Delta x) - f(x - 3 \Delta x) }{{6\Delta x}^{4}} + O(\Delta x^{4})

前進差分

1次精度

dfdx(x)=f(x+Δx)f(x)Δx+O(Δx) \frac{\mathrm{d}f}{\mathrm{d}x}(x) = \frac{ f(x + \Delta x) - f(x ) }{{\Delta x}} + O(\Delta x)
d2fdx2(x)=f(x+2Δx)2f(x+Δx)+f(x)Δx2+O(Δx) \frac{\mathrm{d}^{2}f}{\mathrm{d}x^{2}}(x) = \frac{ f(x + 2 \Delta x) - 2 f(x + \Delta x) + f(x ) }{{\Delta x}^{2}} + O(\Delta x)
d3fdx3(x)=f(x+3Δx)3f(x+2Δx)+3f(x+Δx)f(x)Δx3+O(Δx) \frac{\mathrm{d}^{3}f}{\mathrm{d}x^{3}}(x) = \frac{ f(x + 3 \Delta x) - 3 f(x + 2 \Delta x) + 3 f(x + \Delta x) - f(x ) }{{\Delta x}^{3}} + O(\Delta x)
d4fdx4(x)=f(x+4Δx)4f(x+3Δx)+6f(x+2Δx)4f(x+Δx)+f(x)Δx4+O(Δx) \frac{\mathrm{d}^{4}f}{\mathrm{d}x^{4}}(x) = \frac{ f(x + 4 \Delta x) - 4 f(x + 3 \Delta x) + 6 f(x + 2 \Delta x) - 4 f(x + \Delta x) + f(x ) }{{\Delta x}^{4}} + O(\Delta x)

2次精度

dfdx(x)=f(x+2Δx)+4f(x+Δx)3f(x)2Δx+O(Δx2) \frac{\mathrm{d}f}{\mathrm{d}x}(x) = \frac{ - f(x + 2 \Delta x) + 4 f(x + \Delta x) - 3 f(x ) }{{2\Delta x}} + O(\Delta x^{2})
d2fdx2(x)=f(x+3Δx)+4f(x+2Δx)5f(x+Δx)+2f(x)Δx2+O(Δx2) \frac{\mathrm{d}^{2}f}{\mathrm{d}x^{2}}(x) = \frac{ - f(x + 3 \Delta x) + 4 f(x + 2 \Delta x) - 5 f(x + \Delta x) + 2 f(x ) }{{\Delta x}^{2}} + O(\Delta x^{2})
d3fdx3(x)=3f(x+4Δx)+14f(x+3Δx)24f(x+2Δx)+18f(x+Δx)5f(x)2Δx3+O(Δx2) \frac{\mathrm{d}^{3}f}{\mathrm{d}x^{3}}(x) = \frac{ - 3 f(x + 4 \Delta x) + 14 f(x + 3 \Delta x) - 24 f(x + 2 \Delta x) + 18 f(x + \Delta x) - 5 f(x ) }{{2\Delta x}^{3}} + O(\Delta x^{2})
d4fdx4(x)=2f(x+5Δx)+11f(x+4Δx)24f(x+3Δx)+26f(x+2Δx)14f(x+Δx)+3f(x)Δx4+O(Δx2) \frac{\mathrm{d}^{4}f}{\mathrm{d}x^{4}}(x) = \frac{ - 2 f(x + 5 \Delta x) + 11 f(x + 4 \Delta x) - 24 f(x + 3 \Delta x) + 26 f(x + 2 \Delta x) - 14 f(x + \Delta x) + 3 f(x ) }{{\Delta x}^{4}} + O(\Delta x^{2})

3次精度

dfdx(x)=2f(x+3Δx)9f(x+2Δx)+18f(x+Δx)11f(x)6Δx+O(Δx3) \frac{\mathrm{d}f}{\mathrm{d}x}(x) = \frac{ 2 f(x + 3 \Delta x) - 9 f(x + 2 \Delta x) + 18 f(x + \Delta x) - 11 f(x ) }{{6\Delta x}} + O(\Delta x^{3})
d2fdx2(x)=11f(x+4Δx)56f(x+3Δx)+114f(x+2Δx)104f(x+Δx)+35f(x)12Δx2+O(Δx3) \frac{\mathrm{d}^{2}f}{\mathrm{d}x^{2}}(x) = \frac{ 11 f(x + 4 \Delta x) - 56 f(x + 3 \Delta x) + 114 f(x + 2 \Delta x) - 104 f(x + \Delta x) + 35 f(x ) }{{12\Delta x}^{2}} + O(\Delta x^{3})
d3fdx3(x)=7f(x+5Δx)41f(x+4Δx)+98f(x+3Δx)118f(x+2Δx)+71f(x+Δx)17f(x)4Δx3+O(Δx3) \frac{\mathrm{d}^{3}f}{\mathrm{d}x^{3}}(x) = \frac{ 7 f(x + 5 \Delta x) - 41 f(x + 4 \Delta x) + 98 f(x + 3 \Delta x) - 118 f(x + 2 \Delta x) + 71 f(x + \Delta x) - 17 f(x ) }{{4\Delta x}^{3}} + O(\Delta x^{3})
d4fdx4(x)=17f(x+6Δx)114f(x+5Δx)+321f(x+4Δx)484f(x+3Δx)+411f(x+2Δx)186f(x+Δx)+35f(x)6Δx4+O(Δx3) \frac{\mathrm{d}^{4}f}{\mathrm{d}x^{4}}(x) = \frac{ 17 f(x + 6 \Delta x) - 114 f(x + 5 \Delta x) + 321 f(x + 4 \Delta x) - 484 f(x + 3 \Delta x) + 411 f(x + 2 \Delta x) - 186 f(x + \Delta x) + 35 f(x ) }{{6\Delta x}^{4}} + O(\Delta x^{3})

4次精度

dfdx(x)=3f(x+4Δx)+16f(x+3Δx)36f(x+2Δx)+48f(x+Δx)25f(x)12Δx+O(Δx4) \frac{\mathrm{d}f}{\mathrm{d}x}(x) = \frac{ - 3 f(x + 4 \Delta x) + 16 f(x + 3 \Delta x) - 36 f(x + 2 \Delta x) + 48 f(x + \Delta x) - 25 f(x ) }{{12\Delta x}} + O(\Delta x^{4})
d2fdx2(x)=10f(x+5Δx)+61f(x+4Δx)156f(x+3Δx)+214f(x+2Δx)154f(x+Δx)+45f(x)12Δx2+O(Δx4) \frac{\mathrm{d}^{2}f}{\mathrm{d}x^{2}}(x) = \frac{ - 10 f(x + 5 \Delta x) + 61 f(x + 4 \Delta x) - 156 f(x + 3 \Delta x) + 214 f(x + 2 \Delta x) - 154 f(x + \Delta x) + 45 f(x ) }{{12\Delta x}^{2}} + O(\Delta x^{4})
d3fdx3(x)=15f(x+6Δx)+104f(x+5Δx)307f(x+4Δx)+496f(x+3Δx)461f(x+2Δx)+232f(x+Δx)49f(x)8Δx3+O(Δx4) \frac{\mathrm{d}^{3}f}{\mathrm{d}x^{3}}(x) = \frac{ - 15 f(x + 6 \Delta x) + 104 f(x + 5 \Delta x) - 307 f(x + 4 \Delta x) + 496 f(x + 3 \Delta x) - 461 f(x + 2 \Delta x) + 232 f(x + \Delta x) - 49 f(x ) }{{8\Delta x}^{3}} + O(\Delta x^{4})
d4fdx4(x)=21f(x+7Δx)+164f(x+6Δx)555f(x+5Δx)+1056f(x+4Δx)1219f(x+3Δx)+852f(x+2Δx)333f(x+Δx)+56f(x)6Δx4+O(Δx4) \frac{\mathrm{d}^{4}f}{\mathrm{d}x^{4}}(x) = \frac{ - 21 f(x + 7 \Delta x) + 164 f(x + 6 \Delta x) - 555 f(x + 5 \Delta x) + 1056 f(x + 4 \Delta x) - 1219 f(x + 3 \Delta x) + 852 f(x + 2 \Delta x) - 333 f(x + \Delta x) + 56 f(x ) }{{6\Delta x}^{4}} + O(\Delta x^{4})

証明

いくつかの有限差分を導出していきます. 証明にはTaylor展開

f(x+Δx)=f(x)+f(x)xΔx+12!2f(x)x2Δx2+13!3f(x)x3Δx3+14!4f(x)x4Δx4+,f(xΔx)=f(x)f(x)xΔx+12!2f(x)x2Δx213!3f(x)x3Δx3+14!4f(x)x4Δx4+,f(x+2Δx)=f(x)+2f(x)xΔx+222!2f(x)x2Δx2+233!3f(x)x3Δx3+244!4f(x)x4Δx4+,f(x2Δx)=f(x)2f(x)xΔx+222!2f(x)x2Δx2233!3f(x)x3Δx3+244!4f(x)x4Δx4+, \begin{aligned} f(x+\Delta x) &= f(x) + \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{1}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{1}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + \cdots, \\ f(x-\Delta x) &= f(x) - \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} - \frac{1}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{1}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + \cdots, \\ f(x+2\Delta x) &= f(x) + 2\frac{\partial f(x)}{\partial x} \Delta x + \frac{2^2}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{2^3}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{2^4}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + \cdots, \\ f(x-2\Delta x) &= f(x) - 2\frac{\partial f(x)}{\partial x} \Delta x + \frac{2^2}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} - \frac{2^3}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{2^4}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + \cdots, \end{aligned}

を用います.

中心差分, 2次精度, 1階微分

f(x+Δx)=f(x)+f(x)xΔx+12!2f(x)x2Δx2+O(Δx3)f(xΔx)=f(x)f(x)xΔx+12!2f(x)x2Δx2+O(Δx3) \begin{aligned} f(x+\Delta x) &= f(x) + \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + O\left(\Delta x^{3}\right) \\ f(x-\Delta x) &= f(x) - \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + O\left(\Delta x^{3}\right) \end{aligned}

の差を取ると,

f(x+Δx)f(xΔx)=2f(x)xΔx+O(Δx3)2f(x)xΔx=f(x+Δx)f(xΔx)+O(Δx3)f(x)x=f(x+Δx)f(xΔx)2Δx+O(Δx3)2Δxf(x)x=f(x+Δx)f(xΔx)2Δx+O(Δx2) \begin{aligned} f(x+\Delta x) - f(x-\Delta x) &= 2\frac{\partial f(x)}{\partial x} \Delta x + O\left(\Delta x^{3}\right) \\ 2\frac{\partial f(x)}{\partial x} \Delta x &= f(x+\Delta x) - f(x-\Delta x) + O\left(\Delta x^{3}\right) \\ \frac{\partial f(x)}{\partial x} &= \frac{f(x+\Delta x)- f(x-\Delta x)}{2\Delta x} + \frac{O\left(\Delta x^{3}\right)}{2\Delta x} \\ \frac{\partial f(x)}{\partial x} &= \frac{f(x+\Delta x)- f(x-\Delta x)}{2\Delta x} + O\left(\Delta x^{2}\right) \end{aligned}

中心差分, 2次精度, 2階微分

f(x+Δx)=f(x)+f(x)xΔx+12!2f(x)x2Δx2+13!3f(x)x3Δx3+O(Δx4)f(xΔx)=f(x)f(x)xΔx+12!2f(x)x2Δx213!3f(x)x3Δx3+O(Δx4) \begin{aligned} f(x+\Delta x) &= f(x) + \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{1}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{4}\right) \\ f(x-\Delta x) &= f(x) - \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} - \frac{1}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{4}\right) \end{aligned}

の和を取ると,

f(x+Δx)+f(xΔx)=2f(x)+2f(x)x2Δx2+O(Δx4)2f(x)x2Δx2=f(x+Δx)2f(x)+f(xΔx)+O(Δx4)2f(x)x2=f(x+Δx)2f(x)+f(xΔx)Δx2+O(Δx4)Δx22f(x)x2=f(x+Δx)2f(x)+f(xΔx)Δx2+O(Δx2) \begin{aligned} f(x+\Delta x) + f(x-\Delta x) &= 2f(x) + \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + O\left(\Delta x^{4}\right) \\ \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} &= f(x+\Delta x) - 2f(x) + f(x-\Delta x) + O\left(\Delta x^{4}\right) \\ \frac{\partial^{2} f(x)}{\partial x^{2}} &= \frac{f(x+\Delta x) - 2f(x) + f(x-\Delta x)}{\Delta x^{2}} + \frac{O\left(\Delta x^{4}\right)}{\Delta x^{2}} \\ \frac{\partial^{2} f(x)}{\partial x^{2}} &= \frac{f(x+\Delta x) - 2f(x) + f(x-\Delta x)}{\Delta x^{2}} + O\left(\Delta x^{2}\right) \end{aligned}

中心差分, 2次精度, 3階微分

f(x+Δx)=f(x)+f(x)xΔx+12!2f(x)x2Δx2+13!3f(x)x3Δx3+14!4f(x)x4Δx4+O(Δx5)f(xΔx)=f(x)f(x)xΔx+12!2f(x)x2Δx213!3f(x)x3Δx3+14!4f(x)x4Δx4+O(Δx5) \begin{aligned} f(x+\Delta x) &= f(x) + \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{1}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{1}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + O\left(\Delta x^{5}\right) \\ f(x-\Delta x) &= f(x) - \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} - \frac{1}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{1}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + O\left(\Delta x^{5}\right) \end{aligned}

の差を取って2倍すると,

f(x+Δx)f(xΔx)=2f(x)xΔx+133f(x)x3Δx3+O(Δx5)2f(x+Δx)2f(xΔx)=4f(x)xΔx+233f(x)x3Δx3+O(Δx5) \begin{aligned} f(x+\Delta x) - f(x-\Delta x) &= 2\frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{3} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{5}\right) \\ 2f(x+\Delta x) - 2f(x-\Delta x) &= 4\frac{\partial f(x)}{\partial x} \Delta x + \frac{2}{3} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{5}\right) \end{aligned}

を得る. 次に

f(x+2Δx)=f(x)+2f(x)xΔx+222!2f(x)x2Δx2+233!3f(x)x3Δx3+244!4f(x)x4Δx4+f(x2Δx)=f(x)2f(x)xΔx+222!2f(x)x2Δx2233!3f(x)x3Δx3+244!4f(x)x4Δx4+ \begin{aligned} f(x+2\Delta x) &= f(x) + 2\frac{\partial f(x)}{\partial x} \Delta x + \frac{2^2}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{2^3}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{2^4}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + \cdots \\ f(x-2\Delta x) &= f(x) - 2\frac{\partial f(x)}{\partial x} \Delta x + \frac{2^2}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} - \frac{2^3}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{2^4}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + \cdots \end{aligned}

の差を取ると,

f(x+2Δx)f(x2Δx)=4f(x)xΔx+833f(x)x3Δx3+O(Δx5) \begin{aligned} f(x+2\Delta x) - f(x-2\Delta x) &= 4\frac{\partial f(x)}{\partial x} \Delta x + \frac{8}{3} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{5}\right) \end{aligned}

を得る. さらに, 得られた2式

2f(x+Δx)2f(xΔx)=4f(x)xΔx+233f(x)x3Δx3+O(Δx5)f(x+2Δx)f(x2Δx)=4f(x)xΔx+833f(x)x3Δx3+O(Δx5) \begin{aligned} 2f(x+\Delta x) - 2f(x-\Delta x) &= 4\frac{\partial f(x)}{\partial x} \Delta x + \frac{2}{3} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{5}\right) \\ f(x+2\Delta x) - f(x-2\Delta x) &= 4\frac{\partial f(x)}{\partial x} \Delta x + \frac{8}{3} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{5}\right) \end{aligned}

の差を取って左右を入れ替えると

633f(x)x3Δx3+O(Δx5)=2f(x+Δx)2f(xΔx)f(x+2Δx)+f(x2Δx)23f(x)x3Δx3=f(x+2Δx)2f(x+Δx)+2f(xΔx)f(x2Δx)+O(Δx5)3f(x)x3=f(x+2Δx)2f(x+Δx)+2f(xΔx)f(x2Δx)2Δx3+O(Δx5)2Δx33f(x)x3=f(x+2Δx)2f(x+Δx)+2f(xΔx)f(x2Δx)2Δx3+O(Δx2) \begin{aligned} - \frac{6}{3} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{5}\right) &= 2f(x+\Delta x) - 2f(x-\Delta x) - f(x+2\Delta x) + f(x-2\Delta x) \\ 2 \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} &= f(x+2\Delta x) - 2f(x+\Delta x) + 2f(x-\Delta x) - f(x-2\Delta x) + O\left(\Delta x^{5}\right) \\ \frac{\partial^{3} f(x)}{\partial x^{3}} &= \frac{ f(x+2\Delta x) - 2f(x+\Delta x) + 2f(x-\Delta x) - f(x-2\Delta x) }{2\Delta x^{3}} + \frac{O\left(\Delta x^{5}\right)}{2\Delta x^{3}} \\ \frac{\partial^{3} f(x)}{\partial x^{3}} &= \frac{ f(x+2\Delta x) - 2f(x+\Delta x) + 2f(x-\Delta x) - f(x-2\Delta x) }{2\Delta x^{3}} + O\left(\Delta x^{2}\right) \end{aligned}

中心差分, 2次精度, 4階微分

f(x+Δx)=f(x)+f(x)xΔx+12!2f(x)x2Δx2+13!3f(x)x3Δx3+14!4f(x)x4Δx4+15!5f(x)x5Δx5+O(Δx6)f(xΔx)=f(x)f(x)xΔx+12!2f(x)x2Δx213!3f(x)x3Δx3+14!4f(x)x4Δx415!5f(x)x5Δx5+O(Δx6) \begin{aligned} f(x+\Delta x) &= f(x) + \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{1}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{1}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + \frac{1}{5!} \frac{\partial^{5} f(x)}{\partial x^{5}} \Delta x^{5} + O\left(\Delta x^{6}\right) \\ f(x-\Delta x) &= f(x) - \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} - \frac{1}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{1}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} - \frac{1}{5!} \frac{\partial^{5} f(x)}{\partial x^{5}} \Delta x^{5} + O\left(\Delta x^{6}\right) \end{aligned}

の和を取って4倍すると,

f(x+Δx)+f(xΔx)=2f(x)+22!2f(x)x2Δx2+24!4f(x)x4Δx4+O(Δx6)4f(x+Δx)+4f(xΔx)=8f(x)+42f(x)x2Δx2+134f(x)x4Δx4+O(Δx6) \begin{aligned} f(x+\Delta x) + f(x-\Delta x) &= 2 f(x) + \frac{2}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{2}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + O\left(\Delta x^{6}\right) \\ 4f(x+\Delta x) + 4f(x-\Delta x) &= 8 f(x) + 4 \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{1}{3} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + O\left(\Delta x^{6}\right) \end{aligned}

を得る. 次に

f(x+2Δx)=f(x)+2f(x)xΔx+222!2f(x)x2Δx2+233!3f(x)x3Δx3+244!4f(x)x4Δx4+255!5f(x)x5Δx5+O(Δx6)f(x2Δx)=f(x)2f(x)xΔx+222!2f(x)x2Δx2233!3f(x)x3Δx3+244!4f(x)x4Δx4255!5f(x)x5Δx5+O(Δx6) \begin{aligned} f(x+2\Delta x) &= f(x) + 2\frac{\partial f(x)}{\partial x} \Delta x + \frac{2^2}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{2^3}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{2^4}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + \frac{2^5}{5!} \frac{\partial^{5} f(x)}{\partial x^{5}} \Delta x^{5} + O\left(\Delta x^{6}\right) \\ f(x-2\Delta x) &= f(x) - 2\frac{\partial f(x)}{\partial x} \Delta x + \frac{2^2}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} - \frac{2^3}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + \frac{2^4}{4!} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} - \frac{2^5}{5!} \frac{\partial^{5} f(x)}{\partial x^{5}} \Delta x^{5} + O\left(\Delta x^{6}\right) \end{aligned}

の和を取ると,

f(x+2Δx)+f(x2Δx)=2f(x)+42f(x)x2Δx2+434f(x)x4Δx4+O(Δx6) \begin{aligned} f(x+2\Delta x) + f(x-2\Delta x) &= 2f(x) + 4 \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{4}{3} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + O\left(\Delta x^{6}\right) \end{aligned}

を得る. さらに, 得られた2式

4f(x+Δx)+4f(xΔx)=8f(x)+42f(x)x2Δx2+134f(x)x4Δx4+O(Δx6)f(x+2Δx)+f(x2Δx)=2f(x)+42f(x)x2Δx2+434f(x)x4Δx4+O(Δx6) \begin{aligned} 4f(x+\Delta x) + 4f(x-\Delta x) &= 8 f(x) + 4 \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{1}{3} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + O\left(\Delta x^{6}\right) \\ f(x+2\Delta x) + f(x-2\Delta x) &= 2f(x) + 4 \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{4}{3} \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + O\left(\Delta x^{6}\right) \end{aligned}

の差を取ると

6f(x)4f(x)x4Δx4+O(Δx6)=4f(x+Δx)+4f(xΔx)f(x+2Δx)f(x2Δx)4f(x)x4Δx4=f(x+2Δx)4f(x+Δx)+6f(x)4f(xΔx)+f(x2Δx)+O(Δx6)4f(x)x4=f(x+2Δx)4f(x+Δx)+6f(x)4f(xΔx)+f(x2Δx)Δx4+O(Δx2) \begin{aligned} 6 f(x) - \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} + O\left(\Delta x^{6}\right) &= 4f(x+\Delta x) + 4f(x-\Delta x) - f(x+2\Delta x) - f(x-2\Delta x) \\ \frac{\partial^{4} f(x)}{\partial x^{4}} \Delta x^{4} &= f(x+2\Delta x) - 4f(x+\Delta x) + 6 f(x) - 4f(x-\Delta x) + f(x-2\Delta x) + O\left(\Delta x^{6}\right) \\ \frac{\partial^{4} f(x)}{\partial x^{4}} &= \frac{f(x+2\Delta x) - 4f(x+\Delta x) + 6 f(x) - 4f(x-\Delta x) + f(x-2\Delta x) }{\Delta x^{4}} + O\left(\Delta x^{2}\right) \end{aligned}

前進差分, 1次精度, 1階微分

f(x+Δx)=f(x)+f(x)xΔx+O(Δx2) f(x+\Delta x) = f(x) + \frac{\partial f(x)}{\partial x} \Delta x + O\left(\Delta x^{2}\right)

から直ちに

f(x+Δx)=f(x)+f(x)xΔx+O(Δx2)f(x)xΔx=f(x+Δx)f(x)+O(Δx2)f(x)x=f(x+Δx)f(x)ΔxO(Δx2)Δxf(x)x=f(x+Δx)f(x)Δx+O(Δx) \begin{aligned} f(x+\Delta x) &= f(x) + \frac{\partial f(x)}{\partial x} \Delta x + O\left(\Delta x^{2}\right) \\ \frac{\partial f(x)}{\partial x} \Delta x &= f(x+\Delta x) - f(x) + O\left(\Delta x^{2}\right) \\ \frac{\partial f(x)}{\partial x} &= \frac{f(x+\Delta x) - f(x)}{\Delta x} - \frac{O\left(\Delta x^{2}\right)}{\Delta x} \\ \frac{\partial f(x)}{\partial x} &= \frac{f(x+\Delta x) - f(x)}{\Delta x} + O\left(\Delta x\right) \end{aligned}

前身差分, 1次精度, 2階微分

まず

f(x+Δx)=f(x)+f(x)xΔx+12!2f(x)x2Δx2+13!3f(x)x3Δx3+O(Δx4) \begin{aligned} f(x+\Delta x) &= f(x) + \frac{\partial f(x)}{\partial x} \Delta x + \frac{1}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{1}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{4}\right) \end{aligned}

を2倍して,

2f(x+Δx)=2f(x)+2f(x)xΔx+22!2f(x)x2Δx2+23!3f(x)x3Δx3+O(Δx4) \begin{aligned} 2 f(x+\Delta x) &= 2f(x) + 2\frac{\partial f(x)}{\partial x} \Delta x + \frac{2}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{2}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{4}\right) \end{aligned}

となる. これと

f(x+2Δx)=f(x)+2f(x)xΔx+42!2f(x)x2Δx2+83!3f(x)x3Δx3+O(Δx4) \begin{aligned} f(x+2\Delta x) &= f(x) + 2 \frac{\partial f(x)}{\partial x} \Delta x + \frac{4}{2!} \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + \frac{8}{3!} \frac{\partial^{3} f(x)}{\partial x^{3}} \Delta x^{3} + O\left(\Delta x^{4}\right) \end{aligned}

の差を取ると,

f(x+2Δx)2f(x+Δx)=f(x)+2f(x)x2Δx2+O(Δx3) \begin{aligned} f(x+2\Delta x) - 2 f(x+\Delta x) = - f(x) + \frac{\partial^{2} f(x)}{\partial x^{2}} \Delta x^{2} + O\left(\Delta x^{3}\right) \end{aligned}

となり, これを整理して次式を得る.

2f(x)x2=f(x+2Δx)2f(x+Δx)+f(x)Δx2+O(Δx) \begin{aligned} \frac{\partial^{2} f(x)}{\partial x^{2}} &= \frac{f(x+2\Delta x) - 2f(x+\Delta x) + f(x)}{\Delta x^{2}} + O\left(\Delta x\right) \end{aligned}

まとめ

有限差分法 (Finite Difference Method, FDM) で用いる公式を列挙・証明しました.

Discussion

ログインするとコメントできます