logo

복소수 스텝 미분 근사 📂수치해석

복소수 스텝 미분 근사

공식

함수 $f : \mathbb{R} \to \mathbb{R}$ 의 미분계수 $f ' (x)$ 는 다음과 같이 복소수를 이용해서 근사할 수 있다. $$ f ' (x) \approx \frac{\im \left( f \left( x + i h \right) \right)}{h} $$ 여기서 $\im$ 은 복소수의 허수부를 나타내고, $h$ 는 충분히 작은 실수다.

설명

역시 복소해석은 알수록 신기하다. 2개 이상의 함숫값을 통해서 미분계수를 근사하는 유한차분법과 달리, 이 방법은 딱히 복소함수가 아니었던 $f$ 라도 형식적으로 복소함수처럼 다뤄서 미분계수를 근사한다.

유도 1

두가지 방법이 있는데, 둘 다 감탄이 나올만큼 재미있다. 실수 $x, y \in \mathbb{R}$ 에 대해 복소수를 $z = x + i y$ 으로, 실함수 $f : \mathbb{R} \to \mathbb{R}$ 를 $u, v : \mathbb{C} \to \mathbb{R}$ 에 대해 $f(z) = u(z) + i v(z)$ 와 같이 나타내자.

코시-리만 방정식

코시-리만 방정식: 함수 $f: A \subseteq \mathbb{C} \to \mathbb{C}$ 가 $\mathscr{R}$ 에서 해석적이라고 하자. 만약 실함수 $u,v$ 에 대해 $$ f(z) = f(x+iy) = u(x,y) + iv(x,y) $$ 이라면 $u,v$ 는 $x,y$ 에 대한 일차편도함수가 존재하며 $\mathscr{R}$ 상의 모든 점에서 아래의 연립미분방정식을 만족시킨다. $$ \begin{cases} u_{x} (x,y) = v_{y} (x,y) \\ u_{y} (x,y) = -v_{x} (x,y) \end{cases} $$

만약 $f$ 가 해석적이라면 $f = u + i v$ 는 코시-리만 방정식을 만족시켜야 한다. $$ \begin{align*} {\frac{ \partial u }{ \partial x }} =& {\frac{ \partial v }{ \partial y }} \\ {\frac{ \partial u }{ \partial y }} =& - {\frac{ \partial v }{ \partial x }} \end{align*} $$ $u_{x}$ 의 우변인 $v_{y}$을 극한폼으로 다시 적어보면 다음과 같다. $$ {\frac{ \partial u }{ \partial x }} = \lim_{h \to 0} {\frac{ v \left( x + i \left( y + h \right) \right) - v \left( x + i y \right) }{ h }} $$ $f$ 를 마치 복소함수처럼 다루기는 했지만, $f$ 는 엄연히 실함수기 때문에 $y = 0$, $v(x) = 0$ 이면서 $u(x)$ 는 $u(x) = f(x)$ 그 자체다. 하나씩 대입을 해보자면 $y = 0$ 이므로 $$ {\frac{ \partial u }{ \partial x }} = \lim_{h \to 0} {\frac{ v \left( x + i h \right) - v \left( x \right) }{ h }} $$ 이고, $v(x) = 0$ 이므로 $$ {\frac{ \partial u }{ \partial x }} = \lim_{h \to 0} {\frac{ v \left( x + i h \right) }{ h }} $$ 이고, $u(x) = f(x)$ 이므로 $$ {\frac{ \partial f }{ \partial x }} = \lim_{h \to 0} {\frac{ v \left( x + i h \right) }{ h }} $$ 이다. 마지막으로 $f = u + i v$ 이므로 $\im f = v$ 이고, 충분히 작은 $h$ 에 대해 다음의 공식을 얻는다. $$ {\frac{ \partial f }{ \partial x }} = \lim_{h \to 0} {\frac{ \im f \left( x + i h \right) }{ h }} \approx {\frac{ \im f \left( x + i h \right) }{ h }} $$

테일러 전개

테일러 전개: 함수 $f(x)$ 가 $[a,b]$ 에서 연속이고 $(a,b)$ 에서 $n$ 번 미분가능하면 다음을 만족하는 $\xi \in (a,b)$ 가 존재한다. $$ \begin{align*} f(b) =& \sum_{k=0}^{n-1} {{(b-a)^{k}\over{k!}}{f^{(k)}( a )}} + {(b-a)^{n}\over{n!}}{f^{(n)}(\xi)} \\ =& {f(a)} + {(b-a)f ' (a)} + \cdots + {(b-a)^{n-1}\over{(n-1)!}}{f^{(n-1)}(a)} + {(b-a)^{n}\over{(n)!}}{f^{(n)}(\xi)} \end{align*} $$

$f(x)$ 에서 $i h$ 로 테일러 전개를 해보면 다음과 같다. $$ f \left( x + i h \right) = f (x) + i h f ' (x) - h^{2} {\frac{ f '' (x) }{ 2! }} - i h^{3} {\frac{ f ''' (x) }{ 3!s }} + \cdots $$ 우리가 관심을 가지는 건 $f ' (x)$ 이므로 허수부만 보면 $$ \im f \left( x + i h \right) = h f ' (x) - h^{3} {\frac{ f ''' (x) }{ 3!s }} + \cdots $$ 이고, $h$ 를 캔슬링하면 $$ {\frac{ \im f \left( x + i h \right) }{ h }} = f ' (x) + O \left( h^{2} \right) $$ 이다. 마찬가지로 $h$ 가 충분히 작다면 $h^{2}$ 은 무시할 수 있을만큼 작아지고, 다음과 같은 근사식을 얻는다. $$ {\frac{ \im f \left( x + i h \right) }{ h }} \approx f ' (x) $$


  1. Martins, J. R., Sturdza, P., & Alonso, J. J. (2003). The complex-step derivative approximation. ACM Transactions on Mathematical Software (TOMS), 29(3), 245-262. https://dx.doi.org/10.1145/838250.838251 ↩︎