fit
곡선 또는 곡면을 데이터에 피팅
구문
설명
는 하나 이상의 fitobject
= fit(x
,y
,fitType
,Name=Value
)Name=Value
쌍 인수로 지정된 추가 옵션과 함께 라이브러리 모델 fitType
을 사용하여 데이터에 대한 피팅을 만듭니다. 지정된 라이브러리 모델에 대해 사용 가능한 속성 이름과 디폴트 값을 표시하려면 fitoptions
를 사용하십시오.
예제
2차 곡선 피팅하기
데이터를 불러와서 변수 cdate
와 pop
에 2차 곡선을 피팅하고 피팅 결과와 데이터를 플로팅합니다.
load census; f=fit(cdate,pop,'poly2')
f = Linear model Poly2: f(x) = p1*x^2 + p2*x + p3 Coefficients (with 95% confidence bounds): p1 = 0.006541 (0.006124, 0.006958) p2 = -23.51 (-25.09, -21.93) p3 = 2.113e+04 (1.964e+04, 2.262e+04)
plot(f,cdate,pop)
라이브러리 모델 이름 목록은 fitType
을 참조하십시오.
다항식 곡면 피팅하기
데이터를 불러와서 x
가 2차고 y
가 3차인 다항식 곡면을 피팅합니다. 피팅과 데이터를 플로팅합니다.
load franke sf = fit([x, y],z,'poly23')
Linear model Poly23: sf(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2 + p21*x^2*y + p12*x*y^2 + p03*y^3 Coefficients (with 95% confidence bounds): p00 = 1.118 (0.9149, 1.321) p10 = -0.0002941 (-0.000502, -8.623e-05) p01 = 1.533 (0.7032, 2.364) p20 = -1.966e-08 (-7.084e-08, 3.152e-08) p11 = 0.0003427 (-0.0001009, 0.0007863) p02 = -6.951 (-8.421, -5.481) p21 = 9.563e-08 (6.276e-09, 1.85e-07) p12 = -0.0004401 (-0.0007082, -0.0001721) p03 = 4.999 (4.082, 5.917)
plot(sf,[x,y],z)
MATLAB 테이블의 변수를 사용하여 곡면 피팅하기
franke
데이터를 불러와서 MATLAB® 테이블로 변환합니다.
load franke
T = table(x,y,z);
테이블의 변수를 fit
함수에 대한 입력값으로 지정하고 피팅 결과를 플로팅합니다.
f = fit([T.x, T.y],T.z,'linearinterp');
plot( f, [T.x, T.y], T.z )
피팅 전에 피팅 옵션과 피팅 유형 만들기
데이터를 불러와서 플로팅하고, fittype
함수와 fitoptions
함수를 사용하여 피팅 옵션과 피팅 유형을 만든 다음, 피팅을 만들고 플로팅합니다.
census.mat
의 데이터를 불러와서 플로팅합니다.
load census plot(cdate,pop,'o')
사용자 지정 비선형 모델 에 대한 fit options 객체와 피팅 유형을 만듭니다. 여기서 a와 b는 계수이고 n은 문제 종속적인 파라미터입니다.
fo = fitoptions('Method','NonlinearLeastSquares',... 'Lower',[0,0],... 'Upper',[Inf,max(cdate)],... 'StartPoint',[1 1]); ft = fittype('a*(x-b)^n','problem','n','options',fo);
피팅 옵션과 값 n = 2를 사용하여 데이터를 피팅합니다.
[curve2,gof2] = fit(cdate,pop,ft,'problem',2)
curve2 = General model: curve2(x) = a*(x-b)^n Coefficients (with 95% confidence bounds): a = 0.006092 (0.005743, 0.006441) b = 1789 (1784, 1793) Problem parameters: n = 2
gof2 = struct with fields:
sse: 246.1543
rsquare: 0.9980
dfe: 19
adjrsquare: 0.9979
rmse: 3.5994
피팅 옵션과 값 n = 3을 사용하여 데이터를 피팅합니다.
[curve3,gof3] = fit(cdate,pop,ft,'problem',3)
curve3 = General model: curve3(x) = a*(x-b)^n Coefficients (with 95% confidence bounds): a = 1.359e-05 (1.245e-05, 1.474e-05) b = 1725 (1718, 1731) Problem parameters: n = 3
gof3 = struct with fields:
sse: 232.0058
rsquare: 0.9981
dfe: 19
adjrsquare: 0.9980
rmse: 3.4944
피팅 결과를 데이터와 함께 플로팅합니다.
hold on plot(curve2,'m') plot(curve3,'c') legend('Data','n=2','n=3') hold off
다중 다항식 피팅하기
carbon12alpha
핵반응 샘플 데이터 세트를 불러옵니다.
load carbon12alpha
angle
은 방출 각도(단위: 라디안)로 구성된 벡터입니다. counts
는 angle
의 각도에 대응하는 원시 알파 입자 개수로 구성된 벡터입니다.
각도에 대해 플로팅된 개수의 산점도 플롯을 표시합니다.
scatter(angle,counts)
산점도 플롯은 각도가 0
과 4.5
사이에서 증가함에 따라 개수가 진동함을 보여줍니다. 다항식 모델을 데이터에 피팅하려면 fitType
입력 인수를 "poly#"
로 지정합니다. 여기서 #
는 1에서 9 사이의 정수입니다. 최대 9차까지 모델을 피팅할 수 있습니다. 자세한 내용은 곡선과 곡면 피팅 라이브러리 모델 목록 항목을 참조하십시오.
5차, 7차 및 9차 다항식을 핵반응 데이터에 피팅합니다. 각 피팅에 대한 적합도 통계량을 반환합니다.
[f5,gof5] = fit(angle,counts,"poly5"); [f7,gof7] = fit(angle,counts,"poly7"); [f9,gof9] = fit(angle,counts,"poly9");
linspace
함수를 사용하여 0
과 4.5
사이에 있는 쿼리 점으로 구성된 벡터를 생성합니다. 쿼리 점에서 다항식 피팅을 평가한 후 핵반응 데이터와 함께 이를 플로팅합니다.
xq = linspace(0,4.5,1000); figure hold on scatter(angle,counts,"k") plot(xq,f5(xq)) plot(xq,f7(xq)) plot(xq,f9(xq)) ylim([-100,550]) legend("original data","fifth-degree polynomial","seventh-degree polynomial","ninth-degree polynomial")
플롯은 9차 다항식이 가장 근접하게 데이터를 따라가고 있음을 보여줍니다.
struct2table
함수를 사용하여 각 피팅에 대한 적합도 통계량을 표시합니다.
gof = struct2table([gof5 gof7 gof9],RowNames=["f5" "f7" "f9"])
gof=3×5 table
sse rsquare dfe adjrsquare rmse
__________ _______ ___ __________ ______
f5 1.0901e+05 0.54614 18 0.42007 77.82
f7 32695 0.86387 16 0.80431 45.204
f9 3660.2 0.98476 14 0.97496 16.169
9차 다항식 피팅의 오차 제곱합(SSE)은 5차 다항식 피팅과 7차 다항식 피팅의 SSE보다 작습니다. 이 결과는 9차 다항식이 가장 근접하게 데이터를 따라가고 있음을 입증합니다.
정규화 및 로버스트 옵션을 지정하여 3차 다항식 피팅하기
데이터를 불러와서 정규화(Normalize
) 옵션 및 로버스트 피팅 옵션을 사용하여 3차 다항식을 피팅하고 플로팅합니다.
load census; f=fit(cdate,pop,'poly3','Normalize','on','Robust','Bisquare')
f = Linear model Poly3: f(x) = p1*x^3 + p2*x^2 + p3*x + p4 where x is normalized by mean 1890 and std 62.05 Coefficients (with 95% confidence bounds): p1 = -0.4619 (-1.895, 0.9707) p2 = 25.01 (23.79, 26.22) p3 = 77.03 (74.37, 79.7) p4 = 62.81 (61.26, 64.37)
plot(f,cdate,pop)
파일로 정의된 곡선 피팅하기
파일에 함수를 정의하고 이를 사용하여 피팅 유형을 만든 후 곡선을 피팅합니다.
함수를 MATLAB® 파일에 정의합니다.
function y = piecewiseLine(x,a,b,c,d,k) % PIECEWISELINE A line made of two pieces % that is not continuous. y = zeros(size(x)); % This example includes a for-loop and if statement % purely for example purposes. for i = 1:length(x) if x(i) < k, y(i) = a + b.* x(i); else y(i) = c + d.* x(i); end end end
파일을 저장합니다.
일부 데이터를 정의하고, 함수 piecewiseLine
을 지정하여 피팅 유형을 만들고, 피팅 유형 ft
를 사용하여 피팅을 만들고, 결과를 플로팅합니다.
x = [0.81;0.91;0.13;0.91;0.63;0.098;0.28;0.55;... 0.96;0.96;0.16;0.97;0.96]; y = [0.17;0.12;0.16;0.0035;0.37;0.082;0.34;0.56;... 0.15;-0.046;0.17;-0.091;-0.071]; ft = fittype( 'piecewiseLine( x, a, b, c, d, k )' ) f = fit( x, y, ft, 'StartPoint', [1, 0, 1, 0, 0.5] ) plot( f, x, y )
피팅에서 점 제외하기
데이터를 불러와서 제외할 점을 지정하여 사용자 지정 수식을 피팅합니다. 결과를 플로팅합니다.
데이터를 불러와서 사용자 지정 수식과 몇몇 시작점을 정의합니다.
[x, y] = titanium;
gaussEqn = 'a*exp(-((x-b)/c)^2)+d'
gaussEqn = 'a*exp(-((x-b)/c)^2)+d'
startPoints = [1.5 900 10 0.6]
startPoints = 1×4
1.5000 900.0000 10.0000 0.6000
사용자 지정 수식과 시작점을 사용하여 2개의 피팅을 만들고, 인덱스 벡터와 표현식을 사용하여 2개의 제외된 점 집합을 정의합니다. Exclude
를 사용하여 피팅에서 이상값을 제거합니다.
f1 = fit(x',y',gaussEqn,'Start', startPoints, 'Exclude', [1 10 25])
f1 = General model: f1(x) = a*exp(-((x-b)/c)^2)+d Coefficients (with 95% confidence bounds): a = 1.493 (1.432, 1.554) b = 897.4 (896.5, 898.3) c = 27.9 (26.55, 29.25) d = 0.6519 (0.6367, 0.6672)
f2 = fit(x',y',gaussEqn,'Start', startPoints, 'Exclude', x < 800)
f2 = General model: f2(x) = a*exp(-((x-b)/c)^2)+d Coefficients (with 95% confidence bounds): a = 1.494 (1.41, 1.578) b = 897.4 (896.2, 898.7) c = 28.15 (26.22, 30.09) d = 0.6466 (0.6169, 0.6764)
두 피팅을 모두 플로팅합니다.
plot(f1,x,y)
title('Fit with data points 1, 10, and 25 excluded')
figure
plot(f2,x,y)
title('Fit with data points excluded such that x < 800')
점을 제외하고 제외된 데이터를 표시하여 피팅 플로팅하기
제외된 점을 변수로 정의한 다음 이를 fit 함수에 대한 입력값으로 제공할 수 있습니다. 다음 단계에서는 위 예제의 피팅을 다시 생성하여 데이터와 피팅뿐만 아니라 제외된 점도 플로팅할 수 있도록 합니다.
데이터를 불러와서 사용자 지정 수식과 몇몇 시작점을 정의합니다.
[x, y] = titanium;
gaussEqn = 'a*exp(-((x-b)/c)^2)+d'
gaussEqn = 'a*exp(-((x-b)/c)^2)+d'
startPoints = [1.5 900 10 0.6]
startPoints = 1×4
1.5000 900.0000 10.0000 0.6000
인덱스 벡터와 표현식을 사용하여 제외할 점 집합 2개를 정의합니다.
exclude1 = [1 10 25]; exclude2 = x < 800;
사용자 지정 수식, 시작점, 2개의 제외된 점 집합을 사용하여 2개의 피팅을 만듭니다.
f1 = fit(x',y',gaussEqn,'Start', startPoints, 'Exclude', exclude1); f2 = fit(x',y',gaussEqn,'Start', startPoints, 'Exclude', exclude2);
두 피팅을 모두 플로팅하고 제외된 데이터를 강조 표시합니다.
plot(f1,x,y,exclude1)
title('Fit with data points 1, 10, and 25 excluded')
figure;
plot(f2,x,y,exclude2)
title('Fit with data points excluded such that x < 800')
제외된 점이 있는 곡면 피팅 예로, 곡면 데이터를 불러와서 제외된 데이터를 지정하여 피팅을 만들고 플로팅합니다.
load franke f1 = fit([x y],z,'poly23', 'Exclude', [1 10 25]); f2 = fit([x y],z,'poly23', 'Exclude', z > 1); figure plot(f1, [x y], z, 'Exclude', [1 10 25]); title('Fit with data points 1, 10, and 25 excluded')
figure plot(f2, [x y], z, 'Exclude', z > 1); title('Fit with data points excluded such that z > 1')
외삽 방법 비교하기
membrane
함수와 randn
함수를 사용하여 잡음 있는 데이터를 생성합니다.
n = 41; M = membrane(1,20)+0.02*randn(n); [X,Y] = meshgrid(1:n);
행렬 M
은 추가된 잡음이 있는 L 모양의 멤브레인에 대한 데이터를 포함하고 있습니다. 행렬 X
와 행렬 Y
는 M
의 대응하는 요소에 대한 행 인덱스 값과 열 인덱스 값을 각각 포함하고 있습니다.
데이터의 곡면 플롯을 표시합니다.
figure(1) surf(X,Y,M)
플롯은 주름이 있는 L 모양의 멤브레인을 보여줍니다. 멤브레인의 주름은 데이터의 잡음으로 인해 발생합니다.
선형 보간을 사용하여 주름이 있는 멤브레인을 통과하도록 두 곡면을 피팅합니다. 첫 번째 곡면의 경우, 선형 외삽 방법을 지정합니다. 두 번째 곡면의 경우, 외삽 방법을 최근접이웃으로 지정합니다.
flinextrap = fit([X(:),Y(:)],M(:),"linearinterp",ExtrapolationMethod="linear"); fnearextrap = fit([X(:),Y(:)],M(:),"linearinterp",ExtrapolationMethod="nearest");
X
데이터와 Y
데이터의 볼록 껍질 외부에 있는 쿼리 점에서 피팅을 평가하기 위해 meshgrid
함수를 사용하여 외삽 방법 간의 차이를 조사합니다.
[Xq,Yq] = meshgrid(-10:50); Zlin = flinextrap(Xq,Yq); Znear = fnearextrap(Xq,Yq);
평가된 피팅을 플로팅합니다.
figure(2) surf(Xq,Yq,Zlin) title("Linear Extrapolation") xlabel("X") ylabel("Y") zlabel("M")
figure(3) surf(Xq,Yq,Znear) title("Nearest Neighbor Extrapolation") xlabel("X") ylabel("Y") zlabel("M")
선형 외삽 방법은 볼록 껍질의 외부에서 스파이크를 생성합니다. 스파이크를 형성하는 평면 부분은 볼록 껍질의 테두리에 있는 점의 기울기를 따라갑니다. 최근접이웃 외삽 방법은 테두리에 있는 데이터를 사용하여 곡면을 각 방향으로 확장합니다. 이 외삽 방법은 테두리를 모방하는 파형을 생성합니다.
평활화 스플라인 곡선을 피팅하고 적합도 정보 반환하기
데이터를 불러와서 변수 month
와 pressure
를 통해 평활화 스플라인 곡선을 피팅한 후 적합도 정보와 출력 구조체를 반환합니다. 데이터에 대해 피팅과 잔차를 플로팅합니다.
load enso; [curve, goodness, output] = fit(month,pressure,'smoothingspline'); plot(curve,month,pressure); xlabel('Month'); ylabel('Pressure');
x 데이터(month
)에 대해 잔차를 플로팅합니다.
plot( curve, month, pressure, 'residuals' ) xlabel( 'Month' ) ylabel( 'Residuals' )
output
구조체에 있는 데이터를 사용하여 y 데이터(pressure
)에 대해 잔차를 플로팅합니다.
plot( pressure, output.residuals, '.' ) xlabel( 'Pressure' ) ylabel( 'Residuals' )
단일 항 지수 피팅하기
지수 추세를 갖는 데이터를 생성하고, 지수 모델 곡선 피팅 라이브러리에 있는 첫 번째 방정식(단일 항 지수)을 사용하여 데이터를 피팅합니다. 결과를 플로팅합니다.
x = (0:0.2:5)';
y = 2*exp(-0.2*x) + 0.5*randn(size(x));
f = fit(x,y,'exp1');
plot(f,x,y)
익명 함수를 사용하여 사용자 지정 모델 피팅하기
익명 함수를 사용하여 fit
함수로 다른 데이터를 보다 쉽게 전달할 수 있습니다.
익명 함수를 정의하기 전에 먼저 데이터를 불러오고 Emax
를 1
로 설정합니다.
data = importdata( 'OpioidHypnoticSynergy.txt' );
Propofol = data.data(:,1);
Remifentanil = data.data(:,2);
Algometry = data.data(:,3);
Emax = 1;
모델 방정식을 익명 함수로 정의합니다.
Effect = @(IC50A, IC50B, alpha, n, x, y) ... Emax*( x/IC50A + y/IC50B + alpha*( x/IC50A )... .* ( y/IC50B ) ).^n ./(( x/IC50A + y/IC50B + ... alpha*( x/IC50A ) .* ( y/IC50B ) ).^n + 1);
익명 함수 Effect
를 fit
함수에 대한 입력값으로 사용하고 결과를 플로팅합니다.
AlgometryEffect = fit( [Propofol, Remifentanil], Algometry, Effect, ... 'StartPoint', [2, 10, 1, 0.8], ... 'Lower', [-Inf, -Inf, -5, -Inf], ... 'Robust', 'LAR' ) plot( AlgometryEffect, [Propofol, Remifentanil], Algometry )
익명 함수와 피팅용 기타 사용자 지정 모델에 관한 다른 예제는 fittype
함수를 참조하십시오.
시작점과 한계를 설정하기 위해 계수 순서 찾기
Upper
, Lower
, StartPoint
속성의 경우 계수 요소의 순서를 찾아야 합니다.
피팅 유형을 만듭니다.
ft = fittype('b*x^2+c*x+a');
coeffnames
함수를 사용하여 계수의 이름과 순서를 가져옵니다.
coeffnames(ft)
ans = 3x1 cell
{'a'}
{'b'}
{'c'}
이것은 fittype
을 사용하여 ft
를 만들 때 사용한 표현식의 계수 순서와 다릅니다.
데이터를 불러오고 피팅을 만든 후 시작점을 설정합니다.
load enso fit(month,pressure,ft,'StartPoint',[1,3,5])
ans = General model: ans(x) = b*x^2+c*x+a Coefficients (with 95% confidence bounds): a = 10.94 (9.362, 12.52) b = 0.0001677 (-7.985e-05, 0.0004153) c = -0.0224 (-0.06559, 0.02079)
이렇게 하면 계수에 초기값이 a = 1
, b = 3
, c = 5
와 같이 할당됩니다.
또는 피팅 옵션을 가져와서 시작점과 하한을 설정하고 이 새로운 옵션을 사용하여 다시 피팅할 수도 있습니다.
options = fitoptions(ft)
options = nlsqoptions with properties: StartPoint: [] Lower: [] Upper: [] Algorithm: 'Trust-Region' DiffMinChange: 1.0000e-08 DiffMaxChange: 0.1000 Display: 'Notify' MaxFunEvals: 600 MaxIter: 400 TolFun: 1.0000e-06 TolX: 1.0000e-06 Robust: 'Off' Normalize: 'off' Exclude: [] Weights: [] Method: 'NonlinearLeastSquares'
options.StartPoint = [10 1 3]; options.Lower = [0 -Inf 0]; fit(month,pressure,ft,options)
ans = General model: ans(x) = b*x^2+c*x+a Coefficients (with 95% confidence bounds): a = 10.23 (9.448, 11.01) b = 4.335e-05 (-1.82e-05, 0.0001049) c = 5.523e-12 (fixed at bound)
입력 인수
x
— 피팅할 데이터
행렬
피팅할 데이터로, 하나(곡선 피팅) 또는 두 개(곡면 피팅)의 열을 갖는 행렬로 지정됩니다. tablename.varname
을 사용하여 MATLAB 테이블의 변수를 지정할 수 있습니다. Inf
또는 NaN
은 포함할 수 없습니다. 피팅에는 복소수 데이터의 실수부만 사용됩니다.
예: x
예: [x,y]
데이터형: double
y
— 피팅할 데이터
벡터
피팅할 데이터로, x
와 동일한 개수의 행을 갖는 열 벡터로 지정됩니다. tablename.varname
을 사용하여 MATLAB 테이블의 변수를 지정할 수 있습니다. Inf
또는 NaN
은 포함할 수 없습니다. 피팅에는 복소수 데이터의 실수부만 사용됩니다.
데이터가 열 벡터 형식이 아닌 경우 prepareCurveData
또는 prepareSurfaceData
를 사용하십시오.
데이터형: double
z
— 피팅할 데이터
벡터
피팅할 데이터로, x
와 동일한 개수의 행을 갖는 열 벡터로 지정됩니다. tablename.varname
을 사용하여 MATLAB 테이블의 변수를 지정할 수 있습니다. Inf
또는 NaN
은 포함할 수 없습니다. 피팅에는 복소수 데이터의 실수부만 사용됩니다.
데이터가 열 벡터 형식이 아닌 경우 prepareSurfaceData
를 사용하십시오. 행렬이 3개 있거나, 데이터가 length(X) = n, length(Y) = m
, size(Z) = [m,n]
인 그리드 벡터 형식을 갖는 경우를 예로 들 수 있습니다.
데이터형: double
fitType
— 피팅할 모델 유형
문자형 벡터 | string형 스칼라 | string형 배열 | 문자형 벡터로 구성된 셀형 배열 | 익명 함수 | fittype
피팅할 모델 유형으로, 라이브러리 모델 이름 또는 MATLAB 표현식을 나타내는 문자형 벡터나 string형 스칼라, 선형 모델 항으로 구성된 string형 배열이나 문자형 벡터(선형 모델 항으로 구성됨)로 구성된 셀형 배열, 익명 함수 또는 fittype
함수로 생성된 fittype
으로 지정됩니다. fittype
에 대해 유효한 임의의 첫 번째 입력값을 fit
의 입력값으로 사용할 수 있습니다.
라이브러리 모델 이름 목록은 모델 이름과 방정식 항목을 참조하십시오.
사용자 지정 모델을 피팅하려면 MATLAB 표현식, 선형 모델 항으로 구성된 셀형 배열 또는 익명 함수를 사용합니다. fittype
함수를 사용하여 fittype
을 만든 다음 이를 fitType
입력 인수의 값으로 사용할 수도 있습니다. 예제는 익명 함수를 사용하여 사용자 지정 모델 피팅하기 항목을 참조하십시오. 선형 모델 항을 사용하는 예제는 fittype
함수를 참조하십시오.
예: "poly2"
fitOptions
— 알고리즘 옵션
fitoptions
fitoptions
함수를 사용하여 생성된 알고리즘 옵션입니다. 피팅 옵션으로 이름-값 쌍 인수를 지정하는 방법 대신에 이 옵션을 사용할 수 있습니다.
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: Lower=[0,0],Upper=[Inf,max(x)],StartPoint=[1 1]
은 피팅 방법, 한계 및 시작점을 지정합니다.
Normalize
— 데이터 정규화 옵션
'off'
(디폴트 값) | 'on'
데이터 정규화 옵션으로, 'Normalize'
와 함께 'on'
또는 'off'
가 쉼표로 구분되어 지정됩니다.
데이터형: char
Exclude
— 피팅에서 제외할 점
표현식 | 인덱스 벡터 | 논리형 벡터 | 비어 있음
피팅에서 제외할 점으로, 'Exclude'
와 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.
논리형 벡터를 설명하는 표현식(예:
x > 10
).제외하려는 점을 참조하는 정수로 구성된 벡터(예:
[1 10 25]
).모든 데이터 점에 대한 논리형 벡터.
true
가 이상값을 나타내며excludedata
를 사용하여 만듭니다.
예제는 피팅에서 점 제외하기 항목을 참조하십시오.
데이터형: logical
| double
problem
— 문제 종속적인 상수에 할당할 값
셀형 배열 | double형
문제 종속적인 상수에 할당할 값으로, 'problem'
과 함께 문제 종속적인 상수 하나당 요소 하나를 갖는 셀형 배열이 쉼표로 구분되어 지정됩니다. 자세한 내용은 fittype
을 참조하십시오.
데이터형: cell
| double
SmoothingParam
— 평활화 파라미터
(0,1) 범위의 스칼라 값
평활화 파라미터로, 'SmoothingParam'
과 함께 0과 1 사이의 스칼라 값이 쉼표로 구분되어 지정됩니다. 디폴트 값은 데이터 세트에 따라 달라집니다. 피팅 유형이 smoothingspline
인 경우에만 사용할 수 있습니다.
데이터형: double
Span
— 국소 회귀에서 사용할 데이터 점의 비율
0.25 (디폴트 값) | (0,1) 범위의 스칼라 값
국소 회귀에서 사용할 데이터 점의 비율로, 'Span'
과 함께 0과 1 사이의 스칼라 값이 쉼표로 구분되어 지정됩니다. 피팅 유형이 lowess
또는 loess
인 경우에만 사용할 수 있습니다.
데이터형: double
ExtrapolationMethod
— 외삽 방법
"auto"
(디폴트 값) | "none"
| "linear"
| "nearest"
| "thinplate"
| "biharmonic"
| "pchip"
| "cubic"
보간 피팅을 위한 외삽 방법으로, 다음 값 중 하나로 지정됩니다.
값 | 설명 | 지원되는 피팅 |
---|---|---|
"auto" | 모든 보간 피팅 유형에 대한 디폴트 값. 피팅하는 중에 외삽 방법을 피팅 객체에 자동으로 할당하려면 | 모든 보간 피팅 유형 및 |
"none" | 외삽 없음. 피팅 데이터의 볼록 껍질 외부에 있는 쿼리 점은 |
|
"linear" | 경계 기울기에 따른 선형 외삽. |
|
"nearest" | 최근접이웃 외삽. 이 외삽 방법은 피팅 데이터의 볼록 껍질 경계에서 가장 근접한 점의 값으로 평가됩니다.
|
|
"thinplate" | 박판 스플라인 외삽. 이 외삽 방법은 피팅 데이터의 볼록 껍질 외부에서 박판 보간 스플라인을 확장합니다. 자세한 내용은 |
|
"biharmonic" | 쌍조화 스플라인 외삽. 이 외삽 방법은 피팅 데이터의 볼록 껍질 외부에서 쌍조화 보간 스플라인을 확장합니다. |
|
"pchip" | 조각별 3차 에르미트 보간 다항식(PCHIP) 외삽. 이 외삽 방법은 피팅 데이터의 볼록 껍질 외부에서 형태 보존 PCHIP를 확장합니다. 자세한 내용은 |
|
"cubic" | 3차 스플라인 외삽. 이 외삽 방법은 피팅 데이터의 볼록 껍질 외부에서 3차 보간 스플라인을 확장합니다.
|
|
데이터형: char
| string
Robust
— 로버스트 선형 최소제곱 피팅 방법
'off'
(디폴트 값) | LAR
| Bisquare
로버스트 선형 최소제곱 피팅 방법으로, 'Robust'
와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.
'LAR'
은 최소 절대 잔차법을 지정합니다.'Bisquare'
는 겹제곱 가중치 방법을 지정합니다.
피팅 유형 Method
가 LinearLeastSquares
또는 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: char
Lower
— 피팅할 계수의 하한
[ ] (디폴트 값) | 벡터
피팅할 계수의 하한으로, 'Lower'
와 함께 벡터가 쉼표로 구분되어 지정됩니다. 디폴트 값은 빈 벡터로, 이는 피팅에 하한이라는 제약 조건이 적용되지 않음을 나타냅니다. 한계가 지정된 경우 벡터 길이는 계수의 개수와 같아야 합니다. coeffnames
함수를 사용하여 벡터 값에서 계수 요소의 순서를 확인합니다. 예제는 시작점과 한계를 설정하기 위해 계수 순서 찾기 항목을 참조하십시오. 제약 조건이 적용되지 않은 개별 하한은 -Inf
로 지정할 수 있습니다.
Method
가 LinearLeastSquares
또는 NonlinearLeastSquares
인 경우에 사용할 수 있습니다.
데이터형: double
Upper
— 피팅할 계수의 상한
[ ] (디폴트 값) | 벡터
피팅할 계수의 상한으로, 'Upper'
와 함께 벡터가 쉼표로 구분되어 지정됩니다. 디폴트 값은 빈 벡터로, 이는 피팅에 상한이라는 제약 조건이 적용되지 않음을 나타냅니다. 한계가 지정된 경우 벡터 길이는 계수의 개수와 같아야 합니다. coeffnames
함수를 사용하여 벡터 값에서 계수 요소의 순서를 확인합니다. 예제는 시작점과 한계를 설정하기 위해 계수 순서 찾기 항목을 참조하십시오. 제약 조건이 적용되지 않은 개별 상한은 +Inf
로 지정할 수 있습니다.
Method
가 LinearLeastSquares
또는 NonlinearLeastSquares
인 경우에 사용할 수 있습니다.
데이터형: logical
StartPoint
— 계수의 초기값
[ ] (디폴트 값) | 벡터
계수의 초기값으로, 'StartPoint'
와 함께 벡터가 쉼표로 구분되어 지정됩니다. coeffnames
함수를 사용하여 벡터 값에서 계수 요소의 순서를 확인합니다. 예제는 시작점과 한계를 설정하기 위해 계수 순서 찾기 항목을 참조하십시오.
fit
함수로 전달된 시작점(빈 벡터의 디폴트 값)이 없는 경우, 일부 라이브러리 모델의 시작점은 발견적 방식으로 정해집니다. 유리 모델과 베이불 모델, 그리고 모든 사용자 지정 비선형 모델의 경우, 이 툴박스는 구간 (0,1)에서 계수에 대한 디폴트 초기값을 임의로 균일하게 선택합니다. 따라서 동일한 데이터와 모델을 사용해서 피팅을 여러 번 수행하면 피팅된 계수가 서로 다를 수 있습니다. 이를 방지하려면 fitoptions
객체를 사용하거나 StartPoint
값으로 벡터 값을 사용하여 계수의 초기값을 지정하십시오.
Method
가 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: double
Algorithm
— 피팅 절차에 사용할 알고리즘
'Trust-Region' (디폴트 값) | 'Levenberg-Marquardt'
피팅 절차에 사용할 알고리즘으로, 'Algorithm'
과 함께 'Levenberg-Marquardt'
또는 'Trust-Region'
이 쉼표로 구분되어 지정됩니다.
Method
가 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: char
DiffMaxChange
— 유한 차분 기울기에 대한 계수의 최대 변화량
0.1 (디폴트 값)
유한 차분 기울기에 대한 계수의 최대 변화량으로, 'DiffMaxChange'
와 함께 스칼라가 쉼표로 구분되어 지정됩니다.
Method
가 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: double
DiffMinChange
— 유한 차분 기울기에 대한 계수의 최소 변화량
10–8 (디폴트 값)
유한 차분 기울기에 대한 계수의 최소 변화량으로, 'DiffMinChange'
와 함께 스칼라가 쉼표로 구분되어 지정됩니다.
Method
가 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: double
Display
— 명령 창의 표시 옵션
'notify'
(디폴트 값) | 'final'
| 'iter'
| 'off'
명령 창의 표시 옵션으로, 'Display'
와 함께 다음 옵션 중 하나가 쉼표로 구분되어 지정됩니다.
'notify'
는 피팅이 수렴하지 않는 경우에만 출력값을 표시합니다.'final'
은 최종 출력값만 표시합니다.'iter'
은 각 반복마다 출력값을 표시합니다.'off'
는 출력값을 표시하지 않습니다.
Method
가 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: char
MaxFunEvals
— 모델의 허용되는 최대 실행 횟수
600
(디폴트 값)
모델의 허용되는 최대 실행 횟수로, 'MaxFunEvals'
와 함께 스칼라가 쉼표로 구분되어 지정됩니다.
Method
가 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: double
MaxIter
— 피팅에 대해 허용되는 최대 반복 횟수
400
(디폴트 값)
피팅에 대해 허용되는 최대 반복 횟수로, 'MaxIter'
과 함께 스칼라가 쉼표로 구분되어 지정됩니다.
Method
가 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: double
TolFun
— 모델 값에 대한 종료 허용오차
10–6 (디폴트 값)
모델 값에 대한 종료 허용오차로, 'TolFun'
과 함께 스칼라가 쉼표로 구분되어 지정됩니다.
Method
가 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: double
TolX
— 계수 값에 대한 종료 허용오차
10–6 (디폴트 값)
계수 값에 대한 종료 허용오차로, 'TolX'
와 함께 스칼라가 쉼표로 구분되어 지정됩니다.
Method
가 NonlinearLeastSquares
인 경우 사용할 수 있습니다.
데이터형: double
출력 인수
gof
— 적합도 통계량
gof
구조체
적합도 통계량으로, 다음 표에 나와 있는 필드를 포함하는 gof
구조체로 반환됩니다.
필드 | 값 |
---|---|
| 오차제곱합 |
| 결정계수 |
| 오차의 자유도 |
| 자유도 수정된 결정계수 |
| 평균 제곱 오차의 제곱근(표준 오차) |
output
— 피팅 알고리즘 정보
output
구조체
피팅 알고리즘 정보로, 피팅 알고리즘과 관련된 정보를 포함하는 output
구조체로 반환됩니다.
필드는 알고리즘에 따라 달라집니다. 예를 들어, 비선형 최소제곱 알고리즘의 output
구조체는 다음 표에 나와 있는 필드를 포함합니다.
필드 | 값 |
---|---|
| 관측값 개수(응답 변수 값) |
| 피팅할 알려지지 않은 파라미터(계수)의 개수 |
| 잔차로 구성된 벡터 |
| 야코비 행렬 |
| 알고리즘의 종료 조건을 설명합니다. 양의 플래그는 허용오차 내의 수렴을 나타냅니다. 0 플래그는 함수 실행이나 반복의 최대 횟수가 초과되었음을 나타냅니다. 음의 플래그는 알고리즘이 해로 수렴하지 않았음을 나타냅니다. |
| 반복 횟수 |
| 함수 실행 횟수 |
| 1차 최적성에 대한 측도(기울기 성분의 절대 최댓값) |
| 사용한 피팅 알고리즘 |
버전 내역
R2006a 이전에 개발됨R2023a: 곡면 보간 피팅을 위한 외삽 방법 지정하기
2023a부터 ExtrapolationMethod
이름-값 인수를 사용하여 보간 피팅을 위한 외삽 방법을 지정할 수 있습니다. 곡선 피팅의 경우 Curve Fitting Toolbox™는 이전 릴리스에서 사용 가능한 디폴트 외삽 방법만 지원합니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)