수치미분과 수치적분

기초 개념

수치미분, 수치적분은 기본적으로 (xi,fi)(x_i, f_i)가 주어졌을 때 wifi\sum w_if_i 선형결합을 구하는 작업임

수치미분 (테일러 전개)

(xi,fi)(x_i, f_i)에서의 미분값을 구하려면 테일러 전개를 쓰면 됨

전진차분

xi,xi+1x_i, x_{i+1}를 사용해서 미분값을 구한다.

fi+1=fi+hfi+h22!fi++hnn!f(n)(ξ),xiξxi+1fi=fi+1fihh2!fihn1n!f(n)(ξ)fi=fi+1fih+O(h)\begin{align*} f_{i+1} &= f_i + hf_i' + \frac{h^2}{2!}f_i'' + \cdots + \frac{h^n}{n!}f^{(n)}(\xi), x_i \le \xi \le x_{i+1} \\ f_i' &= \frac{f_{i+1} - f_i}{h} - \frac{h}{2!}f_i'' - \cdots - \frac{h^{n-1}}{n!}f^{(n)}(\xi) \\ \therefore f_i' &= \frac{f_{i+1} - f_i}{h} + O(h) \end{align*}

h는 점 사이의 간격이고 (xi+1xix_{i+1} - x_i), O(h)O(h)는 오차가 h에 비례한다는 뜻이다.

후진차분

xi1,xix_{i-1}, x_i를 사용해서 미분값을 구한다.

fi=fifi1h+O(h)f_i' = \frac{f_i - f_{i-1}}{h} + O(h)

중앙차분

xi1,xi+1x_{i-1}, x_{i+1}를 사용해서 미분값을 구한다.

fi=fi+1fi12h+O(h2)f_i' = \frac{f_{i+1} - f_{i-1}}{2h} + O(h^2)

오차가 O(h2)O(h^2)이라 정확도가 향상되었지만, 항상 중앙차분이 더 좋은건 아니다.
e.g. 함수값이 진동하는 경우 (홀수번째는 fi=Af_i = A, 짝수번째는 fi=Bf_i = B)

일반적인 차분근사

점의 간격이 h로 일정한 경우 사용할 수 있다.

n계도함수를 구하기 위해서는 각 점에서 테일러 전개한 뒤, 식을 연립하여 1 ~ (n-1)계도함수를 없앤다.
(만약 점이 더 많다면, (n+1)계도함수 이후도 없앤다.)

본질적으로 연립방정식을 푸는 것과 다를게 없다!
e.g. f0=16h2(5f18f0+4f2f3)f_0'' = \frac{1}{6h^2}(5f_{-1} - 8f_0 + 4f_2 - f_3)

수치미분 (보간다항식)

점들을 지나는 다항식을 구한 다음, 그 다항식의 미분값으로 근사한다.
근데 뉴턴다항식의 극한이 테일러 급수기 떄문에, 사실 위에서 테일러 전개로 구한 것과 같은 결과가 나온다!

뉴턴-코테스 수치적분

핵심) f(x)f(x)를 근사하는 n차다항식을 적분함

사다리꼴 법칙

각 구간을 사다리꼴로 생각 (사실 이건 1차다항식으로 근사한거임)

xixi+1f(x)dxh2(fi+fi+1)\int_{x_i}^{x_{i+1}}f(x)dx \approx \frac{h}{2}(f_i + f_{i+1})

오차는 대략 112h2(f(b)f(a))-\frac{1}{12}h^2(f'(b) - f'(a))라고 함.
O(h2)O(h^2) 오차가 저거라는거지 f(b)=f(a)f'(b) = f'(a)라고 오차가 0인게 아님!! O(h3)O(h^3) 오차는 남아있음...

심프슨 1/3 법칙

1차다항식도 썼어 -> 그럼 2차다항식도 쓸 수 있는거 아님?

전체 구간을 n개 대신 2n개로 나누고, 2개씩 묶어서 하나의 구간으로 생각함. (즉, f2i,f2i+1,f2i+2f_{2i}, f_{2i+1}, f_{2i+2} 사용)
그리고 각 구간을 지나는 뉴턴 다항식을 적분하면 됨

x2ix2i+2f(x)dxh3(f2i+4f2i+1+f2i+2)\int_{x_{2i}}^{x_{2i+2}}f(x)dx \approx \frac{h}{3}(f_{2i} + 4f_{2i+1} + f_{2i+2})

계수외우기 꿀팁) 함수값이 1인 상수함수면 적분값 2h여야함 -> 안쪽 계수는 6
근데 왠지 모르겠는데 양끝이 1임 -> 중간은 4

오차는 대략 1180h4(f(b)f(a))-\frac{1}{180}h^4(f'''(b) - f'''(a))라고 함.

심프슨 3/8법칙

3차 다항식도 하겠다! 마찬가지로 구간을 3n개로 나눔

x3ix3i+3f(x)dx38h(f3i+3f3i+1+3f3i+2+f3i+3)\int_{x_3i}^{x_{3i+3}}f(x)dx \approx \frac{3}{8}h(f_{3i} + 3f_{3i+1} + 3f_{3i+2} + f_{3i+3})

오차는 대략 180h4(f(b)f(a))-\frac{1}{80}h^4(f'''(b) - f'''(a))라고 함.

뉴턴-코테스 수치적분

심프슨은 귀찮아서 3차까지만 하고 던짐
코테스가 이거보고 이름 남기고 싶어서 4~9차까지 전부 손으로 계산함;;;;;;;;;;

결국 뉴턴-코테스 수치적분이라고 이름이 남게 됨
근데 뉴턴은 아무것도 안 했는데 뉴턴다항식 적분했다고 이름붙음;;

참고로 수치해석 관점에서 1도 쓸모없는 공식이라고 한다..
4차부턴 오차도 심함 + 아래 방법이 더 좋음!
수치해석은 3차까지만 돌리자

리차드슨의 보외법

서로 다른 두 개의 수치적분결과를 이용하여 개선된 근사값을 얻을 수 있음!

수치적분에 의한 오차가 O(hn)O(h^n)일 떄, 구간의 크기가 h1h_1일 때, h2h_2일 때 수치적분을 하면

Iex=I(h1)+Ch1nIex=I(h2)+Ch2n\begin{align*} I_{ex} &= I(h_1) + Ch_1^n \\ I_{ex} &= I(h_2) + Ch_2^n \end{align*}

근데 여기서 C가 같다고 가정하면 간단한 연립방정식으로 C를 소거할 수 있음 (보통 h1>h2h_1 > h_2으로 둠)

Iex=I(h2)+I(h2)I(h1)(h1h2)n1I_{ex} = I(h_2) + \frac{I(h_2) - I(h_1)}{\left( \frac{h_1}{h_2} \right)^n - 1}

이게 생각보다 매우 정확함!
단순히 구간 개수를 무지성으로 늘리는 것보다 두 번 구하고 보외법을 쓰는게 나음

c.f. 사다리꼴 법칙 쓰고 리차드슨의 보외법을 n번 적용시키는 방법을 롬버그 적분이라고 함

가우스 구적법

지금까지 본 수치적분은 수동적(passive)임 xi,fix_i, f_i가 다 주어져 있었음
하지만 가우스 구적법은 데이터 점을 능동적(active)하게 정해야 함

대신 미지수가 2배라 더 정확함!
예를 들어 기존 적분방식으로는 점 2개면 1차식만 가능 -> 가우스는 미지수 4개라 3차식까지 가능!

가우스-르장드르 구적법

가우스 구적법이 좋은건 알겠는데 그래서 점을 어떻게 구함?

I=11f(x)dx=w1f(x1)+w2f(x2)I = \int_{-1}^1 f(x)dx = w_1f(x_1) + w_2f(x_2)

점이 2개인 경우를 예시로 들면 원하는 서로 다른 기저함수 4개에 대해서 위 식이 성립하는 wi,xiw_i, x_i를 정하면 됨

이때 기저함수로 1,x,x2,x3,1, x, x^2, x^3, \ldots를 쓰는게 가우스-르장드르 구적법임

e.g. 위 식에 1,x,x2,x31, x, x^2, x^3를 집어넣고 풀면 w1=1,x1=13,w2=1,x2=13w_1 = 1, x_1 = -\frac{1}{\sqrt{3}}, w_2 = 1, x_2 = \frac{1}{\sqrt{3}}이 된다.
근데 사실 x1,x2x_1, x_2는 르장드르 함수 P2(x)=12(3x21)P_2(x) = \frac{1}{2}(3x^2 - 1)의 두 근임!!

일반적으로 xix_i는 르장드르 함수의 근이고, wi=2(1xi2)(nPn1(xi))2w_i = \frac{2(1 - x_i^2)}{(nP_{n-1}(x_i))^2}라고 함.

근데 -1 ~ 1에서 적분하는게 아니면 어떡함?
x=a+ba2(z+1)x = a + \frac{b-a}{2}(z+1)으로 두면
abf(x)dx=11f(x)dxdzdz=ba2i=1nwif(xi)\int_a^b f(x)dx = \int_{-1}^1 f(x) \frac{dx}{dz} dz = \frac{b-a}{2} \sum_{i=1}^n w_i f(x_i)

가우스 구적법의 장점

  1. 결정점이 적분구간 내부에 있어서 경계에서 특이점을 가져도 적분을 할 수 있음
  2. 뺼셈이 없기 때문에 유효숫자의 상실 문제가 발생하지 않음
  3. 미지수가 2배인 효과라 결정점을 몇 개 안 잡아도 효과가 좋음