主要内容

适合

拟合曲线或曲面到数据

描述

例子

fitobject=健康(xyfitType创建适合的数据xy指定的模型fitType

例子

fitobject=适合([xy],zfitType创建一个适合矢量数据的曲面xy,z

例子

fitobject=健康(xyfitTypefitOptions属性指定的算法选项创建适合的数据fitOptions对象。

例子

fitobject=健康(xyfitType名称,值使用库模型创建适合的数据fitType附加选项由一个或多个指定名称,值对参数。使用fitoptions显示特定库模型的可用属性名和默认值。

例子

fitobjectgof) =健康(xyfitType返回结构中的拟合优度统计信息gof

例子

fitobjectgof输出) =健康(xyfitType返回结构中的拟合算法信息输出

例子

全部折叠

加载一些数据,用二次曲线拟合变量cdate流行,并绘制拟合图和数据。

负载人口普查;f =适合(cdate、流行,“poly2”
系数(有95%置信限):p1 = 0.006541 (0.006124, 0.006958) p2 = -23.51 (-25.09, -21.93) p3 = 2.113e+04 (1.964e+04, 2.262 2e+04)
情节(f cdate流行)

图中包含一个坐标轴。轴线包含2个线型对象。这些对象代表数据、拟合曲线。

有关库模型名称列表,请参见fitType

加载一些数据,并拟合一个2次的多项式曲面x并获得学士学位y.绘制匹配图和数据。

负载因特网科幻小说=适合(x, y, z,“poly23”
线性模型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^3P00 = 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 (-0.0001009, - 0.0007863) p11 = 0.0003427 (-0.0001009, - 0.0007863) p02 = -6.951 (-8.421, -5.481) p21 = 9.563e-08 (-0.0007082, -0.0001721) p12 = -0.0004401 (-0.0007082, -0.0001721) p03 = 4.999 (4.082, 5.917)
情节(科幻,x, y, z)

图中包含一个坐标轴。轴包含面、线两个对象。

加载因特网数据,并转换为MATLAB®表。

负载因特网T =表(x, y, z);

的输入指定表中的变量适合函数,并绘制匹配图。

f = ((T。x,T.y],T.z,“linearinterp”);情节(f, [T。x,T.y], T.z )

图中包含一个坐标轴。轴包含面、线两个对象。

控件加载并绘制数据,创建适合选项和适合类型fittypefitoptions函数,然后创建并绘制匹配图。

加载并绘制数据census.mat

负载人口普查情节(cdate、流行,“o”

图中包含一个坐标轴。轴包含一个线型对象。

为自定义非线性模型创建一个适合选项对象和适合类型 y 一个 x - b n ,在那里一个b系数和n是一个与问题相关的参数。

fo = fitoptions (“方法”“NonlinearLeastSquares”...“低”(0, 0),...“上”(正无穷,max (cdate)),...曾经繁荣的[1]);英国《金融时报》= fittype (“*(取向)^ n”“问题”“n”“选项”fo);

使用Fit选项和值来拟合数据n= 2。

[curve2, gof2] =适合(cdate、流行、英国《金融时报》,“问题”, 2)
系数(95%置信限):a = 0.006092 (0.005743, 0.006441) b = 1789(1784,1793)问题参数:n = 2
gof2 =结构体字段:Sse: 246.1543 rsquare: 0.9980 dfe: 19 adjrsquare: 0.9979 rmse: 3.5994

使用Fit选项和值来拟合数据n= 3。

[curve3, gof3] =适合(cdate、流行、英国《金融时报》,“问题”3)
系数(有95%置信限):a = 1.359e-05 (1.245e-05, 1.474e-05) b = 1725 (1718,1731
gof3 =结构体字段:adrsquare: 0.9980 rmse: 3.4944

将拟合结果与数据绘制出来。

持有情节(curve2“米”)情节(curve3“c”)传说(“数据”“n = 2”“n = 3”)举行

图中包含一个坐标轴。轴线包含3个线型对象。这些对象表示Data, n=2, n=3。

加载一些数据,拟合并绘制一个具有中心和比例的三次多项式(正常化)和强大的装配选项。

负载人口普查;f =适合(cdate、流行,“poly3”“正常化”“上”“稳健”“Bisquare”
系数(95%置信限):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)
情节(f cdate流行)

图中包含一个坐标轴。轴线包含2个线型对象。这些对象代表数据、拟合曲线。

在文件中定义一个函数,并使用它来创建适合类型和适合曲线。

在MATLAB中定义函数®文件。

函数y = piecewiseLine (x, a, b, c, d, k)PIECEWISELINE由两件组成的线那不是连续的。y = 0(大小(x));这个例子包括一个for循环和if语句%纯粹是为了举例。i = 1:长度(x)如果X (i) < k, y(i) = a + b.* X (i);其他的Y (i) = c + d. x(i);结束结束结束

保存文件。

定义一些数据,创建一个合适的类型来指定函数piecewiseLine,使用fit类型创建fit英国《金融时报》,并绘制结果。

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);英国《金融时报》= fittype ('piecewiseLine(x, a, b, c, d, k)') f = fit(x, y, ft,)曾经繁荣的, [1, 0, 1, 0, 0.5])

加载一些数据并匹配一个指定要排除的点的自定义方程。策划的结果。

加载数据并定义一个自定义方程和一些起始点。

[x, y] =钛;gaussEqn =(a * exp() -(取向/ c) ^ 2) + d '
gaussEqn = ' * exp(((取向)/ c) ^ 2) + d '
startPoints = [1.5 900 10 0.6]
曾经繁荣=1×41.5000 900.0000 10.0000 0.6000

使用自定义方程和起始点创建两个适合,并使用索引向量和表达式定义两组不同的被排除点。使用排除来消除你身体的异常值。

f1 =适合(x, y, gaussEqn,“开始”曾经繁荣,“排除”, [1 10 25])
系数(95%置信限):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 =适合(x, y, gaussEqn,“开始”曾经繁荣,“排除”, x < 800)
系数(95%置信限):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)

情节都适合。

情节(f1, x, y)标题('拟合数据点1,10和25排除'

图中包含一个坐标轴。标题为Fit with data point 1,10, and 25(不包括数据点1,10和25)的轴包含2个类型为line的对象。这些对象代表数据、拟合曲线。

图绘制(f2, x, y)标题('拟合的数据点排除,如x < 800'

图中包含一个坐标轴。标题为Fit的轴与数据点不匹配,x < 800包含2个类型为line的对象。这些对象代表数据、拟合曲线。

您可以将被排除的点定义为变量,然后将它们作为输入提供给fit函数。下面的步骤将重新创建前面示例中的拟合值,并允许您绘制排除的点以及数据和拟合值。

加载数据并定义一个自定义方程和一些起始点。

[x, y] =钛;gaussEqn =(a * exp() -(取向/ c) ^ 2) + d '
gaussEqn = ' * exp(((取向)/ c) ^ 2) + d '
startPoints = [1.5 900 10 0.6]
曾经繁荣=1×41.5000 900.0000 10.0000 0.6000

使用索引向量和表达式定义要排除的两组点。

excepde1 = [1 10 25];Exclude2 = x < 800;

创建两个适合使用自定义方程,起点,和两个不同的排除点。

f1 =适合(x, y, gaussEqn,“开始”曾经繁荣,“排除”, exclude1);f2 =适合(x, y, gaussEqn,“开始”曾经繁荣,“排除”, exclude2);

绘制符合和突出排除的数据。

情节(f1, x, y, exclude1)标题('拟合数据点1,10和25排除'

图中包含一个坐标轴。标题为Fit with data point 1,10, and 25(不包括数据点1,10和25)的轴包含3个类型为line的对象。这些对象代表数据、排除数据、拟合曲线。

图;情节(f2, x, y, exclude2)标题('拟合的数据点排除,如x < 800'

图中包含一个坐标轴。标题为Fit的轴不包含数据点,这样x < 800包含3个类型为line的对象。这些对象代表数据、排除数据、拟合曲线。

对于带有被排除点的曲面拟合示例,加载一些曲面数据并创建和绘制指定被排除数据的拟合。

负载因特网= [x y],z,“poly23”“排除”, [1 10 25]);f = [x y],z,“poly23”“排除”, z > 1);图(f1, [x y], z,“排除”, [1 10 25]);标题('拟合数据点1,10和25排除'

图中包含一个坐标轴。标题为“Fit with data point 1,10, and 25”的轴包含3个类型为surface, line的对象。

图(f2, [x y], z,“排除”, z > 1);标题('拟合排除的数据点z > 1'

图中包含一个坐标轴。带有标题的轴与数据点不匹配,使z> 1包含3个类型为surface, line的对象。

加载一些数据并通过变量拟合平滑样条曲线压力,并返回拟合优度信息和输出结构。根据数据绘制拟合和残差。

负载enso;[曲线,良度,产量]=适合(月,压力,“smoothingspline”);情节(压力曲线、月);包含(“月”);ylabel (“压力”);

图中包含一个坐标轴。轴线包含2个线型对象。这些对象代表数据、拟合曲线。

根据x-数据绘制残差().

Plot (curve, month, pressure,“残差”)包含(“月”) ylabel (“残差”

图中包含一个坐标轴。轴线包含2个线型对象。这些对象表示数据,零线。

使用的数据输出结构以根据y数据绘制残差(压力).

情节(压力、output.residuals、“。”)包含(“压力”) ylabel (“残差”

图中包含一个坐标轴。轴包含一个线型对象。

生成具有指数趋势的数据,然后使用指数模型曲线拟合库中的第一个方程(单项指数)拟合数据。策划的结果。

x =(0:0.2:5)”;Y = 2*exp(-0.2*x) + 0.5*randn(size(x))); / /f =适合(x, y,“exp1”);情节(f, x, y)

图中包含一个坐标轴。轴线包含2个线型对象。这些对象代表数据、拟合曲线。

可以使用匿名函数来更容易地将其他数据传递到适合函数。

加载数据和设置Emax1在定义匿名函数之前:

数据= importdata (“OpioidHypnoticSynergy.txt”);异丙酚= data.data (: 1);Remifentanil = data.data (:, 2);痛觉计= data.data (: 3);Emax = 1;

将模型方程定义为匿名函数:

效果= @(IC50A, IC50B, alpha, n, x, y)...*(x/IC50A + y/IC50B + α *(x/IC50A))....* (y/IC50B))。^n ./(x/IC50A + y/IC50B +...alpha*(x/IC50A). *(y/IC50B))。^ n + 1);

使用匿名函数效果作为输入适合函数,并绘制结果:

alometryeeffect = fit([异丙酚,瑞芬太尼],alometryeeffect,...曾经繁荣的, [2, 10, 1,0.8],...“低”, [-Inf, -Inf, -Inf],...“稳健”“守护神”) plot(algometryeeffect,[异丙酚,瑞芬太尼],Algometry)

有关使用匿名函数和其他自定义模型的更多示例,请参阅fittype函数。

的属性较低的,曾经繁荣,你需要找到系数项的顺序。

创建适合的类型。

英国《金融时报》= fittype (" b * x ^ 2 + c * x +一个“);

得到系数名称和顺序使用coeffnames函数。

coeffnames(英尺)
ans =3 x1细胞{a} {b} {' c '}

注意,这与用于创建的表达式中系数的顺序不同英国《金融时报》fittype

加载数据,创建一个适合和设置起点。

负载ensofit(月,压力,英国《金融时报》,曾经繁荣的, 1、3、5)
系数(95%置信限):a = 10.94 (9.362, 12.52) b = 0.0001677 (-7.985e-05, 0.0004153) c = -0.0224 (-0.06559, 0.02079)

这给系数赋了如下的初值:一个= 1b = 3c = 5

或者,您可以获得适合选项并设置起点和下界,然后使用新选项重新设置。

选择= fitoptions(英尺)
options = Normalize: 'off' Exclude: [] Weights: [] Method: 'NonlinearLeastSquares' Robust: 'off' StartPoint: [1x0 double] Lower: [1x0 double] Upper: [1x0 double] Algorithm: ' confidence - region ' DiffMinChange: 1.0000e-08 DiffMaxChange: 0.1000 Display: 'Notify' MaxFunEvals: 600 MaxIter: 400 TolFun: 1.0000e-06 TolX: 1.0000e-06
选项。StartPoint = [10 1 3];选项。较低的=[0 -Inf 0]; fit(month,pressure,ft,options)
a = 10.23 (9.448, 11.01) b = 4.335e-05 (-1.82e-05, 0.0001049) c = 5.523e-12(固定在边界)

输入参数

全部折叠

要拟合的数据,指定为具有一列(曲线拟合)或两列(曲面拟合)列的矩阵。您可以使用MATLAB表中指定变量tablename.varname.不能包含.在拟合中只使用复杂数据的实部。

例子:x

例子:(x, y)

数据类型:

要匹配的数据,指定为行数相同的列向量x.您可以使用MATLAB表中指定一个变量tablename.varname.不能包含.在拟合中只使用复杂数据的实部。

使用prepareCurveDataprepareSurfaceData如果数据不是列向量形式。

数据类型:

要匹配的数据,指定为行数相同的列向量x.您可以使用MATLAB表中指定一个变量tablename.varname.不能包含.在拟合中只使用复杂数据的实部。

使用prepareSurfaceData如果数据不是列向量形式。例如,如果你有3个矩阵,或者你的数据是网格向量形式的length(X) = n, length(Y) = m大小(Z) = (m, n)

数据类型:

要适合的模型类型,指定为库模型名称字符向量、MATLAB表达式、线性模型术语的单元格数组、匿名函数或fittype构造与fittype函数。可以使用的任何有效的第一个输入fittype作为输入适合

有关库模型名称列表,请参见模型名称和方程.该表显示了一些常见的例子。

库模型名称

描述

“poly1”

线性多项式曲线

“poly11”

线性多项式表面

“poly2”

二次多项式曲线

“linearinterp”

分段线性插值

“cubicinterp”

分段立方插值

“smoothingspline”

平滑样条(曲线)

“洛斯”

局部线性回归(面)

要适应自定义模型,可以使用MATLAB表达式、线性模型项的单元阵列、匿名函数或创建fittypefittype函数,并使用它作为fitType论点。例如,请参见使用匿名函数适应自定义模型.有关线性模型术语的例子,请参阅fitType函数。

例子:“poly2”

的算法选项fitoptions函数。这是fit选项指定名称-值对参数的一种替代方法。

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“低”,(0,0),“上层”,正无穷,max (x),“曾经繁荣”,[1]指定拟合方法、边界和起始点。
所有拟合方法的选项

全部折叠

选择居中和缩放数据,指定为逗号分隔对组成“正常化”“上”“关闭”

数据类型:字符

要从匹配中排除的点,指定为由“排除”其中一个:

  • 描述逻辑向量的表达式,例如:x > 10

  • 一个整数向量,索引要排除的点,例如:(1 10 25)

  • 所有数据点的逻辑向量真正的表示一个异常值,由excludedata

例如,请参见从Fit中排除点

数据类型:逻辑|

适合的权值,指定为逗号分隔的对,由“重量”和响应数据大小相同的向量y(曲线)或z(表面)。

数据类型:

要赋给与问题相关的常数的值,指定为由“问题”和一个单元数组,每个元素与问题相关的常数。有关详细信息,请参见fittype

数据类型:细胞|

平滑的选项

全部折叠

平滑参数,指定为逗号分隔对组成“SmoothingParam”和0到1之间的标量值。默认值取决于数据集。仅适合类型为smoothingspline

数据类型:

在局部回归中使用的数据点的比例,指定为由逗号分隔的对组成“跨越”和0到1之间的标量值。仅适合类型为洛斯黄土

数据类型:

线性和非线性最小二乘选项

全部折叠

鲁棒线性最小二乘拟合方法,指定为逗号分隔对组成“稳健”其中一个价值观是:

  • “守护神”指定最小绝对残差法。

  • “Bisquare”指定平方权值方法。

可选择适合的类型方法LinearLeastSquaresNonlinearLeastSquares

数据类型:字符

拟合系数的下界,指定为逗号分隔对,由“低”和一个向量。默认值是一个空向量,表示适合不受下界的约束。如果指定了边界,则向量长度必须等于系数的数目。的方法求向量值中系数项的顺序coeffnames函数。例如,请参见找到系数顺序设置起点和界限.单个无约束下界可以用

当可用方法LinearLeastSquaresNonlinearLeastSquares

数据类型:

拟合系数的上界,指定为逗号分隔对,由“上”和一个向量。默认值是一个空向量,表示适合不受上界的约束。如果指定了边界,则向量长度必须等于系数的数目。的方法求向量值中系数项的顺序coeffnames函数。例如,请参见找到系数顺序设置起点和界限.单个无约束上界可以用+正

当可用方法LinearLeastSquaresNonlinearLeastSquares

数据类型:逻辑

非线性最小二乘方法

全部折叠

系数的初始值,指定为逗号分隔对,由曾经繁荣的和一个向量。的方法求向量值中系数项的顺序coeffnames函数。例如,请参见找到系数顺序设置起点和界限

如果没有起始点(空向量的默认值),则传递给适合函数,一些库模型的起始点是启发式地确定的。对于理性和威布尔模型,以及所有自定义非线性模型,工具箱从区间(0,1)中均匀随机地选择系数的默认初始值。因此,使用相同的数据和模型进行多次拟合,可能会得到不同的拟合系数。为了避免这种情况,为系数指定初始值fitoptions对象的向量值或曾经繁荣价值。

当可用方法NonlinearLeastSquares

数据类型:

算法用于拟合的过程,指定为逗号分隔对组成“算法”,要么“Levenberg-Marquardt”“信赖域”

当可用方法NonlinearLeastSquares

数据类型:字符

有限差分梯度系数的最大变化,指定为逗号分隔对,由“DiffMaxChange”和一个标量。

当可用方法NonlinearLeastSquares

数据类型:

有限差分梯度系数变化的最小值,指定为逗号分隔对,由“DiffMinChange”和一个标量。

当可用方法NonlinearLeastSquares

数据类型:

命令窗口中的显示选项,指定为逗号分隔的对,由“显示”其中一个选择是:

  • “通知”仅当拟合不收敛时显示输出。

  • “最后一次”只显示最终输出。

  • “通路”显示每次迭代的输出。

  • “关闭”显示没有输出。

当可用方法NonlinearLeastSquares

数据类型:字符

模型允许的最大计算次数,指定为由逗号分隔的对组成“MaxFunEvals”和一个标量。

当可用方法NonlinearLeastSquares

数据类型:

允许的最大迭代次数,指定为逗号分隔的对,由“麦克斯特”和一个标量。

当可用方法NonlinearLeastSquares

数据类型:

对模型的终止公差值,指定为逗号分隔对组成“TolFun”和一个标量。

当可用方法NonlinearLeastSquares

数据类型:

终止公差上的系数值,指定为逗号分隔对组成“TolX”和一个标量。

当可用方法NonlinearLeastSquares

数据类型:

输出参数

全部折叠

匹配结果,返回为cfit(曲线)sfit(表面)对象。看到合适的后处理用于绘图、评估、计算置信区间、积分、微分或修改适合对象的函数。

适合度统计,返回为gof结构,包括该表中的字段。

价值

上交所

误差平方和

rsquare

r平方(决定系数)

教育部

误差中的自由度

adjrsquare

自由度调整系数的确定

rmse

均方根误差(标准误差)

拟合算法信息,返回为输出结构,其中包含与拟合算法相关的信息。

字段取决于算法。例如,输出非线性最小二乘算法的结构包括表中所示的字段。

价值

numobs

观察次数(响应值)

numparam

需要拟合的未知参数(系数)的个数

残差

向量的残差

雅可比矩阵

雅可比矩阵

exitflag

描述算法的退出条件。正旗表示收敛,在公差范围内。0标志表示超过了函数求值或迭代的最大次数。负标志表明算法没有收敛到一个解。

迭代

的迭代次数

funcCount

函数计算次数

firstorderopt

一阶最优性度量(梯度分量的绝对最大值)

算法

拟合的算法使用

之前介绍过的R2006a