심슨법

Ahn9807 (토론 | 기여)님의 2023년 3월 24일 (금) 11:52 판 (새 문서: 분류:수치 해석 == 개요 == 수치해석에서 해석적으로 적분 가능한 함수를 심슨법에서는 2차 함수로 근사하여 적분한다. == 단구간에서의 적분 == 심프슨 공식은 <math>P(x)</math>라는 이차방정식을 이용해 <math>f(x)</math>의 근사값을 구한다. 이때 <math>P(x)</math>는 ''a'', ''b'', 그리고 둘의 중간값 <math>m = \textstyle \frac{a+b}2</math>에서 <math>f(x)</math>와 같은 값을 갖는 근사...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

수치해석에서 해석적으로 적분 가능한 함수를 심슨법에서는 2차 함수로 근사하여 적분한다.

단구간에서의 적분

심프슨 공식은 [math]P(x)[/math]라는 이차방정식을 이용해 [math]f(x)[/math]의 근사값을 구한다. 이때 [math]P(x)[/math]a, b, 그리고 둘의 중간값 [math]m = \textstyle \frac{a+b}2[/math]에서 [math]f(x)[/math]와 같은 값을 갖는 근사식이다. 라그랑주의 다항식 보간법을 사용해서 [math]P(x)[/math]를 구하면 다음을 얻는다.

[math]P(x)=f(a)\frac{(x-m)(x-b)}{(a-m)(a-b)}+ f(m)\frac{(x-a)(x-b)}{(m-a)(m-b)}+ f(b)\frac{(x-a)(x-m)}{(b-a)(b-m)}[/math]

이 식을 전개하면 심프슨 공식으로 알려진 다음 공식을 구할 수 있다.

[math]\int_{a}^{b} f(x) \, dx\approx \int_{a}^{b} P(x) \, dx =\frac{b-a}{6}\left[f(a) + 4f\left(\frac{a+b}{2}\right)+f(b)\right][/math]

이 공식으로 적분을 구할 때 생기는 오차는 다음과 같다. 여기서 [math]h = \textstyle \frac{b-a}2[/math][math]\xi[/math]ab 사이에 있는 임의의 숫자이다.

[math]-\frac{h^5}{90}f^{(4)}(\xi)[/math]

여러구간에서의 적분

심프슨 1법칙

위의 공식은 적분 구간 [math][a, b][/math]이 작을 때는 적합하지만 그렇지 않으면 상당한 오차를 가진 값이 나온다. 대부분의 경우 적분 구간이 작지 않으므로, 먼저 몇 개의 작은 구간으로 나누고 각 구간에 심프슨의 법칙을 적용해 그 값들을 합해야 한다. 여기서 확장된 공식을 유도할 수 있다. 측량학에서는 면체적 측량 시 쓰이며 심프슨 1법칙이라고 부른다.

[math]\int_a^b f(x) \, dx\approx \frac{h}{3}\bigg[f(x_0)+2\sum_{j=1}^{n/2-1}f(x_{2j})+ 4\sum_{j=1}^{n/2}f(x_{2j-1})+f(x_n) \bigg][/math]

이 식에서 [math]n[/math]은 구간 [math][a, b][/math]을 나눈 부분구간의 총 개수를 뜻하며 짝수여야 하고, [math]h = \textstyle \frac{b-a}n[/math]은 각 부분구간의 길이이다. 면적측량 시 n이 홀수라면 남는 부분은 사다리꼴의 넓이로 계산하여 더해준다. 이 공식을 정리하면 다음과 같이 쓸 수도 있다.

[math]\int_a^b f(x) \, dx\approx \frac{h}{3}\bigg[f(x_0)+4f(x_1)+2f(x_2)+4f(x_3)+...+4f(x_{n-1})+f(x_n)\bigg][/math]

심프슨의 법칙의 오차로부터 이 공식의 오차를 다음과 같이 구할 수 있다. 여기서 [math]h = \textstyle \frac{b-a}n[/math]이며 각 부구간의 크기를 나타낸다.

[math]-\frac{h^4}{180}(b-a)f^{(4)}(\xi)[/math]

심프슨 2법칙

n이 3의 배수일 때 3개의 h씩 묶어 면적을 계산하여 다음 식으로 전체 면적을 구할 수도 있다. n이 3의 배수가 아니면, 2법칙을 적용하고 남는 구간은 심프슨 1법칙으로 계산해서 더한다.

[math]\frac{3}{8}h [f(x_0) + 2\Sigma f(x_{\text{3의 배 수 }}) + 3\Sigma f(x_{\text{남 은 수 }}) + f(x_n)][/math]