Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Curve Fitting Toolbox를 사용한 보간

보간은 알려진 데이터 점 사이에 있는 값을 추정하는 프로세스입니다.

보간에는 주어진 데이터 지점 xi에서 주어진 데이터 값 yi와 일치하는 함수 f 를 만드는 작업이 포함됩니다. 즉, 모든 i에 대해 f(xi) = yi입니다.

대부분의 보간 방법은 다음 공식의 고유한 함수로 보간 f를 만듭니다.

f(x)=jfj(x)aj,

여기서 함수 fj의 형식은 보간 방법에 따라 다릅니다.

스플라인 보간의 경우, fj는 매듭 시퀀스 t1 ≤ t2 ≤ ... ≤ tn + k에 대해 위수가 k인 n개 연속 B-스플라인 Bj(x) = B(x|tj,...,tj+k), j = 1:n입니다.

보간 방법 소개

Curve Fitting Toolbox™는 다음 표에 나와 있는 보간 방법을 지원합니다.

방법

설명

선형

선형 보간. 이 방법은 곡선의 경우 각 데이터 점 쌍 사이에, 곡면의 경우 각 3점 집합 사이에 각기 다른 선형 다항식을 피팅합니다.

최근접이웃

최근접이웃 보간. 이 방법은 보간되는 점의 값을 최근접 데이터 점의 값으로 설정합니다.

3차 스플라인

3차 스플라인 보간. 이 방법은 곡선의 경우 각 데이터 점 사이에, 곡면의 경우 3점 집합 사이에 각기 다른 3차 다항식을 피팅합니다.

형태 보존(PCHIP)

조각별 3차 에르미트 보간(PCHIP). 이 방법은 단조성과 데이터의 형태를 보존합니다(곡선에만 해당).

쌍조화(v4)

MATLAB® 4 griddata 방법. 이 방법은 외삽도 잘 되는 곡면을 피팅합니다(곡면에만 해당).

박판 스플라인

박판 스플라인 보간. 이 방법은 외삽도 잘 되는 매끄러운 곡면을 피팅합니다(곡면에만 해당).

보간 곡면 피팅의 경우 선형 방법과 최근접이웃 방법에는 MATLAB 함수 scatteredInterpolant를 사용하고 3차 스플라인 방법과 쌍조화 방법에는 MATLAB 함수 griddata를 사용합니다. 박판 스플라인 방법은 tpaps 함수를 사용합니다.

사용해야 하는 보간 방법은 피팅 대상 데이터의 특징, 곡선에 요구되는 평활도, 속도 고려 사항, 피팅 후 분석 요구 사항을 포함한 여러 요소에 따라 달라집니다. 선형 방법과 최근접이웃 방법은 모델을 효과적으로 피팅하며, 결과로 생성되는 곡선은 그다지 매끄럽지 않습니다. 3차 스플라인 방법, 형태 보존 방법, 쌍조화 방법은 모델 피팅에 시간이 더 걸리며, 결과로 생성되는 곡선은 매우 매끄럽습니다.

예를 들어 다음 플롯은 carbon12alpha.mat 샘플 데이터 세트의 핵반응 데이터에 대한 최근접이웃 보간 피팅과 형태 보존(PCHIP) 보간 피팅을 보여줍니다. 최근접이웃 보간은 형태 보존 보간만큼 매끄럽지 않습니다.

참고

적합도 통계량, 예측한계 및 가중치는 보간에 대해 정의되지 않습니다. 또한, 보간이 데이터 점을 통과하므로 피팅 잔차는 항상 0입니다(컴퓨터 정밀도 내에서).

쌍조화 보간 피팅은 방사형 기저 함수 보간으로 구성됩니다. Curve Fitting Toolbox에서 지원하는 기타 모든 보간은 조각별 다항식이며 데이터 점 사이에 정의된 다중 다항식으로 구성됩니다. 3차 스플라인 보간과 PCHIP 보간의 경우, 4개의 계수가 각 조각을 표현합니다. Curve Fitting Toolbox는 3차 다항식을 사용하여 4개의 계수를 계산합니다. 자세한 내용은 다음을 참조하십시오.

  • 3차 스플라인 보간을 위한 spline

  • 형태 보존(PCHIP) 보간과 3차 스플라인 보간의 비교 및 PCHIP 보간을 위한 pchip

  • 곡면 보간을 위한 scatteredInterpolant, griddata, tpaps

    데이터 점의 개수보다 하나 낮은 차수를 가진 단일 다항식 보간을 데이터에 피팅할 수 있습니다. 하지만 이와 같은 피팅의 동작은 데이터 점 사이에서 예측할 수 없습니다. 낮은 차수 세그먼트가 있는 조각별 다항식은 피팅 데이터 도메인에서 크게 벗어나지 않으므로 더 다양한 데이터 세트 분석에 유용합니다.

보간 피팅 선택

대화형 방식으로 보간 피팅 선택하기

MATLAB 명령줄에 curveFitter를 입력하여 곡선 피팅기 앱을 엽니다. 또는 탭의 수학, 통계학 및 최적화 그룹에서 곡선 피팅기를 클릭합니다.

곡선 피팅기 탭의 피팅 유형 섹션에서 보간 피팅을 선택합니다. 앱이 모든 데이터 점을 통과하는 보간 곡선 또는 곡면을 피팅합니다.

피팅 옵션 창에서 보간 방법 값을 지정할 수 있습니다.

Fit Options pane for interpolant fit

곡선 데이터의 경우, 보간 방법Linear, Nearest neighbor, Cubic Spline 또는 Shape-preserving (PCHIP)로 설정할 수 있습니다. 곡면 데이터의 경우, 보간 방법Nearest neighbor, Linear, Cubic Spline, Biharmonic (v4) 또는 Thin-plate spline으로 설정할 수 있습니다.

곡면의 경우 보간 피팅은 LinearNearest neighbor 방법에 대해 scatteredInterpolant 함수를 사용하고 Cubic SplineBiharmonic (v4) 방법에 대해 griddata 함수를 사용하며 Thin-plate spline 방법에 대해 tpaps 함수를 사용합니다. 매끄러운 곡면 보간과 양호한 외삽 속성이 모두 필요한 경우 Thin-plate spline 방법을 사용해 보십시오.

데이터 변수들의 크기가 서로 매우 다른 경우, 정규화 체크박스를 선택한 경우와 선택 해제한 경우의 피팅에서 차이를 확인해 보십시오. 입력값을 정규화하는 것은 조각별 Linear 보간 및 Cubic Spline 보간과 Nearest neighbor 곡면 보간 방법의 결과에 영향을 줄 수 있습니다.

fit 함수를 사용하여 선형 보간 모델 피팅하기

census 샘플 데이터 세트를 불러옵니다.

load census

변수 pop와 변수 cdate는 각각 모집단 크기와 인구 조사를 실시한 연도에 대한 데이터를 포함하고 있습니다.

fit 함수를 사용하여 보간 모델 이름에 설명된 보간 모델을 피팅할 수 있습니다. 이 경우, 'linearinterp' 옵션을 사용하여 선형 보간 모델을 피팅한 후 결과를 플로팅합니다.

f = fit(cdate,pop,'linearinterp');
plot(f,cdate,pop);

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent data, fitted curve.

선형 보간 모델 비교하기

carbon12alpha 샘플 데이터 세트를 불러옵니다. 'nearestinterp' 옵션 및 'pchip' 옵션을 사용하여 최근접이웃 보간 피팅과 PCHIP 보간 피팅을 둘 다 만듭니다.

load carbon12alpha
f1 = fit(angle,counts,'nearestinterp');
f2 = fit(angle,counts,'pchip');

동일한 Figure에서 이를 플로팅하여 곡선 f1과 곡선 f2를 비교합니다.

p1 = plot(f1,angle,counts);
xlim([min(angle),max(angle)])
hold on

p2 = plot(f2,'b');
hold off
legend([p1;p2],'Counts per Angle','Nearest Neighbor','PCHIP',...
    'Location','northwest')

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 3 objects of type line. One or more of the lines displays its values using only markers These objects represent Counts per Angle, Nearest Neighbor, PCHIP.

참고 항목

함수

관련 항목