logo

유한차분법 📂수치해석

유한차분법

정의1 2

유한차분법finite difference method, FDM미분계수를 계산하는 수치적방법으로, 짧은 구간에서의 평균 변화율로 미분계수를 근사한다.

설명

공식 유도의 핵심은 테일러 전개이다.

$$ f(x+h) = f(x) + f^{\prime}(x)h + \dfrac{f^{\prime \prime}(x)}{2!}h^{2} + \dfrac{f^{\prime \prime \prime}}{3!}h^{3} + \cdots \tag{1} $$

도함수만 좌변에 오도록 정리하면,

$$ \begin{align*} f^{\prime}(x) &= \dfrac{f(x+h) - f(x)}{h} + \dfrac{f^{\prime \prime}(x)}{2!}h + \cdots \\ &= \dfrac{f(x+h) - f(x)}{h} + \mathcal{O}(h) \\ &\approx \dfrac{f(x+h) - f(x)}{h} \end{align*} $$

여기서 $\mathcal{O}(h)$는 점근 표기법이다. $h$가 충분히 작다면 우변은 좌변을 꽤나 잘 근사할 것이다. 실제로 미분이나 가속도를 처음 배울 때 평균 변화율의 극한으로 설명하곤 한다.

도함수

전방차분

$x$에서의 미분계수를 $x$와 다음 타임스텝 $x+h$의 평균변화율로 근사하는 것을 전방차분forward difference이라 한다. 에러 항은 $\mathcal{O}(h)$이다.

$$ f^{\prime}(x) \approx \dfrac{f(x+h) - f(x)}{h} $$

후방차분

$x$에서의 미분계수를 $x$와 이전 타임스텝 $x-h$의 평균변화율로 근사하는 것을 후방차분backword difference이라 한다. 에러 항은 $\mathcal{O}(h)$이다.

$$ f^{\prime}(x) \approx \dfrac{f(x) - f(x-h)}{h} $$

중앙차분

중앙차분central difference은 위의 두 방법과 달리 에러 항이 $\mathcal{O}(h^{2})$이다. $(1)$에서 $h$대신 $\pm\frac{h}{2}$를 대입하면,

$$ f(x+h/2) = f(x) + f^{\prime}(x)\frac{h}{2} + \dfrac{f^{\prime \prime}(x)}{2!}\left(\frac{h}{2}\right)^{2} + \dfrac{f^{\prime \prime \prime}(x)}{3!}\left(\frac{h}{2}\right)^{3} + \cdots $$

$$ f(x-h/2) = f(x) - f^{\prime}(x)\frac{h}{2} + \dfrac{f^{\prime \prime}(x)}{2!}\left(\frac{h}{2}\right)^{2} - \dfrac{f^{\prime \prime \prime}(x)}{3!}\left(\frac{h}{2}\right)^{3} + \cdots $$

위의 식에서 아래의 식을 빼면,

$$ f(x+h/2) - f(x-h/2) = f^{\prime}(x)h + 2\dfrac{f^{\prime \prime \prime}(x)}{3!}\left(\frac{h}{2}\right)^{3} + \cdots $$

$f^{\prime}(x)$에 대해서 정리하면,

$$ \begin{align*} f^{\prime}(x) &= \frac{f(x+h/2) - f(x-h/2)}{h} + \dfrac{f^{\prime \prime \prime}(x)}{3!}\left(\frac{h}{2}\right)^{2} + \cdots \\ &= \frac{f(x+h/2) - f(x-h/2)}{h} + \mathcal{O}(h^{2}) \\ &\approx \frac{f(x+h/2) - f(x-h/2)}{h} \end{align*} $$

이계도함수

$(1)$과 $(1)$에 $h$ 대신 $-h$를 대입한 두 식을 서로 더하면 다음과 같다.

$$ \begin{align*} && f(x+h) &= f(x) + f^{\prime}(x)h + \dfrac{f^{\prime \prime}(x)}{2!}h^{2} + \dfrac{f^{\prime \prime \prime}}{3!}h^{3} + \cdots \\ {+} && f(x-h) &= f(x) - f^{\prime}(x)h + \dfrac{f^{\prime \prime}(x)}{2!}h^{2} - \dfrac{f^{\prime \prime \prime}}{3!}h^{3} + \cdots \\ \hline && f(x+h) + f(x-h) &= 2f(x) + f^{\prime \prime}(x)h^{2} + 2\dfrac{f^{\prime \prime \prime \prime}}{4!}h^{4} + \cdots \end{align*} $$

$f^{\prime \prime}$에 대해서 정리하면,

$$ \begin{align*} f^{\prime \prime}(x) &= \frac{f(x+h) - 2f(x) + f(x-h)}{h^{2}} + 2\dfrac{f^{\prime \prime \prime \prime}}{4!}h^{2} + \cdots \\ &= \frac{f(x+h) - 2f(x) + f(x-h)}{h^{2}} + \mathcal{O}(h^{2}) \\ &\approx \frac{f(x+h) - 2f(x) + f(x-h)}{h^{2}} \end{align*} $$

에러 항을 고려하지 않는다면, 위 식은 $f^{\prime}$에 전방차분법과 후방차분법을 차례로 적용하여서 얻을 수도 있다.

$$ \begin{align*} f^{\prime \prime}(x) &\approx \dfrac{f^{\prime}(x+h) - f^{\prime}(x)}{h} \\ &\approx \dfrac{\dfrac{f(x+h)-f(x)}{h} - \dfrac{f(x)-f(x-h)}{h}}{h} \\ &= \dfrac{f(x+h) - 2f(x) + f(x-h)}{h^{2}} \end{align*} $$

같이보기


  1. A. Iserles, A First Course in the Numerical Analysis of Differential Equations (2nd, 2009), p139-141 ↩︎

  2. Mykel J. Kochenderfer, Algorithms for Optimization (2019), p23-26 ↩︎