You can use the Curve Fitting
Toolbox™ library of models for data fitting with the fit
function. You use
library model names as input arguments in the fit
, fitoptions
, and
fittype
functions.
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 models such as Weibull. See Weibull Distributions. 
 Exponential function and sum of two exponential functions. See Exponential Models. 
 Up to eight terms of Fourier series. See Fourier Series. 
 Sum of up to eight Gaussian models. See Gaussian Models. 
 Interpolating models, including linear, nearest neighbor, cubic spline, and shapepreserving cubic spline. See Nonparametric Fitting. 
 Polynomial models, up to degree nine. See Polynomial Models. 
 Power function and sum of two power functions. See Power Series. 
 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. 
 Sum of up to eight sin functions. See Sum of Sines Models. 
 Cubic spline and smoothing spline models. See Nonparametric Fitting. 
Library Model Types for Surfaces  Description 

 Interpolating models, including linear, nearest neighbor, cubic spline, biharmonic, and thinplate spline interpolation. See Interpolation Methods. 
 Lowess smoothing models. See Lowess Smoothing. 
 Polynomial models, up to degree five. See Polynomial Models. 
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')
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
'poly
,
where ij
'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
example 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 Names  Equations 

weibull  Y =
a*b*x^(b1)*exp(a*x^b) 
Exponential Model Names  Equations 

exp1  Y = a*exp(b*x) 
exp2  Y =
a*exp(b*x)+c*exp(d*x) 
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 to fourier8
 Y =
a0+a1*cos(x*p)+b1*sin(x*p)+...+a8*cos(8*x*p)+b8*sin(8*x*p) 
Where p = 2*pi/(max(xdata)min(xdata))
.
Gaussian Model Names  Equations 

gauss1  Y =
a1*exp(((xb1)/c1)^2) 
gauss2  Y =
a1*exp(((xb1)/c1)^2)+a2*exp(((xb2)/c2)^2) 
gauss3  Y =
a1*exp(((xb1)/c1)^2)+...+a3*exp(((xb3)/c3)^2) 
...etc., up to gauss8

Y =
a1*exp(((xb1)/c1)^2)+...+a8*exp(((xb8)/c8)^2)

Power Model Names  Equations 

power1  Y = a*x^b 
power2  Y = a*x^b+c 
Rational models are polynomials over polynomials with the leading
coefficient of the denominator set to 1. Model names are
rat
ij
, 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  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) 
...etc., up to sin8
 Y =
a1*sin(b1*x+c1)+...+a8*sin(b8*x+c8) 
Spline models are supported for curve fitting, not for surface fitting.
Spline Model Names  Description 

cubicspline  Cubic interpolating spline 
smoothingspline  Smoothing spline 
Type  Interpolant Model Names  Description 

Curves and Surfaces  linearinterp  Linear interpolation 
nearestinterp  Nearest neighbor interpolation  
cubicinterp  Cubic spline interpolation  
Curves only  pchipinterp  Shapepreserving piecewise cubic Hermite (pchip) interpolation 
Surfaces only  biharmonicinterp  Biharmonic (MATLAB^{®}

thinplateinterp  Thinplate spline interpolation 
Lowess models are supported for surface fitting, not for curve fitting.
Lowess Model Names  Description 

lowess  Local linear regression 
loess  Local quadratic regression 