fitobject = fit(x,y,fitType) example
Fit a Quadratic Curve Load some data, fit a quadratic curve to variables cdate and pop, and plot the fit and data.
load census census; ; f=fit(cdate,pop,'poly2' f=fit(cdate,pop, 'poly2') ) plot(f,cdate,pop) f = Linear model Poly2: f(x) = p1*x^2 + p2*x + p3 Coefficients Coefficien ts (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 (1.964e+04, , 2.262e+04)
fitobject = fit([x,y],z,fitType) example
Fit a Polynomial Surface Load some data and fit a polynomial surface of degree 2 in x and degree 3 in y. Plot the fit and data.
load franke
sf = fit([x, y],z, 'poly23') plot(sf,[x,y],z) 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)
fitobject = fit(x,y,fitType,fitOptions) example
Create Fit Options and Fit Type Before Fitting Load and plot the data, create fit options and fit type using the fittype and fitoptions functions, then create and plot the fit. Load and plot the data in census.mat .
load census plot(cdate,pop,'o')
Create a fit options object and a fit type for the custom nonlinear model coefficients and n is a problem-dependent parameter.
fo = fitoptions('Method','NonlinearLeastSquares' ,... 'Lower',[0,0],... 'Upper',[Inf,max(cdate)],... 'StartPoint' ,[1 1]); ft = fittype('a*(x-b)^n' ,'problem','n','options',fo); Fit the data using the fit options and a value of 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 = sse: 246.1543
, where a and b are
rsquare: dfe: adjrsquare: rmse:
0.9980 19 0.9979 3.5994
Fit the data using the fit options and a value of 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 = sse: rsquare: dfe: adjrsquare: rmse:
232.0058 0.9981 19 0.9980 3.4944
Plot the fit results with the d ata.
hold on plot(curve2,'m') plot(curve3,'c') legend('Data','n=2','n=3') hold off
fitobject = fit(x,y,fitType,Name,Value) example
[fitobject,gof] = fit(x,y,fitType) example
[fitobject,gof,output] = fit(x,y,fitType)
Library Model Types The following tables describe the library model types for curves and surfaces.
Use the links in the table for examples and detailed information on each library type.
If you want a quick reference of model names for input arguments to the fit function, see Model Names and Equations. Library Model Types for Curves
Description
distribution
Distribution models such as Weibull. See Weibull Distributions.
exponential
Exponential function and sum of two exponential functions. See Exponential Models.
fourier
Up to eight terms of Fourier series. See Fourier Series.
Library Model Types for Curves
Description
gaussian
Sum of up to eight Gaussian models. See Gaussian Models.
interpolant
Interpolating models, including linear, nearest neighbor, cubic spline, and shape-preserving cubic spline. See Nonparametric Fitting.
polynomial
Polynomial models, up to degree nine. See Polynomial Models.
power
Power function and sum of two power functions. See Power Series.
rational
Rational equation models, up to 5th degree/5th degree (i.e., up to degree 5 in both the numerator and the denominator). See Rational Polynomials.
sin
Sum of up to eight sin functions. See Sum of Sines Models.
spline
Cubic spline and smoothing spline models. See Nonparametric Fitting.
Library Model Types for Surfaces
Description
interpolant
Interpolating models, including linear, nearest neighbor, cubic spline, biharmonic, and thin-plate spline interpolation. See Interpolants.
lowess
Lowess smoothing models. See Lowess Smoothing.
polynomial
Polynomial models, up to degree five. See Polynomial Models.
Model Names and Equations To specify the model you want to fit, consult the following tables for a model name to use as an input argument to the fit function. For example, to specify a quadratic curve with model name " poly2" :
f = fit(x, y,
'poly2')
P o l y n o m i a l Mo d e l N a m e s a n d E q u a t i o n s Examples of Polynomial Model Names for Curves
Equations
poly1
Y = p1*x+p2
poly2
Y = p1*x^2+p2*x+p3
poly3
Y = p1*x^3+p2*x^2+...+p4
...etc., up to poly9
Y = p1*x^9+p2*x^8+...+p10
For polynomial surfaces, model names are 'polyij', where i is the degree in x and j is the degree in y . The maximum for both i and j is five. The degree of the polynomial is the maximum of i and j. The degree of x in each term will be less than or equal to i, and the degree of y in each term will be less than or equal to j. See the following table for some e xample model names and equations, of many potential examples.
Examples of Polynomial Model Names for Surfaces
Equations
poly21
Z = p00 + p10*x + p01*y + p20*x^2 + p11*x*y
poly13
Z = p00 + p10*x + p01*y + p11*x*y + p02*y^2 + p12*x*y^2 + p03*y^3
poly55
Z = p00 + p10*x + p01*y +...+ p14*x*y^4 + p05*y^5
Distribution Model Name and Equation Distribution Model Names
Equations
weibull
Y = a*b*x^(b-1)*exp(-a*x^b)
Exponential Model Names and Equations Exponential Model Names
Equations
exp1
Y = a*exp(b*x)
exp2
Y = a*exp(b*x)+c*exp(d*x)
F o u r i e r S e r i es M o d e l N a m e s a n d E q u a t i o n s Fourier Series Model Names
Equations
fourier1
Y = a0+a1*cos(x*p)+b1*sin(x*p)
fourier2
Y = a0+a1*cos(x*p)+b1*sin(x*p)... +a2*cos(2*x*p)+b2*sin(2*x*p)
fourier3
Y = a0+a1*cos(x*p)+b1*sin(x*p)... +a3*cos(3*x*p)+b3*sin(3*x*p)
...etc., up
Y = a0+a1*cos(x*p)+b1*sin(x*p)...
to fourier8
+a8*cos(8*x*p)+b8*sin(8*x*p)
Where p = 2*pi/(max(xdata)-min(xdata)). Gaussian Model Names and Equations Gaussian Model Names
Equations
Gaussian Model Names
Equations
gauss1
Y = a1*exp(-((x-b1)/c1)^2)
gauss2
Y = a1*exp(-((x-b1)/c1)^2)+a2*... exp(-((xb2)/c2)^2)
gauss3
Y = a1*exp(-((x-b1)/c1)^2)+... +a3*exp(-((xb3)/c3)^2)
...etc., up
Y = a1*exp(-((x-b1)/c1)^2) +... +a8*exp(-((x-
to gauss8
b8)/c8)^2)
Power Model Names and Equations Power Model Names
Equations
power1
Y = a*x^b
power2
Y = a*x^b+c
Rational Model Names and Equations
Rational models are polynomials over polynomials with the leading coefficient of the denominator set to 1. Model names are ratij, where i is the degree of the numerator and j is the degree of the denominator. The degrees go up to five for both the numerator and the denominator. Examples of Rational Model Names
Equations
rat02
Y = (p1)/(x^2+q1*x+q2)
rat21
Y = (p1*x^2+p2*x+p3)/(x+q1)
rat55
Y = (p1*x^5+...+p6)/(x^5+...+q5)
Sum of Sine Model Names and Equations Sum of Sine Model Names
Equations
sin1
Y = a1*sin(b1*x+c1)
sin2
Y = a1*sin(b1*x+c1)+a2*sin... (b2*x+c2)
sin3
Y = a1*sin(b1*x+c1)+... +a3*sin(b3*x+c3)
Sum of Sine Model Names
Equations
...etc., up to sin8
Y = a1*sin(b1*x+c1)+... +a8*sin(b8*x+c8)
Spline Model Names
Spline models are supported for curve fitting, not for surface fitting. Spline Model Names
Description
cubicspline
Cubic interpolating spline
smoothingspline
Smoothing spline
I n t er p o l a n t M o d e l N a m e s Type
Interpolant Model Names
Description
Curves and
linearinterp
Linear interpolation
nearestinterp
Nearest neighbor interpolation
cubicinterp
Cubic spline interpolation
pchipinterp
Shape-preserving piecewise cubic Hermite
Surfaces
Curves only
(pchip) interpolation
Surfaces only
biharmonicinterp
Biharmonic (MATLAB®griddata) interpolation
thinplateinterp
Thin-plate spline interpolation
Lowess Model Names
Lowess models are supported for surface fitting, not for curve fitting. Lowess Model Names
Description
lowess
Local linear regression
loess
Local quadratic regression
Fit Fit model or boundary model to new or existing data, and provide summary statistics
Syntax [statistics, model] = Fit(model, X, Y) [statistics, model] = Fit(model) B = mbcboundary.Fit(X,Type)
Description This is a method of mbcmodel.model and mbcboundary.Model. [statistics, model] = Fit(model, X, Y) This fits the model to the specified data. After you have called Fit specifying the data to use, then you can refit the model by calling [statistics, model] = Fit(model). The response object that the model came from defines which summary statistics are returned. To see these statistics, call SummaryStatistics. These statistics appear in the Summary Statistics pane of the Model Browser GUI. The statistics returned depend on the model type. For a linear model, the statistics are: 'Observations','Parameters','Box-Cox','PRESS RMSE','RMSE'. For a neural network model: 'Observations','Parameters', 'Box-Cox','RMSE', 'R^2'. B = mbcboundary.Fit(X,Type) creates and fits a boundary model to the data X, a double matrix. B is
an mbcboundary.Model object.
Examples statistics = Fit(knot) statistics = 27.0000 7.0000
1.0000
3.0184
2.6584