logo

멀티스텝 메소드의 수렴성과 오차 📂수치해석

멀티스텝 메소드의 수렴성과 오차

정리

초기값 문제 $\begin{cases} y ' = f(x,y) \\ ( y( x_{0} ) , \cdots , y(x_{p}) )= ( Y_{0} , \cdots , Y_{p} ) \end{cases}$ 에 대해 멀티스텝 메소드 $$ \displaystyle y_{n+1} = \sum_{j=0}^{p} a_{j} y_{n-j} + h \sum_{j = -1}^{p} b_{j} f (x_{n-j} , y_{n-j} ) $$ 가 일관성을 가지고, 초기 오차 $\displaystyle \eta (h) : = \max_{ 0 \le i \le p} | Y (x_{i} ) - y_{h} (x_{i} ) |$ 가 $\displaystyle \lim_{ h \to 0} \eta (h) = 0$ 를 만족하고, $j = 0, 1, \cdots , p$ 에 대해 $a_{j} \ge 0$ 이고 $f$ 가 립시츠 조건을 만족하면 메소드는 수렴하고 적절한 상수 $c_{1} , c_{2}$ 에 대해 $$ \max_{ x_{0} \le x_{n} \le b} | Y (x_{n} ) - y_{h} (x_{n} ) | \le c_{1} \eta (h) + c_{2} \tau (h) $$ 가 성립한다. 특히 $\eta (h) = O ( h^{m} )$ 이면, 메소드의 수렴 속도는 $O ( h^{m} )$ 이다.

설명

멀티스텝 메소드이라는 것은 특정 방법 하나만을 지칭하는 게 아니므로 증명을 통해 그 수렴성을 보장하는 것은 매우 중요한 일이다. $h$ 에 따른 오차가 얼마나 커지는지 파악하는 것 역시 실제로 써먹을 생각이라면 당연히 해야하는 작업이다.

증명 1

참값 $Y_{i}$ 와 계산값 $y_{i}$ 의 차를 $\epsilon_{i} : = Y_{i} - y_{i}$ 라고 나타내면 $$ Y_{n+1} = \sum_{j=0}^{p} a_{j} Y_{n-j} + h \sum_{j = -1}^{p} b_{j} f (x_{n-j} , Y_{n-j} ) + h \tau_{n} (Y) $$

$$ y_{n+1} = \sum_{j=0}^{p} a_{j} y_{n-j} + h \sum_{j = -1}^{p} b_{j} f (x_{n-j} , y_{n-j} ) $$ 위의 두 식을 빼면 $$ \epsilon_{n+1} = \sum_{j=0}^{p} a_{j} \epsilon_{n-j} + h \sum_{j = -1}^{p} b_{j} [ f (x_{n-j} , Y_{n-j} ) - f (x_{n-j} , y_{n-j} ) ] + h \tau_{n} (Y) $$ $f$ 는 립시츠 조건을 만족하므로 $$ | \epsilon_{n+1} | \le \sum_{j=0}^{p} a_{j} | \epsilon_{n-j} | + h K \sum_{j = -1}^{p} b_{j} | \epsilon_{n - j} | + h \tau_{n} (h) $$ $n$ 까지의 $\epsilon_{i}$ 중 가장 큰 오차를 나타내는 표현 $\displaystyle E_{n} := \max_{0 \le i \le n} | \epsilon_{i} |$ 을 사용해보면 $$ | \epsilon_{n+1} | \le \sum_{j=0}^{p} a_{j} E_{n}+ h K \sum_{j = -1}^{p} | b_{j} | E_{n+1 } + h \tau_{n} (h) $$

멀티스텝 메소드의 일관성과 수렴차수: 초기값 문제 $\begin{cases} y ' = f(x,y) \\ ( y( x_{0} ) , \cdots , y(x_{p}) )= ( Y_{0} , \cdots , Y_{p} ) \end{cases}$ 에 대해 멀티스텝 메소드 $$ \displaystyle y_{n+1} = \sum_{j=0}^{p} a_{j} y_{n-j} + h \sum_{j = -1}^{p} b_{j} f (x_{n-j} , y_{n-j} ) $$ 가 일관성을 가지는 필요충분조건은 (i) 이고, 수렴차수 $m \in \mathbb{N}$ 을 갖는 필요충분조건은 (ii) 다.

  • (i): $$\begin{cases} \displaystyle \sum_{j = 0}^{p} a_{j} = 1 \\ \displaystyle - \sum_{j = 0}^{p} j a_{j} + \sum_{j = -1}^{p} b_{j} = 1 \end{cases}$$
  • (ii): $i = 0, 1 , \cdots , m$ 에 대해 $$\sum_{j=0}^{p} (-j)^{i} a_{j} + i \sum_{j=-1}^{p} (- j )^{i-1} b_{j} = 1$$

주어진 멀티스텝 메소드가 일관성을 가지므로 $\displaystyle c : = K \sum_{j = -1}^{p} | b_{j} |$ 라고 하면 $$ | \epsilon_{n+1} | \le E_{n}+ hc E_{n+1 } + h \tau_{n} (h) $$ $ | \epsilon_{n+1} | \le E_{n+1}$ 면 $E_{n+1} = E_{n}$ 이므로 $$ | \epsilon_{n+1} | \le E_{n+1} = E_{n} \le E_{n}+ hc E_{n+1 } + h \tau_{n} (h) $$ $ | \epsilon_{n+1} | > E_{n+1}$ 면 $$ E_{n+1} < | \epsilon_{n+1} | \le E_{n} \le E_{n}+ hc E_{n+1 } + h \tau_{n} (h) $$ 따라서 어떤 경우든 $$ E_{n+1} \le E_{n}+ hc E_{n+1 } + h \tau_{n} (h) $$ 항을 정리하면 $$ (1 - hc ) E_{n+1} \le E_{n} + h \tau_{n} (h) $$ $h \to 0$ 를 상정하고 있으므로 $h$ 는 $ (1 - hc ) > 0$ 과 $\displaystyle hc \le {{1 } \over {2}}$ 를 만족할만큼 충분히 작다고 가정할 수 있다. 따라서 $$ \begin{align*} E_{n+1} \le & {{E_{n} } \over {1 - hc}}+ {{ h \tau_{n} (h) } \over {1 - hc }} \\ \le & (1 + 2 hc ) E_{n} + 2 h \tau_{n} (h) \end{align*} $$ 재귀적으로 풀어내면 $$ \begin{align*} E_{n} =& \max_{ x_{0} \le x_{n} \le b} | Y (x_{n} ) - y_{h} (x_{n} ) | \\ \le & e^{2c(b-x_{0})} \eta (h) + \left[ {{ e^{2c (b - x_{0} ) } - 1 } \over {c}} \right] \tau (h) \end{align*} $$


  1. Atkinson. (1989). An Introduction to Numerical Analysis(2nd Edition): p360~361. ↩︎