728x90

1. 보간 법

2. 다항식에 의한 보간법

 

 

보간법의 정의

- 아직 측정하지 않거나 할수 없는 값을 구해야하는 경우 사용

-> 존재하지 않는 데이터를 만들어내는 방법

 

 

보간법에 사용되는 함수

- 다항식 : 2개이상의 단항식을 대수의 합으로 연결한 식

 

선형 보간법

- 보간 법 중가장 간단

- 주어진 두 점을 이은 직선의 방정식을 근사 함수로 사용하는 방법

 

선형 보간법 정의

- 함수 f(x)가 폐구간 [a, b]위에 정의되고, 이 구간에 있는 n개의 점 x1, x2, ..., xn에 대해 알면

- (xi, f(xi)) , (xi+1 , f(x+1)) 을 지나는 직선의 방정식

 

선형 보간법 사용법

1. 두개의 점이 주어진 경우

 - 두점을 지나는 함수 f(x)를 직전의 방정식으로 구함

2. p(x) = a0 + a1x가 직선의 방정식인 경우

 

- 데이터 점 들 사이 간격이 작을수록 더 좋은 근사값을 얻게 됨

 -> 간격이 감소함으로써 연속 함수를 직선으로 근사시키기가 좋기 때문

 

 

자연 로그 ln 2를 계산하기

- ln 1 = 0과 ln 6 = 1.7917595 사이에서 다음과 같이 계산

 

- ln 1 = 0 과 ln 4 = 1.3862944 사이에서(점 사이 간격이 작은 경우) 다음과 같이 계산

 

- ln 2의 참 값 : 0.69314718

 

Matlab에서 선형 보간법 사용하기

clc;
clear all;

x = [40 48 56 64 72 80];                  % x 데이터 입력
y = [1.33 1.67 2.08   2.36 2.71 3.19];    % y 데이터 입력
plot(x, y, 'o-')    % 그래프 그려줌
interp1(x, y, 52)   % x값이 52일 때 y에 해당하는 값을 구함

 

 

다항식을 찾기 위한 보간 방법

- 미정 계수법, 라그랑주 보간법, 뉴턴 보간법 등

 

 

다항식에 의한 보간법

- (n+1) 개의 점을 지나는 다항식은 n차 이하의 유일한 다항식으로 표시 가능

 

다항식을 찾아내는 방법

- 미정 계수법

- 라그랑주 보간법

- 뉴턴 보간법

 

 

미정 계수법

- 다항식을 찾아내는 가장 보편적인 방법

- 아래의 보간 다항식이 주어지면

- 위 식을 아래와 같은 행렬로 표현 가능

 

-> 가우스 소거법 등으로 계산하여 a0, a1, ... an을 구하면 됨

 

 

 

가우스 소거법

- n 개의 방정식과 n 개의 미지수로 이루어진 일반적인 선형 연립방정식 Ax = b의 해를 구하는 방법

- 그러나 계산시간이 많이 걸리며 오차가 많이 발생

-> 보간 다항식을 다르게 표현하여 계산 과정을 줄여야함

 

오차를 작게 하는 방법

- 라그랑주 보간법

- 뉴턴 보간법

 

 

 

 

라그랑주 보간법

- 여러 개의 점들을 지나는 곡선으로 연결하는 방법

1. 여러개의 점들이 주어짐

2. 이 점들을 지나는 다항식 구함

3. 이 다항식으로 주어진 점에 대한 보간 값을 구함

 

 

 

- 서로 다른 두점 (x0, y0), (x1, y1)을 지나는 다항식은 많으나 그 중 1차 다항식(직선) y = ax + b, 하나만 존재

- 세 점 (x0, y0), (x1, y1), (x2, y2)를 지나는 2차 다항식 y = ax^2 + bx + c도 단 하나만 존재

-> n + 1개의 점 (xi, yi)를 지나는 n차 다항식

 

- 다항식 g(x)에 (n+1)개의 점들을 대입하여 다음 n+1개의 연립 방정식을 구할 수 있음.

 

연립 방정식을 풀면

- 계수 a0, a1, ..., an을 구할 수 있음

- 다항식 g(x)를 구하여 다른값 x값에 대한 보간 값을 구하는데 사용 가능

=> 라그랑주 보간법은 연립방정식을 풀지 않고 다항식을 결정할 수 있어 정확성을 높일 수 있음

 

 

 

서로 다른 xi, i = 0, 1, ..., n에서 n + 1개의 점 (xi, f(xi))를 지나는 n차 보간 다항식은?

 

여기서 L_i(x)는 다음과 같음

 

 

두 점 (s,1), (t, 0)을 지나는 일차 다항식은 L(x) = (x-t)/(s-t)로 표현 가능

- L_0(x)는 (x0, 1), (x1, 0)을, L_1(x)는 (x0, 0), (x1, 1)을 지나는 1차 다항식은 다음과 같음

1차 라그랑주 다항식

 

두 점 (x0, y0), (x1, y1)을 지나는 1차 다항식

1차 라그랑주 보간 다항식

 

라그랑주 보간 다항식의 일반화

- P_n(x_i) = y_i 를 만족하므로 n + 1개의 점 (x_i, y_i)를 지나는 유일한 n차 다항식

 

 

 

라그랑주 보간법의 문제점

- 차수가 커지면 참값을 기대할 수 없을 정도로 큰 오차가 발생(runge 현상)

-> 차수가 낮은 경우에만 사용

 

 

뉴턴 보간법 필요성

- 라그랑주 보간법의 문제를 보완한 보간법

- 하나의 보간을 위해 필요한 계산량이 필요

- 데이터 수 증가시 바로 직전 결과를 사용하지 못함

-> 에러 계산이 용이하지 않은 문제점을 해결함

 

 

뉴턴 보간법

- 기존 데이터를 기초로 차분표 구성

- 차분표로 보간 공식을 구함

- 새로운 데이터가 추가되어도 그 차수를 늘리기 쉬움

- 라그랑주 보간 다항식과 형태만 다르나 같은 다항식

-> 한점이 추가되는 경우 : 라그랑주 보간 다항식은 처음부터 다시 구해야함. 뉴턴 보간법은 이전 보간 다항식을 유지하고 마지막 계수만 다시 추가

 

1차 다항식 y = ax + b의 경우

- y= a_0 + a_1(x-x_0)로 표현

 

서로 다른 (n+1)개의 점 x_0, ..., x_n에 대해 f(x)와 함수값이 같은 n차 이하 다항식 P_n(x)는 다음과 같음

 

점 (x_0, y_0), (x_1, y_1), (x_2,y_2)를 지나는 다항식은?

 

 

계수 a_0, a_1, a_2를 구하기 위해 P_2(x_0) = y_0, p_2(x_1) = y_1, p_2(x_2) = y_2 이므로 다항식에 대입하면

 

 

 

분할 차분 기호 [ ] 를 이용하여 P_n(x)를 다시 표현하면 ...

뉴턴의 분할 차분 보간 다항식

 

 

보간 다항식의 존재와 유일성 1

- 연속 함수 중 하나가 다항식이고, 이 다항식은 수치해석 거의 모든 분야에서 함수들의 근사값을 구하는데 사용

- 보간법 -> 근사함수로서 다항식을 사용 => 보간 다항식

 

보간 다항식의 존재와 유일성 2

- x0, x1, x2, ... , x0을 구간 [a,b]안에 있는 (n+1)개의 서로 다른 점이라 할 때,

- f(x)가 [a, b]위에서 정의된 함수이고, 각 점에서 함수 값을 알때,

- 주어진 (n+1)개의 점에서 함수 값과 같게되는 차수가 n보다 크지 않는 보간 다항식을 구할 때,

=> 이 조건들을 만족하는 보간 다항식 p(x)는 단 1개만 존재

 

 

다음 데이터가 주어질때 라그랑주 보간다항식을 이용하여 x가 2.5, 3.5일때 y 값을 구하라

 

 

function y = Lagrange(xd, yd, x)

nd = length(xd);
y = 0;
for i=1:nd
	p=1;
    for j=1:nd
    	if(i~=j)
        	p=p*(x-xd(j))/(xd(i)-xd(j));
        end
     end
     y = y+p*yd(i);
end

 

xd=[2 3 45 6];
yd=[4.8 9.4 19.2 36.6 58];

Lagrange(xd, yd, 2.5)

Lagrange(xd, yd, 3.5)

 

 

 

 

300x250

+ Recent posts