Second Order Finite Difference

Tags:
Finite Difference

유한차분법 복습을 하던 중 도함수의 근사는 forward/backward/central difference가 있지만 이계도함수의 근사는 하나의 식만 주로 사용되는 걸 보면서, '그럼 도함수와 이계도함수의 정의도 이런 식인가?' 라는 생각이 들었다. 그러다보니 '그럼 애초에 이계도함수의 정의는 무엇이었나' 하는 생각이 들어서 돌아와보기로 했다.

도함수의 정의


도함수에 대해 배울때 두 가지 형태 (limh0f(x+h)f(x)h, limh0f(x)f(xh)h\footnotesize \lim_{h \rightarrow 0}{\frac{f(x+h)-f(x)}{h}}, \ \lim_{h \rightarrow 0}{\frac{f(x)-f(x-h)}{h}}) 를 배웠고, symmetric derivative limh0f(x+h)f(xh)2h\footnotesize \lim_{h \rightarrow 0}{\frac{f(x+h)-f(x-h)}{2h}} 라는 것의 존재도 배웠다.

derivative는 존재하지 않지만 symmetric derivative는 존재하는 뭐 그런 경우도 있다는 것 (y=xy = |x|)도 복습

위 세 가지가 Forward / Backward / Central (first-order) Finite Difference의 정의와 동일한 형태이다.

이계도함수의 정의


함수 f(x)f(x) 의 도함수 f(x)f'(x) 가 미분 가능할 때,

f(x)=limk0f(x+k)f(x)kf''(x) = \lim_{k \rightarrow 0}\frac{f'(x+k)-f'(x)}{k}

즉 정의 자체가 도함수의 도함수 이다.

위 식에 f(x)=limh0f(x+h)f(x)hf'(x) = \lim_{h \rightarrow 0} \frac{f(x+h) - f(x)}{h} 를 굳이 대입 해본다면

f(x)=limk0limh0f(x+k+h)f(x+k)hf(x+h)f(x)hkf''(x) = \lim_{k \rightarrow 0} \lim_{h \rightarrow 0} \frac{\frac{f(x+k+h) - f(x+k)}{h}- \frac{f(x+h) - f(x)}{h}}{k} 와 같이 정리가 가능하고

고등학교에서 처음 도함수 공식을 배울 때처럼, toy example로 예를 들어 f(x)=x2f(x)=x^2 를 대입해서 이계도함수를 구해보면

f(x)=limk0limh0(x+k+h)2(x+k)2h(x+h)2x2hkf''(x) = \lim_{k \rightarrow 0} \lim_{h \rightarrow 0} \frac{\frac{(x+k+h)^2 - (x+k)^2}{h}- \frac{(x+h)^2 - x^2}{h}}{k}

f(x)=limk0limh0x2+k2+h2+2xk+2kh+2xhx22xkk2(x2+2xh+h2x2)hkf''(x) = \lim_{k \rightarrow 0} \lim_{h \rightarrow 0} \frac{x^2 + k^2 + h^2 + 2xk + 2kh + 2xh - x^2 -2xk - k^2 - (x^2 + 2xh + h^2 - x^2)}{hk}

f(x)=limk0limh0k2+2xk+2kh2xkk2hk=limk0limh02khhk=limk0limh02=2f''(x) = \lim_{k \rightarrow 0} \lim_{h \rightarrow 0} \frac{k^2 + 2xk + 2kh -2xk - k^2}{hk} = \lim_{k \rightarrow 0} \lim_{h \rightarrow 0} \frac{2kh}{hk} = \lim_{k \rightarrow 0} \lim_{h \rightarrow 0} 2 = 2

와 같이 이계도함수가 잘 구해지는 것을 알 수 있다. 이런 걸 딱히 해볼 필요는 없다는 걸 머리로는 알아도 막상 해봤을 때 진짜 되는 걸 보면 신기하다

또한 이계도함수에 대해서도 Second Symmetric Derivative라는 정의가 존재하고, 이것이 2계 유한차분법에 쓰이는 식과 동일하게 생겼다.

왜 이계도함수 기호의 분자에서는 dd 를 제곱하고, 분모에서는 dxdx 를 제곱하는가

아마 고등학교 다닐 때에도 이게 궁금했었는데, ddx(ddx)=d2dx2\frac{d}{dx} \left( \frac{d}{dx} \right) = \frac{d^2}{dx^2} 와 같이 기호끼리 곱한다는 설명이 납득이 되지 않았다.

d2d2x2\frac{d^2}{d^2x^2} 도 아니고,d2(dx)2\frac{d^2}{(dx)^2} 도 아니고, 꼭 d2dx2\frac{d^2}{dx^2} 이라고 통상적으로 쓰는 이유가 뭘까? 애초에 dd 는 왜 dd 끼리 곱해져서 d2d^2 라는 게 될 수 있는 걸까?

근데 이것저것 찾다보니 이런 걸 보게 됐는데

Derivative는 Finite difference에 극한을 취한 것이고, Difference operator를 (예를 들어, Δh\Delta_h 라고) 정의했을 때 이계도함수(의 근사)는 Δh2f(x)(Δhx)2\frac{\Delta_h^2 f(x)}{(\Delta_h x )^2} 라고 쓸 수 있다는 설명은 굉장히 그럴 듯해보였다.

(위 식의 분자와 관련해서) 생각해보면 시계열 수업에서도 Difference Operator를 (예를 들어, Δ\Delta 라고 정의하고) 두 번 적용하면 Δ2Yt\Delta^2 Y_t 와 같이 표기하는 걸 본 적이 있다.

Taylor Series로 유도하는 Finite Difference


Second Order Finite Difference는 왜 저런 형태를 주로 쓸까

f(x)f(x+h)f(x)hf(x)f(xh)hhf''(x) \approx \frac{\frac{f(x+h)-f(x)}{h}-\frac{f(x)-f(x-h)}{h}}{h}

사실 모든 것의 시작이자 가장 의문이었던 것은 이거였다.

First Order는 Forward, Backward, Central 모두 다루는데 Second Order는 왜 하필 저 식만이 집중적으로 쓰일까?

그리고 xkx-k 부터 x+kx+k 까지 개입하는데 왜 분모는 꼭 2h22h^2 가 아닌 h2h^2 이어야만 하는 걸까?

구글링을 하다보면 말장난같은 설명도 많았지만, Taylor Expansion에서 시작하면 가장 괜찮은 form이 위와 같음을 납득할 수 있다.

처음 배우는 Taylor Expansion은 함수 f(x)f(x)x=ax=a 기준으로 근사하면 f(x)=f(a)+i=1f(n)n!(xa)nf(x) = f(a) + \sum_{i=1}^{\infty}\frac{f^{(n)}}{n!}(x-a)^n 와 같이 나타낼 수 있다는 것이고, 이와 유사하게 f(x+h)f(x+h)x=xx=x 기준으로 근사하면

f(x+h)=f(x)+f(x)h+f(x)2!h2+f(x)3!h3+f(x)4!h4f(x+h) = f(x) + f'(x) \cdot h + \frac{f''(x)}{2!}\cdot h^2 + \frac{f'''(x)}{3!}\cdot h^3 + \frac{f''''(x)}{4!}\cdot h^4 \cdots

와 같이 써낼 수 있다. 이걸 그냥 정리해서

f(x+h)f(x)f(x)h=+f(x)2!h2+f(x)3!h3+f(x)4!h42(f(x+h)f(x)f(x)h)h2=f(x)+O(h)\begin{aligned} f(x+h) - f(x) - f'(x) \cdot h &= + \frac{f''(x)}{2!}\cdot h^2 + \frac{f'''(x)}{3!}\cdot h^3 + \frac{f''''(x)}{4!}\cdot h^4 \cdots \\ \frac{2(f(x+h) - f(x) - f'(x) \cdot h)}{h^2} & = f''(x) + O(h) \\ \end{aligned}

와 같이 이계도함수를 근사해도 되겠지만, 이러면 오차는 O(h)O(h) 이고, forward 방향의 정보만 이용한 근사값이 된다.

이를 보완하기 위해, 이번에는 f(xh)f(x-h) 를 근사하면

f(xh)=f(x)+f(x)(h)+f(x)2!(h)2+f(x)3!(h)3+f(x)4!(h)4f(x-h) = f(x) + f'(x) \cdot (-h) + \frac{f''(x)}{2!}\cdot (-h)^2 + \frac{f'''(x)}{3!}\cdot (-h)^3 + \frac{f''''(x)}{4!}\cdot (-h)^4 \cdots

와 같고,  f(x+h)\ f(x+h)f(xh)f(x-h) 를 근사한 식 두 개를 변끼리 더하면

f(x+h)+f(xh)=2f(x)+2f(x)2!h2+2f(x)4!h4+f(x+h)2f(x)+f(xh)=f(x)h2+f(x)12h4+f(x+h)2f(x)+f(xh)h2=f(x)+f(x)12h2+f(x+h)2f(x)+f(xh)h2=f(x)+O(h2)\begin{aligned} f(x+h) + f(x-h) & = 2 f(x) + 2 \frac{f''(x)}{2!}h^2 + 2 \frac{f''''(x)}{4!}h^4 + \cdots \\ f(x+h) - 2f(x) + f(x-h) & = f''(x)h^2 + \frac{f''''(x)}{12}h^4 + \cdots \\ \frac{f(x+h) - 2f(x) + f(x-h)}{h^2} & = f''(x) + \frac{f''''(x)}{12}h^2 + \cdots \\ \frac{f(x+h) - 2f(x) + f(x-h)}{h^2} & = f''(x) + O(h^2) \\ \end{aligned}

이렇게 식이 유도되며, 오차도 O(h2)O(h^2) 이 되었다.

First Order Finite Difference

위와 같은 방식으로 First Order에 대해서도 Taylor Expansion으로부터 식을 유도할 수 있고, 그렇게 했을 때 오차가 O(h)O(h) 임을 쉽게 알 수 있다.



2026.01.04 2026.01.06

References