• 검색 결과가 없습니다.

보간법

N/A
N/A
Protected

Academic year: 2021

Share "보간법"

Copied!
73
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 1/73

CHAPTER 06

보간법

Interpolation

방성완

중앙대학교 전자전기공학부

2012. 12. 31

(2)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 2/73

분할차 보간법

6.2

다항식 보간법

6.1

뉴턴의 분할차 보간법

6.3

다항식 보간 오차

6.4

스플라인 보간법

6.5

(3)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 3/73

학습목표

보간법을 사용하여 함수를 근사시키는 다항식을 찾을 수 있다.

분할차 보간법으로 다항식 내에 있는 계수들을 계산할 수 있다.

뉴턴 분할차 보간법으로 다항식의 계수를 찾을 수 있다.

다양한 보간법을 이용하여 구한 함수와 실제 함수 사이의 오차를 측정하여 정확도를 비교할 수 있다.

3차 스플라인 보간법을 익혀 상대적으로 작은 오차를 측정할 수

있다.

(4)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 4/73

6.1.1 선형 보간법

6.1 다항식 보간법

보간법(interpolation)

: 그래프에 나와 있는 부분 외에 그 사이에 있는 값을 추정하는 방법

 주어진 함수 f(x)를 표준화시켜 더 간단한 형태인 다항식 p(x)로 근사

 반드시 원본 자료를 포함하는 범위 내에서만 가능

 자료점들을 이용하여 복잡한 함수를 쉽게 해석할 수 있는 다항식 함수로 대체

 원본 자료 범위 밖의 내용을 추정할 때는 외삽법(extrapolation) 사용

 의미없는 결과들을 생성할 위험이 높고 불확실성이 큼

 n차 다항식

 계수를 찾으면 다항식 그래프를 생성

 그래프는 함수 f(x)에 근사적으로 일치한 형태

(5)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 5/73

6.1.1 선형 보간법

6.1 다항식 보간법

 같은 간격으로 형성된 입력값 세 개와 이에 상응하는 함수

 주어진 입력값을 함수에 대입

 식 (6.1)에서 자료점 세 개를 이용하여 구한 2차 다항식

 5장에 의해서 다음 관계가 형성

(6)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 6/73

6.1.1 선형 보간법

6.1 다항식 보간법

 원본 자료점을 2차 다항식에 대입하여 계산된 세 개의 변수

 계산된 계수값

 정리된 2차 다항식

(7)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 7/73

6.1.1 선형 보간법

6.1 다항식 보간법

[그림 6-1] 설명

 함수 cos(x)의 2차 다항식 p2(x)를 구하여 그린 그래프

 두 함수의 형태는 거의 일치

 자료점 세 개는 함수 cos(x)와 다항식 p2(x)의 곡선을 통과

 작은 동그라미로 표시

 자료점 수를 n개로 확장한 다항식은 pn-1(x)로 표시

 계수를 n – 1개까지 구함

 자료점이 증가하면 더 매끄럽고, 주어진 함수에 근사되는 곡선을 얻음

(8)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 8/73

6.1.1 선형 보간법

6.1 다항식 보간법

[그림 6-1] 실행 결과 : 보간법을 사용하여 근사시킨 코사인 함수

(9)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 9/73

6.1.1 선형 보간법

6.1 다항식 보간법

[그림 6-2] 설명

 [그림 6-1]의 그래프를 실행하기 위해서 사용한 매트랩의 스크립트 파일

 x축의 간격을 로 설정

 간격이 커진다면 곡선은 똑같이 동그라미 자료점 3개를 통과

 상대적으로 덜 매끈한 그림 생성

(10)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 10/73

6.1.1 선형 보간법

6.1 다항식 보간법

[그림 6-2] [그림 6-1]을 실행하기 위한 매트랩 스크립트 파일

(11)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 11/73

6.1.1 선형 보간법

6.1 다항식 보간법

선형 보간법

 자료점 두 개를 연결하여 직선을 생성하는 가장 단순한 보간법

 자료점 (x0, y0)와 (x1, y1) 두 개를 모두 통과하는 선형 다항식

 a0와 a1은 각각 직선의 절편과 기울기를 표시

두 자료점 (x0, y0)와 (x1, y1)을 지나는 다양한 선형 방정식의 형태

(12)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 12/73

6.1.1 선형 보간법

6.1 다항식 보간법

예제

6-1

선형 보간법

다음 표에 함수 f(x) = tan x의 x 값 네 개가 주어져 있다. 이때 선형 보간법을 이용하여 tan(1.15)의 값을 추정하고, 절대 오차를 구하라.

Tip !

 선형 보간법을 이용하려면 자료점이 두 개 필요

 추정하려는 x 값 1.15는 1.1과 1.2 사이에 위치

(13)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 13/73

6.1.1 선형 보간법

6.1 다항식 보간법

MATLAB

6-1

[예제 6-1]의 검증

매트랩을 이용하여 앞의 [예제 6-1]에서 선형 보간법으로 구한 직선을 그려라.

Tip !

 매트랩 그림창에서 Insert 모드의 Line 메뉴를 설정하여 마우스로 수직선 그림

(14)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 14/73

6.1.2 2차 보간법

6.1 다항식 보간법

2차 보간법

 주어진 자료점 3개 (x0, y0), (x1, y1), (x2, y2)를 이용하기 위해서 필요한 조건

 식 (6.4)의 조건을 만족하는 다항식

 다항식 보간법의 라그랑주(Lagrange) 형

 자료점 세 개를 통과하는 다항식의 공식

 식 (6.5)의 계수값 세 개를 계산

(15)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 15/73

6.1.2 2차 보간법

6.1 다항식 보간법

 2차 보간법에 대한 라그랑주 기저(basis)함수

 라그랑주 기저함수의 특징

 i와 j값은 0, 1, 2의 조합으로 구성

(16)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 16/73

6.1.2 2차 보간법

6.1 다항식 보간법

예제

6-2

라그랑주 보간법

라그랑주 보간법을 이용하여 tan(1.15)의 값을 추정하고, 절대 오차를 구하라.

자료점은 [예제 6-1]에서 주어졌던 다음 표를 사용하라.

Tip !

 도표에서 다음 자료점 세 개를 이용

(17)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 17/73

6.1.3 n차 보간법

6.1 다항식 보간법

n차 보간법

 다항식 Pn(x)를 구하기 위해서 필요한 조건

 n + 1 개의 계수값들을 풀기 위해서 n + 1 개의 자료점이 필요

 차수 n에 대한 다항식을 풀기 위한 라그랑주 공식

 에 대한 라그랑주 기저함수들

(18)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 18/73

6.1.3 n차 보간법

6.1 다항식 보간법

 식 (6.11)의 다른 표현

 n 차 라그랑주 기저함수의 특징

(19)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 19/73

6.1.3 n차 보간법

6.1 다항식 보간법

예제

6-3

3차 보간법

3차 보간법을 이용하여 tan(1.15)의 값을 추정하고, 절대 오차를 구하라. 자료점은 [예제 6-1]에서 주어졌던 다음 표를 사용하라.

Tip !

 도표의 주어진 자료점을 이용하여, 계수 네 개를 계산

(20)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 20/73

6.1.3 n차 보간법

6.1 다항식 보간법

예제

6-4

라그랑주 공식

다음과 같은 자료가 주어졌을 때, 라그랑주 공식을 이용하여 f(3)을 근사시켜라.

Tip !

 네 개의 자료점

(21)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 21/73

6.2.1 1차 분할차

6.2 분할차 보간법

분할차(divided differences) 보간법

 재귀 분할(recursive division) 과정

 재귀는 과정을 ‘반복한다’는 의미

 미분과 반복 실행으로 다항식 보간법 내에 있는 계수를 계산

1차 분할차

 함수 f(x)의 1차 분할차의 수식

 두 자료점 x0와 x1의 순서는 상관 없음

 x0와 x1 사이에 놓여 있는 임의의 상수 c에 대한 중간값 정리

(22)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 22/73

6.2.1 1차 분할차

6.2 분할차 보간법

 식 (6.16)과 식 (6.17)을 비교하여 다시 쓴 식 (6.16)

 x0와 x1의 간격이 매우 가깝다면, 1차 분할차는 미분의 근사치로 표시

 식 (6.19)의 계산

 (x0, f(x0))와 (x1, f(x1))에 대한 직선방정식 f(x) = ax + b에서 a와 b를 구함

 a와 b를 다시 직선방정식에 대입

 1차 미분식을 구함

 를 대입

(23)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 23/73

6.2.2 2차 분할차

6.2 분할차 보간법

2차 분할차

 함수 f(x)와 세 자료점 x0, x1,

x

2에 대한 2차 분할차의 수식

 식 (6.20)의 확장

 자료점의 순서는 최종값 계산과 무관

 간략한 2차 미분 형태로 정의된 식 (6.20)

 상수 c는 세 자료점 x0, x1,

x

2 사이의 중간 위치

(24)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 24/73

6.2.2 2차 분할차

6.2 분할차 보간법

 균일한 간격을 유지하는 세 자료점

 식 (6.22)의 다른 표현

(25)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 25/73

6.2.2 2차 분할차

6.2 분할차 보간법

예제

6-5

분할차 보간법

다음과 같은 도표가 주어져 있다. 2차 분할차 보간법을 이용하여 를 구하라.

Tip !

 필요한 자료점 세 개

 세 개 자료점에 상응하는 함수

(26)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 26/73

6.2.3 일반적인 분할차

6.2 분할차 보간법

뚜렷한 자료점을 가진 일반형

 함수 f(x)와 n + 1개의 뚜렷한 자료점 에 대한 일반적인 분할차의 수식

 함수 f(x)의 n번째 분할차의 재귀적 정의

 미분의 관계로 표현한 식 (6.24)

 상수 c는 주어진 자료점들의 집합 의 사이에 위치

 k차수 미분 형태로 사용한 식 (6.25)

 k는 n 보다 작은 범위에 있는 3차 혹은 좀 더 고차를 표시

(27)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 27/73

6.2.3 일반적인 분할차

6.2 분할차 보간법

[표 6-1] 미분 형태를 이용한 4차 분할차 보간법

 식 (6.26)을 이용하여 확장시킨 [예제 6-5]의 자료

 i = 0인 경우는 [예제 6-5]의 결과와 일치

 Df(x0)와 D2

f(x

0)는 1차 분할차와 2차 분할차 결과와 같음

(28)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 28/73

6.2.3 일반적인 분할차

6.2 분할차 보간법

i = 1인 경우 Df(x

1

), D

2

f(x

1

), D

3

f(x

1

)의 계산 과정

 주어진 다음의 자료점 다섯 개를 함수 에 대입

 다음 함수값 세 개만 계산에 필요

 1차 분할차와 2차 분할차에 필요한 자료점은 x1, x2 , x3

(29)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 29/73

6.2.3 일반적인 분할차

6.2 분할차 보간법

 식 (6.24)를 이용하여 1차 분할차 계산

 2차 분할차 계산

(30)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 30/73

6.2.3 일반적인 분할차

6.2 분할차 보간법

 3차 분할차 계산

(31)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 31/73

6.2.3 일반적인 분할차

6.2 분할차 보간법

중복되는 자료점을 가진 일반형

 자료점들이 서로 구별되지 않고 한 개의 자료점으로 표시되는 분할차 수식 함수

 x1과 x0이 같은 값으로 지정되는 1차 분할차의 식

 서로 일치하는 두 자료점에 대한 f[x0, x1]의 정의

 세 개의 자료점 x0, x1, x2가 x0 와 같은 값으로 지정되는 식 (6.22) 변형

(32)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 32/73

6.2.3 일반적인 분할차

6.2 분할차 보간법

 서로 일치하는 세 자료점에 대한 f[x0, x1 , x2]의 정의

 n + 1 개의 자료점 도 x0 와 같은 값으로 지정되는 일반적인 수식

 서로 일치하는 n + 1개의 자료점에 대한 의 정의

 자료점이 x0, x1, x2로 주어지는 2차 분할차 수식의 변형

(33)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 33/73

6.2.3 일반적인 분할차

6.2 분할차 보간법

예제

6-6

중복 자료점에 대한 분할차 보간법

식 (6.32)를 이용하여 에 대해 계산한 뒤, 식 (6.33)의 형태로 나타내라.

Tip !

 제시한 식 직접 이용

(34)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 34/73

6.3 뉴턴의 분할차 보간법

6.3 뉴턴의 분할차 보간법

뉴턴의 분할차 보간법

: 보간 다항식을 계산하는 라그랑주 방식의 불편한 단점을 보완

 식 (6.9)의 조건을 이용하여 함수 f(x)로부터 다항식을 구함

 분할차 f[x0, x1], f[x0, x1, x2], ···, f[x0, ···, xn] 이용한 보간 다항식 P1(x), P2(x), ···,

P

n(x)

 식 (6.34)를 식 (6.35)에 대입

 n차수로 확대한 보간 다항식에 대한 뉴턴(Newton) 분할차 공식

(35)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 35/73

6.3 뉴턴의 분할차 보간법

6.3 뉴턴의 분할차 보간법

 라그랑주 식 (6.10)

 같은 자료점들을 반복적으로 사용하는 경우에 편리

 자료값들을 저장하여 연산의 실행 횟수를 감소시키는 장점

 순서대로 다항식의 차수를 증가시키는 실제 계산에서는 매우 불편

 재귀 관계 형태로 다시 표현된 식 (6.37)

 Pn-1(x)는 자료점 x0, x1, ···, xn-1에서 함수 f(x)를 보간

(36)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 36/73

6.3 뉴턴의 분할차 보간법

6.3 뉴턴의 분할차 보간법

 뉴턴 분할차 공식을 이용한 [표 6-1]에 대한 다항식 표시

 [표 6-2] 설명

 x = 1.05에 대한 1~4차까지의 뉴턴 분할차 보간법의 계산을 보여줌

 실제값은 cos(1.05) = 0.49757

 차수가 증가할수록 오차는 점점 감소

(37)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 37/73

6.3 뉴턴의 분할차 보간법

6.3 뉴턴의 분할차 보간법

[표 6-2] 4차 뉴턴 분할차 보간법

 만일 다음의 관계가 있는 경우

 식 (6.37)은 중첩된 형으로 표시 가능

(38)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 38/73

6.3 뉴턴의 분할차 보간법

6.3 뉴턴의 분할차 보간법

예제

6-7

뉴턴 분할차 보간법의 형태

뉴턴 분할차 보간법의 일반형을 구하고, 다음에 주어진 값들을 이용하여 ln1.4를 근사시켜라.

Tip !

 도식화를 이용한 전개 과정

(39)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 39/73

6.4.1 선형 보간 오차

6.4 다항식 보간 오차

다항식 보간 오차

: 자료점들을 보간시켜서 구한 보간 다항식과 계산하려는 함수 f(x) 사이의 오차

선형 보간 오차

 선형 보간 다항식 P1(x)와 함수 f(x)의 차이, f(x) – P1(x)

 함수 f(x)는 x0과 x1을 포함하는 [a, b] 구간에서 연속적으로 두 번 미분 가능

임의의 cx에 대한 a ≤ x ≤ b 의 범위에서 선형 보간 오차

 상수 cx는 x0, x1 과 구하려는 값 x의 최소 및 최대 사이에 위치

 상수 cx의 정확한 값은 알 수 없음

(40)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 40/73

6.4.1 선형 보간 오차

6.4 다항식 보간 오차

 x0 ≤ x ≤ x1

범위에서 f ‘’(c

x)는 x에 대한 함수 f ‘’(x)의 최댓값으로 대치

 x1과 x가 x0에 매우 가까운 경우에 대한 식 (6.43)의 변형

 시작점 x0에 x1과 구하려는 값 x가 가까이 접근하면 의 관계

 점 세 개의 최대와 최소 사이에 있는 cx

(41)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 41/73

6.4.1 선형 보간 오차

6.4 다항식 보간 오차

예제

6-8

선형 보간 오차

자료점 x0는 x1보다 작은 값이고, h = x1 – x0의 조건을 만족한다. 함수 f(x) = ln(x)에 대한 선형 보간 오차를 구하라. 그리고 최종 결과에 h도 포함해서 나타내라.

Tip !

 풀이에 필요한 항

(42)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 42/73

6.4.2 2차 보간 오차

6.4 다항식 보간 오차

 2차 보간 오차 공식

 상수 cx는 x0, x1 , x2 과 구하려는 값 x의 최소 및 최대 사이에 위치

 x0 ≤ x ≤ x2

범위에서 f

(3)(cx)는 x에 대한 함수 f (3)(x)의 최댓값으로 대치

 는 근이 x0, x1, x2인 3차 다항식을 표시

 x0 ≤ x ≤ x2의 조건에서 균일 경계에 대한 오차

(43)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 43/73

6.4.2 2차 보간 오차

6.4 다항식 보간 오차

예제

6-9

2차 보간의 절대 오차

범위 x0 ≤ x ≤ x2에서 세 자료점 x0, x1 , x2 의 간격이 같고, x1 – x0 = h와 x2 – x1 = h 조건을 만족한다. 함수 f(x) = ln(x)에 대한 2차 보간의 절대 오차를 구하라. 결과에 h도 포함해서 나타내라.

Tip !

 풀이에 필요한 과정

(44)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 44/73

6.4.3 n차 보간 오차

6.4 다항식 보간 오차

 차수 n에 대한 일반적 다항식의 보간 오차

 구간 a ≤ x ≤ b에서 n + 1개의 자료점 x0, ···, xn 을 포함

 함수 f(x)가 연속적으로 n + 1번 미분 가능

 상수 cx는 x0, x1 , ···, xn 과 구하려는 값 x의 최소 및 최대 사이에 위치

 식 (6.50)의 분자항을 근 x0, x1 , ···, xn으로 갖는 n + 1 차수의 다항식 표시

 식 (6.51)을 식 (6.50)에 대입

(45)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 45/73

6.4.3 n차 보간 오차

6.4 다항식 보간 오차

 n차 다항식 보간 오차의 경계

 (n + 1) 차수로 확장한 식 (6.38)

 식 (6.54)에 x = xn + 1 대입

 xn + 1에서 함수 f(x)를 근사시키려는 다항식은 Pn + 1 (x)

 xn + 1의 값을 전부 x로 대체시킨 식 (6.55)

식 (6.50)의 분자항을 근 x0, x1 , ···, xn으로 갖는 n + 1 차수의 다항식 표시

(46)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 46/73

6.4.3 n차 보간 오차

6.4 다항식 보간 오차

 식 (6.51)을 식 (6.56)에 대입

 구하려는 자료점 x는 주어진 자료점들 x0, ···, xn과 같은 값이 아님

(47)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 47/73

6.4.3 n차 보간 오차

6.4 다항식 보간 오차

예제

6-10

경계 오차

[예제 6-7]에서 얻은 결과를 이용하여 경계 오차를 구하라. (245p 참조)

Tip !

 식 (6.47) 이용

(48)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 48/73

6.5.1 보간법의 단점

6.5 스플라인 보간법

구간적(piecewise) 선형 보간법, l(x)

: 주어진 자료점들을 직선으로 연결하는 가장 간단한 보간법 [표 6-3] 구간적 선형 보간법

[그림 6-5] 설명

 [표 6-3]을 이용한 그래프

 1차 다항식을 이용하여 여섯 개 구간마다 각각 자료점 두 개를 직선으로 연결

 자료점을 모두 통과하는 그래프는 매끄럽지 못함

(49)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 49/73

6.5.1 보간법의 단점

6.5 스플라인 보간법

[그림 6-5] 실행 결과 : [표 6-3]을 구간적 선형 보간법으로 그린 그래프

(50)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 50/73

6.5.1 보간법의 단점

6.5 스플라인 보간법

[그림 6-6] 설명

 자료점 일곱 개로 나타낼 수 있는 6차 보간 다항식 P6(x)를 이용

 구간적 선형 보간법 단점 보완

 [그림 6-5]보다 매끄러운 곡선을 보여줌

 여전히 구간 0 ≤ x ≤ 1에서 원하지 않은 결과 생성

구간적 2차 보간법, q(x)

 구간적 선형 그래프보다는 매끄러움

 6차 다항식의 그래프보다는 자료점들 사이가 가까운 장점

(51)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 51/73

6.5.1 보간법의 단점

6.5 스플라인 보간법

[그림 6-6] 실행 결과 : 차수가 6인 보간 다항식 그래프

(52)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 52/73

6.5.1 보간법의 단점

6.5 스플라인 보간법

[그림 6-7] 설명

 각각의 점을 세 개씩 묶음

 0 ≤ x ≤ 2, 2 ≤ x ≤ 3, 3 ≤ x ≤ 4에서 얻은 2차 보간 다항식을 연속시켜 그린 그래프

구간적 2차 보간법의 문제점

 세 구간이 겹치는 자료점 x = 2와 x = 3에서 곡선의 모퉁이가 불연속 연결

 연속 곡선의 형태를 유지하려면 매끄럽게 계속 증가 혹은 감소하는 모양

 자료점 x = 2와 x = 3에서 부자연스러운 형태

 4차 이상의 다항식을 이용하여 자료점들 사이의 동작을 그림

 원하지 않은 결과 생성

 보간법을 사용하여 고차 다항식을 얻는 것이 항상 적합하지는 않음

(53)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 53/73

6.5.1 보간법의 단점

6.5 스플라인 보간법

[그림 6-7] 실행 결과 : 구간적 2차 보간법의 그래프

(54)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 54/73

6.5.2 스플라인 보간법의 정의와 특성

6.5 스플라인 보간법

스플라인(spline) 보간법

: 인접한 자료점들의 각 쌍 사이에 저차 다항식을 사용하여 자료점들을 맞춤

 주어진 자료점들을 통과하는 매끄러운 곡선을 그리는데 사용

 일반적으로 3차(cubic) 다항식을 사용하므로 3차 스플라인 보간법이라고 부름

 임의의 숫자 a와 b에 대하여 다음을 만족하는 자료점들의 집합 {xi}가 존재

 a = x1과 b = xn으로 사용

 함수 s(x)는 중단점(breakpoints) {xi}를 포함하는 구간 [a, b] 위에 존재

 3차 스플라인 보간법 사용

(55)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 55/73

6.5.2 스플라인 보간법의 정의와 특성

6.5 스플라인 보간법

함수 s(x)의 속성

 간격 각각에서 s(x)는 3차 이하의 다항식

 는 구간 [a, b]에서 연속이고

 다음 조건을 만족하면 3차 스플라인 보간함수

 혹은 자연(natural) 3차 스플라인 보간함수라고 부름

 자료점 이 주어진 경우

(56)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 56/73

6.5.3 3차 스플라인 보간함수

6.5 스플라인 보간법

자료점 네 개 를 고려

 x1 < x2 < x3 < x4의 조건을 만족

 간격 [x1, x2], [x2, x3], [x3, x4]에서 s(x)는 3차 다항식

 s’’(x)는 다음과 같은 수식의 선형 다항식

 s(x)를 두 번 연속 미분

 간격 [x1, x2]에 대해 다시 쓴 식 (6.3b)

 식 (6.60)을 두 번 연속 적분

(57)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 57/73

6.5.3 3차 스플라인 보간함수

6.5 스플라인 보간법

 식 (6.58)에 i = 1과 i = 2를 대입하여 상수 c1과 c2 를 구하기

 식 (6.62)를 이용하여 구간 x1 ≤ x ≤ x2에서 식 (6.61)의 계산

 간격 [x2, x3]에서 같은 방법으로 계산된 결과

 구간은 x2 ≤ x ≤ x3

(58)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 58/73

6.5.3 3차 스플라인 보간함수

6.5 스플라인 보간법

 간격 [x3, x4]에서 같은 방법으로 계산된 결과

 구간은 x3 ≤ x ≤ x4

2차 미분값을 찾기 위해서 더 필요한 조건

 식 (6.63)은 구간 x1 ≤ x ≤ x4에서 s(x)와 s’’(x)가 연속함을 보여줌

 2차 미분값 M1, M2, M3, M4의 값들은 알 수 없음

 식 (6.58)과 식 (6.59) 이용

 간격 [x1, x2]에 대해서 s(x2) = y2와 s’’(x) = M2

 간격 [x2, x3]에 대해서 s(x2) = y2와 s’’(x) = M2

(59)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 59/73

6.5.3 3차 스플라인 보간함수

6.5 스플라인 보간법

 다른 두 간격에서 같은 결과 얻음

 s’(x)가 x2와 x3에서 연속성을 가진다는 것을 설명하기는 부족

 더 필요한 조건

 식 (6.64a)의 왼쪽 항은 간격 [x1, x2]에서 끝점 x2가 통과함을 의미

 식 (6.64a)의 오른쪽 항은 간격 [x2, x3]에서 끝점 x2가 통과함을 의미

 식 (6.64b)의 왼쪽 항은 간격 [x2, x3]에서 끝점 x3가 통과함을 의미

 식 (6.64b)의 오른쪽 항은 간격 [x3, x4]에서 끝점 x3가 통과함을 의미

(60)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 60/73

6.5.3 3차 스플라인 보간함수

6.5 스플라인 보간법

더욱 간단한 문제 해석

 x2 = x1 + h, x3 = x1 + 2h, x4 = x1 + 3h와 같이 간격이 균일하다고 가정

 구간 x1 ≤ x ≤ x2에서 다시 쓴 식 (6.63)

 구간 x2 ≤ x ≤ x3에서 다시 쓴 식 (6.63)

(61)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 61/73

6.5.3 3차 스플라인 보간함수

6.5 스플라인 보간법

 구간 x3 ≤ x ≤ x4에서 다시 쓴 식 (6.63)

 식 (6.65a)와 식 (6.65b)에서 x에 대한 미분 실행하고, x = x2의 값 대입

 식 (6.66a)와 식 (6.66b)에 식 (6.64a)를 적용

(62)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 62/73

6.5.3 3차 스플라인 보간함수

6.5 스플라인 보간법

 같은 방법으로 구간 [x2, x3]와 [x3, x4]에 식 (6.64b)를 적용

 식 (6.67)로 미지수 네 개를 포함하는 방정식 두 개를 구함

 M2와 M3를 풀 수 있고 식 (6.65)는 다음과 같이 다시 쓸 수 있음

 경계 조건 s’’(x1) = s’’(x4) = 0에 의해 M1 = M4 = 0

(63)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 63/73

6.5.3 3차 스플라인 보간함수

6.5 스플라인 보간법

자료 n 개 를 고려

 자료점들이 균일한 간격 유지

 xj ≤ x ≤ xj+1 범위에서 s(x)는 다음과 같이 쓸 수 있음

 여기서

(64)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 64/73

6.5.4 3차 스플라인 함수의 예

6.5 스플라인 보간법

[표 6-3]의 자료를 이용하여 s(x)를 구하고 그래프를 그리기

 2차 미분값 을 구하기

 각각의 구간에서 함수 s(x)를 찾는 것은 매우 어려운 과정

 간단하게 문제를 해결하기 위해서 간격이 h = 1로 균일한 자료점 4개를 이용

 식 (6.66)을 이용하여 얻은 관계식

 M1 = M4 = 0

(65)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 65/73

6.5.4 3차 스플라인 함수의 예

6.5 스플라인 보간법

 2차 미분값

 구간 0 ≤ x ≤ 1에서 계산된 함수 s(x)

 구간 1 ≤ x ≤ 2에서 계산된 함수 s(x)

 구간 2 ≤ x ≤ 3에서 계산된 함수 s(x)

 실제 자료점 x = 2.5를 통과하지 않는 구간이므로 제외

(66)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 66/73

6.5.4 3차 스플라인 함수의 예

6.5 스플라인 보간법

 구간 2 ≤ x ≤ 4에 대해서는 간격이 h = 0.5로 균일한 자료점 5개를 이용

 식 (6.66)을 이용하여 얻은 관계식

 M1 = M5 = 0

(67)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 67/73

6.5.4 3차 스플라인 함수의 예

6.5 스플라인 보간법

 구한 2차 미분값

 구간 2 ≤ x ≤ 2.5에서 계산된 함수 s(x)

 구간 2.5 ≤ x ≤ 3에서 계산된 함수 s(x)

 구간 3 ≤ x ≤ 3.5에서 계산된 함수 s(x)

(68)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 68/73

6.5.4 3차 스플라인 함수의 예

6.5 스플라인 보간법

 구간 3.5 ≤ x ≤ 4에서 계산된 함수 s(x)

[그림 6-8] 설명

 앞의 결과를 이용한 3차 스플라인 보간 그래프

 구간적 선형 보간 그래프와 3차 스플라인 보간 그래프의 명확한 차이점 제시

(69)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 69/73

6.5.4 3차 스플라인 함수의 예

6.5 스플라인 보간법

[그림 6-8] 실행 결과 : 3차 스플라인 보간과 구간적 선형 보간의 비교 그래프

(70)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 70/73

6.5.4 3차 스플라인 함수의 예

6.5 스플라인 보간법

MATLAB

6-2

매트랩을 이용한 스플라인 함수

[표 6-3]의 자료점을 아래에 다시 제시하였다. 이를 이용하여 매트랩의 스플라인 함수 명령어(spline)를 실행하라.

Tip !

 매트랩의 spline 함수 이용

(71)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 71/73

6.5.4 3차 스플라인 함수의 예

6.5 스플라인 보간법

예제

6-11

3차 스플라인 함수

다음 표는 함수 에 대한 보간 자료점이다. 표를 이용하여 3차 스플라인 함수를 구하라.

Tip !

 식 (6.68)과 식 (6.65) 이용

(72)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 72/73

6.5.4 3차 스플라인 함수의 예

6.5 스플라인 보간법

MATLAB

6-3

매트랩 이용한 스플라인 보간 그래프

매트랩을 이용하여 [예제 6-11]의 함수 와 3차 스플라인 보간 그래프를 그려라.

Tip !

 그래프를 그리기 위한 매트랩 스크립트 파일은 부록을 참고

(73)

한빛미디어 Engineering Numerical Analysis Learning by MATLAB 73/73

Thank you!

수치

[그림 6-1] 실행 결과 : 보간법을 사용하여 근사시킨 코사인 함수
[그림 6-2] [그림 6-1]을 실행하기 위한 매트랩 스크립트 파일
[그림 6-5] 실행 결과 : [표 6-3]을 구간적 선형 보간법으로 그린 그래프
[그림 6-6] 실행 결과 : 차수가 6인 보간 다항식 그래프
+3

참조

관련 문서

이 연구문제의 해결방법은 2가지 즉 하나는 모집단 모두를 측정하여 평균을 구하는 방법, 다른 하나는 모집단을 대표할 학생을 뽑아서 평균을 구한

 정수값 x의 y승을 구하는 power 함수를 만들어 보라... 함수와 라이브러리

제트엔진을 사용하는 비행기의 경우 작용 반작용의 법칙을 이용하여 추력을 얻는다.. 제트엔진에서 고온 고압의 가스를 압축 후 비행기의

- 부직포를 아코디언 접기를 이용하여 만들 경우, 직사각형뿐만 아니라, 사다리 꼴이나 도넛 모양에서 아코디언 접기를 하면 보다 다양한 모양으로 가습기를 만들 수

장치의 운전에 앞서 장치에 부착된 각각의 계측기의 값과 통신으로 송신된 계측값의 오차 여부를 확인하기 위하여 표준 계측 장비에 의하여 오차를

장치의 운전에 앞서 장치에 부착된 각각의 계측기의 값과 통신으로 송신된 계측 값의 오차 여부를 확인하기 위하여 표준 계측 장비에 의하여 오차를

기술적 효율성을 명시적으로 고려하는 확률변경생산함수 모형을 이용하여 총요소생산성을 분석하기 위해서는 먼저 함수 형태의 가정이 필요하다.. 실제 산출량이

: 두 지점 사이의 최단경로(가장 작은 비용 또는 가장 짧은 거리나 시간에 도착할 수 있는 경로)를 찾는 문제.. -