한빛미디어 Engineering Numerical Analysis Learning by MATLAB 1/50
수치해석을 이용한 적분
Integration with the Use of Numerical Analysis
방성완
중앙대학교 전자전기공학부
2012. 12. 31
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 2/50
사다리꼴 공식을 이용한 적분법
8.2
심슨 공식을 이용한 적분법
8.3
가우스 구적법
8.4
롬버그 적분
8.5
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 3/50
함수 곡선 아래의 사다리꼴 면적을 이용하는 사다리꼴 공식으로 적분값을 근사시킬 수 있다.
심슨 공식으로 사다리꼴 공식을 확장시켜 피적분함수를 근사시킬 수 있다.
함수의 값을 가중치 합으로 표현하는 가우스 구적법을 이용하여 적분값을 근사시킬 수 있다.
사다리꼴 공식에 외삽 공식을 이용하는 롬버그 적분법으로
적분값을 근사시킬 수 있다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 4/50
8.1 수치해석을 이용한 적분의 기초
적분의 기본 개념
: 함수 f(x) 곡선 아래의 두 개의 점 a와 b 사이의 면적 A 계산
x: 적분의 변수 f(x): 피적분 함수
a와 b: 적분의 하한과 상한 [그림 8-1] 함수 f(x)의 적분
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 5/50
8.1 수치해석을 이용한 적분의 기초
정해진 구간 안의 면적을 여러 직사각형 조각으로 자른다.
각각의 직사각형 면적을 더한다.
식 (8.1)의 결과와 비슷하게 된다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 6/50
8.1 수치해석을 이용한 적분의 기초
정적분(definite integral) 계산
F(x): F’(x) = f(x)인 역도함수
모든 적분을 풀 수는 없다
그래서 수치해석 방법을 이용하여 적분의 근사치를 구한다
뉴턴-코츠(Newton-Cotes) 공식
가장 일반적 수치해석 적분 형식
n등분 구간: [a=x1, x2, ∙∙∙, xn-1, xn=b]
폐쇄 형태: 모든 점에서 함숫값을 사용, [x1, xn]에서 계산
개방 형태: 끝점에서 함숫값을 사용하지 않음, [x2, xn-1]에서 계산
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 7/50
8.1 수치해석을 이용한 적분의 기초
같은 간격을 가진 점들에서 피적분 함수의 값이 주어지면 매우 유용
(1) n 등분한 구간에서 새로운 간격 과 부분 함수 fn = f(xn)를 얻는다
(2) f(xn)를 근사시키는 라그랑주 보간 다항식으로 대체 (3) 곡선 아래의 면적을 근사
(4) 한 개 혹은 여러 개로 나눈 적분값의 구간을 이용하여 근사치의 정확성 향상
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 8/50
8.2.1 점 두 개를 사용한 사다리꼴 공식
사다리꼴 공식
: 뉴턴 코츠 공식의 폐쇄 형태
판이라고 부르는 여러 개로 나누어진 각각의 사다리꼴 조각 이용
점 두 개를 사용한 사다리꼴 공식
[그림 8-2] 사다리꼴 공식을 이용한 f(x)의 적분
수평 바닥면과 두 개의 끝점 a와 b를 연결하는 경사진 윗면을 갖는 면적을 근사
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 9/50
8.2.1 점 두 개를 사용한 사다리꼴 공식
복잡한 함수 f(x)를 근사시킨 함수 를 이용하여 적분값 계산
식 (8.2) 형태로 다시 쓴 식 (8.3)
함수 는 선형 보간법 혹은 2차 보간법을 이용하여 대체
시작점 a와 끝점 b를 보간시키는 선형 보간법을 이용하여 얻은 1차 다항식
[그림 8-2]의 경사진 윗면을 나타내는 직선 방정식
식 (8.3)에 식 (8.5) 대입
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 10/50
8.2.1 점 두 개를 사용한 사다리꼴 공식
사다리꼴 공식: 식 (8.6)의 적분값, [그림 8-2]의 사다리꼴 면적과 같은 값
식 (8.7), 사다리꼴 공식의 새로운 표현
T: 사다리꼴 영문명의 첫글자
1: 두 점을 포함하는 구간 하나
식 (8.7)을 이용하여 구간 에서 함수 f(x) = sin x에 대한 근사시킨 적분값
를 직접 계산한 값 1과의 오차는 0.214602
[그림 8-2]에서 함수 f(x)의 곡선 아랫 부분에서 색을 입힌 사다리꼴의 면적을 제외 한 부분
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 11/50
8.2.2 점 세 개를 사용한 사다리꼴 공식
[그림 8-3] 두 부분 구간에서 사다리꼴 공식을 이용한 f(x)의 적분
세 점 a, b, c를 포함하는 두 부분
c는 시작점 a와 끝점 b의 중간에 위치
두 개의 부분 구간에 대한 직선 선분 거리:
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 12/50
8.2.2 점 세 개를 사용한 사다리꼴 공식
둘로 나누어진 부분 구간에서 함수 f(x)를 근사시키는 사다리꼴 공식
여기서
식 (8.7)을 직접 이용한 식 (8.9) 우항의 두 적분 계산
간격 크기 h: 새롭게 생성되는 구간 a와 b에 대한 점들 사이의 거리
여기서
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 13/50
8.2.2 점 세 개를 사용한 사다리꼴 공식
식 (8.11)을 이용하여 주어진 구간 에서 함수 f(x) = sin x에 대한 적분값을
두 개의 작은 부분 구간 와 나눈 후 근사시킨 값
를 직접 계산한 값 1과의 오차는 0.051941
[그림 8-3]에서 함수 f(x)의 곡선 아랫 부분에서 사다리꼴의 면적을 제외한 부분
[그림 8-2]와 [그림 8-3] 오차 비교: 부분 구간 두 개를 이용한 사다리꼴 방식이 오차 를 줄이는 데 더 효과적
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 14/50
8.2.2 점 세 개를 사용한 사다리꼴 공식
더 정확한 적분식 계산 하기
적분 구간 [a, b]를 더 작은 부분 구간들 [a = x0, x1], [x1, x2], ∙∙∙ , [xn-1, xn = b]로 나눔
사다리꼴 공식을 적용해서 모든 부분 구간의 면적을 더한다.
사다리꼴 공식을 확장
식 (8.7)을 이용하여 식 (8.12)를 푼다.
j = 0, 1, 2, , n에 대한 간격 크기 h와 자료점 x
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 15/50
8.2.2 점 세 개를 사용한 사다리꼴 공식
합성(composite) 사다리꼴 공식 또는 사다리꼴 공식
작게 나누어진 부분 구간을 각각 적분
서로 더하면 전체 적분값을 계산
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 16/50
8.2.3 점 네 개를 사용한 사다리꼴 공식
[그림 8-4] 합성 사다리꼴 공식을 이용한 f(x)의 적분
부분 구간 세 개에 있는 자료점 네 개를 이용
식 (8.15)에 n = 3의 값 대입
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 17/50
8.2.3 점 네 개를 사용한 사다리꼴 공식
식 (8.16)을 이용하여 구간 에서 함수 f(x) = sin x에 대한 근사시킨 적분값
간격 크기와 각 자료점들
부분 구간 세 개에 대하여 자료점 네 개를 대입한 결과
를 직접 계산한 값 1과의 오차는 0.012884
[그림 8-4]에서 함수 f(x)의 곡선 아랫 부분에서 색을 입힌 사다리꼴의 면적을 제외 한 부분
부분 구간의 수가 증가: 실제 적분의 값에 더욱 근접하는 적분 근사치
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 18/50
8.2.3 점 네 개를 사용한 사다리꼴 공식
예제
8-1
사다리꼴 공식을 이용한 사인함수 적분사다리꼴 공식을 이용하여 적분 의 값을 소수점 네 자리까지 구하라. 이때 간격 크기는 로 놓는다.
Tip !
식 (8.14)를 이용해서 부분 구간의 수를 구한다.
각 자료점
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 19/50
8.2.3 점 네 개를 사용한 사다리꼴 공식
MATLAB
8-1
매트랩 함수를 이용한 사다리꼴 적분법매트랩에서 사다리꼴 적분법을 실행할 수 있는 trapz 함수를 이용하여 [예제 8-1]를 실행하라.
Tip !
linspace 함수: 간격 크기가 인 자료점 다섯 개의 배열 표시에 사용
trapz 함수: 기본 구문 trapz(x, fx)
x는 부분 구간에 있는 자료점들에 대한 배열, fx는 피적분 함수 f(x) = sin x
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 20/50
8.2.4 사다리꼴 공식의 오차
사다리꼴 공식의 오차
: n개 부분 구간에 대한 사다리꼴 공식의 오차
f(x)는 구간 a ≤ x ≤ b에서 두 번 연속적으로 미분 가능
간격 크기:
x
: 구간 [a, b] 안에 있는 임의의 알 수 없는 점 표시 오차는 h2만큼씩 비례하여 감소
부분 구간 n의 수를 두 배 늘리면, 즉 간격 크기 h를 반으로 줄이면
사다리꼴 공식을 확장
반으로 줄인 이후 오차는 h를 반으로 줄이기 이전에 생성되었던 오차보다
값으로 준다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 21/50
8.2.4 사다리꼴 공식의 오차
예제
8-2
사다리꼴 공식의 오차사다리꼴 공식을 이용하여 적분 의 값을 구할 때 발생하는 경계 오차를 측정하라. 이때 간격 크기는 이고 소수점은 네 자리까지 나타내라.
Tip !
경계 오차 이용하여 식 (8.17) 다시 쓰면 다음과 같이 된다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 22/50
8.3 심슨 공식을 이용한 적분법
심슨 공식을 이용한 적분법
: 사다리꼴 공식을 확장시켜서 2차 다항식에 대한 피적분함수 근사
사다리꼴 공식: 함수 f(x)에 근사되었지만, 여전히 매끄럽지 못함
2차 보간 다항식: 포물선 형태로 f(x)에 좀 더 매끄럽게 겹쳐짐 [그림 8-6] 심슨 공식을 이용한 f(x)의 적분
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 23/50
8.3 심슨 공식을 이용한 적분법
자료점 세 개 를 이용하여 f(x)를 근사
구간 [a, b]에서 a는 시작점, c는 중앙점, b는 끝점
2차 보간법을 이용하여 얻은 2차 다항식
간격 크기
식 (8.3)에 함수 대신 P2(x)를 대입
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 24/50
8.3 심슨 공식을 이용한 적분법
식 (8.20)의 우항 적분식 계산
위 식에 b = a + 2h와 c = a + h를 대입
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 25/50
8.3 심슨 공식을 이용한 적분법
간단하게 풀기 위해서 시작점 a = 0으로 가정하면 식 (8.20)은 다음과 같다.
[그림 8-6]에서 색칠한 면적의 값
심슨(Simpson) 공식
S: 심슨 영문명의 첫글자 2: 구간 두 개 표시
위 식에 b = a + 2h와 c = a + h를 대입
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 26/50
8.3 심슨 공식을 이용한 적분법
식 (8.21)을 이용하여 구간 에서 함수 f(x) = sin x에 대한 근사시킨 적분값
를 직접 계산한 값 과의 오차는 -0.0028
실제 적분한 값보다 큰 값으로 계산된 이유
부분 구간 [a, c]에서 P2(x)의 곡선 아래에 f(x)의 곡선이 놓여 있다.
부분 구간 [c, b]에서 f(x)의 곡선 아래에 P2(x)의 곡선이 놓여 있다.
위 식에 b = a + 2h와 c = a + h를 대입
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 27/50
8.3 심슨 공식을 이용한 적분법
더 정확한 적분식 계산 하기
적분 구간 [a, b]를 더 작은 부분 구간들 [a = x0, x1], [x2, x4], ∙∙∙ , [xn-2, xn = b]로 나눔
심슨 공식을 적용해서 모든 부분 구간의 면적을 더한다.
심슨 공식을 확장
식 (8.21)을 이용하여 식 (8.23)을 푼다.
j = 0, 1, 2, , n에 대한 간격 크기 h와 자료점 x
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 28/50
8.3 심슨 공식을 이용한 적분법
합성 심슨 공식 또는 심슨 공식
자료점 세 개를 포함하는 각 부분 구간을 적분
서로 더하면 전체 적분값을 계산
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 29/50
8.3 심슨 공식을 이용한 적분법
예제
8-3
심슨 공식을 이용한 사인함수 적분심슨 공식을 이용하여 적분 의 값을 소수점 네 자리까지 구하라. 이때 간격 크기는 로 놓는다.
Tip !
식 (8.25)를 이용해서 부분 구간의 수를 구한다.
네 개 부분 구간: (x0, x1, x2), (x1, x2, x3), (x2, x3, x4), (x3, x4, x5)
각 자료점
각 자료점
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 30/50
8.3 심슨 공식을 이용한 적분법
MATLAB
8-2
매트랩 함수를 이용한 심슨 공식 실행매트랩에서 심슨 적분법을 실행할 수 있는 simpson 함수를 이용하여 [예제 8-3]을 실행하라.
Tip !
simpson 함수: 현재 사용 중인 매트랩 디렉토리에 저장 (디폴트 함수가 아님)
simpson 함수: 기본 구문 simpson(f, a, b, n)
f는 피적분 함수, a와 b는 전체 구간의 시작점과 끝점, n은 부분 구간의 수를 표시
f=@(x)sin(x): f(x) = sin x에서 변수 x를 벡터 형태로 미리 지정할 필요가 없다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 31/50
8.3 심슨 공식을 이용한 적분법
심슨 공식의 오차
: 부분 구간의 수 n이 짝수 개인 심슨 공식의 오차
f(x)는 구간 a ≤ x ≤ b에서 네 번 연속적으로 미분 가능
간격 크기:
x
: 구간 [a, b] 안에 있는 임의의 알 수 없는 점 표시 점근(asymptotic) 오차 공식으로 추정하여 식 (8.27) 다시 표시
오차는 h4만큼씩 비례하여 감소
부분 구간 n의 수를 두 배 늘리면, 즉 간격 크기 h를 반으로 줄이면
반으로 줄인 이후 오차는 h를 반으로 줄이기 이전에 생성되었던 오차보다
값으로 준다. (사다리꼴 공식보다 더 정확)
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 32/50
8.3 심슨 공식을 이용한 적분법
예제
8-4
심슨 공식의 오차심슨 공식을 이용하여 적분 의 값을 구할 때 발생하는 경계 오차를 측정하라. 이때 간격 크기는 이고 소수점은 네 자리까지 나타내라.
Tip !
경계 오차 이용하여 식 (8.27) 다시 쓰면 다음과 같이 된다.
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 33/50
8.4.1 한 점 가우스 구적법 n = 1
가우스 구적법
: 함수의 값을 가중치(weight) 합으로 표시하여 적분
일반화된 n점 가우스 구적법
높은 차수의 다항식 이용
정확하게 미지수인 가중치 wj 와 자료점 xj를 찾을 수 있다
더욱 정확하게 적분값 계산
n 의 값에 의해서 다른 공식이 유도
각각 n개의 미지수 x1, x2, ... , xn와 w1, w2, ... , wn를 풀려면
2n – 1차 다항식 필요
자료점의 간격이 균일하다는 제한이 없는 경우에 더 좋은 결과 획득
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 34/50
8.4.1 한 점 가우스 구적법 n = 1
한 점 가우스 구적법 n = 1
구간 [a, b]에서 근사시킨 적분
미지수 w1과 x1을 찾기 위한 1차 다항식
식 (8.31)의 적분
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 35/50
8.4.1 한 점 가우스 구적법 n = 1
식 (8.31)을 식 (8.30)에 대입
변수처럼 작용하는 임의적
a
0,a
1를 식 (8.32)와 비교 한 점 가우스 구적법 공식
식 (8.34)를 식 (8.30)에 대입
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 36/50
8.4.2 두 점 가우스 구적법 n = 2
두 점 가우스 구적법 n = 2
사다리꼴 공식 근사치의 연장
미지의 변수 x1과 x2에 의해서 구간 a와 b가 결정
네 개의 미지수 x1, x2, w1, w2 찾기 위한 3차 다항식
식 (8.36)의 좌항에 대입한 적분 결과
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 37/50
8.4.2 두 점 가우스 구적법 n = 2
식 (8.36)의 정리
변수처럼 작용하는 임의적
a
0,a
1,a
2,a
3를 식 (8.38)과 비교 두 점 가우스 구적법 공식: 식 (8.40)을 식 (8.36)에 대입
한 점과 두 점 가우스 구적법 과정을 확장 해석
식 (8.29)의 n점 가우스 구적법에 대한 적분을 해석
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 38/50
8.4.2 두 점 가우스 구적법 n = 2
예제
8-5
가중치를 이용한 가우스 적분다음과 같이 주어지는 가우스 구적법 공식에 대한 가중치 w1, w2 의 자료점 x1 을 결정하 라.
Tip !
미지수 세 개를 풀기 위해서 세 개의 단항식이 필요
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 39/50
8.4.2 두 점 가우스 구적법 n = 2
한정된 구간 [a, b]에서 가중함수 w(x)를 갖는 구적법 공식
f(x): 연속 미분 가능 함수
식 (8.29)와 식 (8.42)의 차이점
가중함수 w(x)가 피적분함수 f(x)에 곱해짐
가중함수는 하나의 함수로 표시
가중함수는 반드시 적분 가능
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 40/50
8.4.2 두 점 가우스 구적법 n = 2
MATLAB
8-3
매트랩 함수를 이용한 가우스 구적법매트랩에서 제공하는 가우스 구적법 함수 quad와 quadl를 이용하여 적분 의 값을 구하라.
Tip !
식 (8.41) 이용
함수 quad와 quadl의 기본 구문
f(x)를 나타내는 사용자정의함수 quadfun.m 작성
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 41/50
8.4.2 두 점 가우스 구적법 n = 2
MATLAB
8-4
매트랩의 심볼릭 도구 상자를 이용한 적분 계산매트랩의 심볼릭 도구 상자에서 제공하는 함수 int를 이용하여 적분 의 값을 구하라.
Tip !
함수 int의 기본 구문
심볼릭 도구 상자를 이용한 결과는 항상 문자열로 표시
문자열은 다시 숫자로 변환
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 42/50
8.5 롬버그 적분
롬버그 적분
: 사다리꼴 공식에 리차드슨(Richardson) 외삽 공식을 이용한 적분 방법
리차드슨 외삽
: 사다리꼴 공식을 이용한 적분보다 더 좋은 근사치를 얻기 위해서 이용
추정된 부분 구간 n 개인 사다리꼴 공식에서 실제 오차
c: 적절한 비례의 근사상수
(8.43)에서 부분 구간의 수를 두 배로 증가
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 43/50
8.5 롬버그 적분
식 (8.43)과 식 (8.44)을 정리
실제 적분 I로 나타낸 리차드슨 외삽 공식
롬버그 적분은 리차드슨 외삽 공식과 동일
반복적 알고리즘 사용
다시 쓰여진 식 (8.46)
식 (8.46)의 I는 (T2n)R로 대체
식 (8.46)의 근사값( ) 은 식 (8.47)에서 등호(=)로 바뀜
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 44/50
8.5 롬버그 적분
실제값의 추정치
ch4: 실제 오차의 근사치
식 (8.47)의 수정
반복해서 부분 구간의 수를 2배 증가 (간격의 크기를 반으로 줄임)
식 (8.46)과 식 (8.47)을 이용한 실제 적분 I
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 45/50
8.5 롬버그 적분
일반화시킨 롬버그 적분 공식
k는 외삽의 차수
k = 1: 사다리꼴 공식으로 얻어지는 값
k = 2: 실제 추정하는 차수 h2 이상의 항들을 더해 얻어지는 값
색인 j
정확한 근사치 결정에 사용
같은 k에 대해서 j 값이 크면 근사치는 실제값에 보다 정확하게 추정
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 46/50
8.5 롬버그 적분
적분값을 향상시키는 전개 과정을 나타내는 도식
낮은 단계의 적분들이 결합하여 더 정확한 추정치를 찾아가는 과정
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 47/50
8.5 롬버그 적분
도식에서 ①열의 값 찾기
j = 1, 2, 3, ∙∙∙, n에 대한 부분 구간 2j-1을 갖는 사다리꼴 공식 (8.15)이용
구간 [a, b]에서 풀이 과정
도식에서 ②열의 값 찾기 (반복 과정으로 더욱 정확한 근사치 추정)
①열에서 구한 값들을 결합하여 식 (8.15) 이용
②열의 값들은 1차수 외삽의 결과
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 48/50
8.5 롬버그 적분
예제
8-6
롬버그 적분을 이용한 적분의 근사치 구하기롬버그 적분을 이용하여 각각 1, 2, 4개로 나누어진 부분 구간에 대한 적분 의 값을 근사시켜라.
Tip !
식 (8.51)과 식 (8.52)를 이용
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 49/50
8.5 롬버그 적분
MATLAB
8-5
매트랩 함수를 이용한 롬버그 적분매트랩을 이용하여 [예제 8-6]의 롬버그 적분을 실행하라.
Tip !
부록에서 제공하는 사용자정의함수 romberg를 현재 사용중인 매트랩 디렉토리에
romberg 함수의 기본 구문
한빛미디어 Engineering Numerical Analysis Learning by MATLAB 50/50