f:[a,b]→R 가 [a,b] 에서 적분가능하고 [a,b] 를 a=x0<⋯<xn=b 와 같은 노드 포인트들로 쪼갰다고 하자.
적분 오퍼레이터 I 를 I(f):=∫abf(x)dx 와 같이 정의한다.
적분 오퍼레이터 In 을 In(f):=k=1∑n∫xk−1xkf(x)dx 와 같이 정의한다.
에러 En 을 En(f):=I(f)−In(f) 와 같이 정의한다.
n→∞limEn(f)E~n(f)=1 을 만족하는 E~n 을 En 에 대한 어심토틱 에러라고 한다.
설명
정적분을 계산하는 것이 수치해석의 목표 중 하나라는 점에는 그 누구도 이의를 제기하지 않을 것이다. 그런데 사실 구분구적법의 아이디어를 떠올려보면 공간을 가능한 많이 쪼개면 쪼갤수록 적분값을 잘 근사할 수 있을 것이라는 짐작은 든다. 그러니 수치해석에서 관심을 갖는 수치적 적분이라하면 구체적으로 그 오차가 얼마나 되는지, 폐구간이 아닐 땐 적분을 어떻게 해야하는지 등이라고 볼 수 있겠다.
예시
사다리꼴 룰
수치적 적분의 예로써 f∈C2[a,b] 에 대한 사다리꼴 룰을 살펴보도록 하자. 사다리꼴 룰trapezoidal rule 이란 I(f) 에 대해 다음과 같이 근사값을 계산하는 방법을 말한다.
I11(f):=(2b−a)[f(a)+f(b)]
이는 구간 [a,b] 에서 f 를 리니어 인터폴레이션 해서 그 함수의 적분값으로 I(f) 를 근사한 것으로 볼 수 있다. 그렇다면 실제 I(f) 와 I11(f) 의 오차 E11(f) 는 어떤 ξ∈[a,b] 에 대해 다음과 같이 계산된다.
이제 [a,b] 를 n 개의 구간으로 자르고 h:=2b−a, xk:=x0+hk 에 대해 각각의 [xk−1,xk] 에서 사다리꼴 룰로 적분을 근사한다고 생각해보자. 다음과 같이 근사값을 계산하는 방법을 (컴포짓) 사다리꼴 룰(Composite) Trapezoidal rule이라 한다.
In1(f):=k=1∑n2h(f(xk−1)+f(xk))
그렇다면 실제 I(f) 와 In1(f) 의 오차는 어떤 ξk∈[xk−1,xk] 들에 대해 다음과 같이 계산된다.
En1(f)===I(f)−In1(f)k=1∑n(−12h3f′′(ξk))−12h3n(n1k=1∑nf′′(ξk))
여기서 (n1k=1∑nf′′(ξk)) 은 f’’(ξk) 들의 평균이므로, 중간값 정리에 의해 x∈[a,b]minf′′(x)≤f′′(ξ)≤x∈[a,b]maxf′′(x) 를 만족하는 어떤 ξ∈[a,b] 가 존재해야한다. 따라서
En1(f)=−12(b−a)h2f′′(ξ)
이렇게 에러를 직접 식으로 보니까 적분 구간 [a,b] 가 넓어질수록 오차가 커지며 h 가 작을수록 정확해지는 것을 알 수 있다. 그러나 f’’(ξ) 때문에 구체적으로 얼마나 틀렸는지는 알 수가 없다. 이를 극복하기 위해 다음과 같이 어심토틱 에러를 구한다.
n→∞limh2En1(f)====n→∞limh21k=1∑n(−12h3f′′(ξk))−121n→∞limk=1∑nhf′′(ξk)−121∫abf′′(x)dx−121[f′(b)−f′(a)]
에러 En1(f) 만 알 땐 정리에 의해서 f’’(ξ) 가 존재하는 건 알지만 구체적으로 수치를 댈 수는 없었는데, 이제
E~n1(f):=n→∞limEn1(f)
이라고 하면 충분히 큰 n 에 대해
En1(f)≈−12h2[f′(b)−f′(a)]=E~n1(f)
임을 알 수 있고 f′(a),f′(b) 를 계산하는 것은 비교적 간단한 일이므로 상당히 쉽고 정확하게 오차를 파악할 수 있다. 게다가 여기까지 오면 오차가 그정도 되는구나 하는 정도로 끝날 이유도 없다. 계산을 하기도 전부터 이렇게 오차가 날 것이라고 예측할 수 있다면 아예 처음부터 오차를 보정할 수도 있다.
I(f)−In1(f)≈E~n1(f)⟹I(f)≈In1(f)+E~n1(f)
커렉티드 사다리꼴 룰
이렇게 I(f) 를 계산하는 오퍼레이터로써 CTn 을 다음과 같이 정의하자.
CTn(f):=h[21f(x0)+f(x1)+⋯+f(xn−1)+21f(xn)]−12h2[f′(b)−f′(a)]
이 방법을 (커렉티드) 사다리꼴 룰(corrected) Trapezoidal rule이라 한다. [ NOTE: 위에서 사다리꼴 룰이 개선되는 과정을 봤다면 알겠지만 굳이 이들을 구분할 필요는 없다. 그냥 사다리꼴 룰이라고 해도 의미는 다 통한다. ]
구현
실제로 ∫0πexcos(x)dx=−2eπ+1≈−12.0703 을 In1 과 CTn 으로 계산해본 결과는 다음과 같다.
첫번째 열은 n, 두번째 열은 I(f)−In1(f), 세번째 열은 ∣I(f)−CT(f)∣ 를 나타낸다. 컴포짓 사다리꼴 룰은 노드를 두배로 늘릴 때마다 오차가 41 배로 줄어들고, 커렉티드 사다리꼴 룰은 161 배로 줄어들고 있음을 확인할 수 있다. 단순히 수치만 보아도 커렉티드 사다리꼴 룰이 훨씬 좋은 걸 알 수 있지만, 특히 좋은 점은 그 속도가 엄청나게 빠르다는 것이다.