主要内容

适合

拟合曲线或曲面到数据

描述

例子

fitobject=健康(xyfitType创建数据的拟合x而且y所指定的模型fitType

例子

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

例子

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

例子

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

例子

fitobjectgof] =适合(xyfitType返回结构的拟合优度统计信息gof

例子

fitobjectgof输出] =适合(xyfitType返回结构中的拟合算法信息输出

例子

全部折叠

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

负载人口普查;f =适合(cdate、流行,“poly2”
f =线性模型Poly2: f(x) = p1*x^2 + p2*x + p3系数(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流行)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表数据,拟合曲线。

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

加载一些数据,拟合一个2次多项式曲面x学位是3y.绘制拟合和数据。

负载因特网Sf = fit([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 + p21* y^3系数(95%置信限):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 (- 8.0001009, -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)
情节(科幻,x, y, z)

图中包含一个轴对象。坐标轴对象包含两个类型为surface、line的对象。

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

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

属性的输入,指定表中的变量适合函数,并绘制拟合图。

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

图中包含一个轴对象。坐标轴对象包含两个类型为surface、line的对象。

方法加载和绘制数据,创建适合选项和适合类型fittype而且fitoptions函数,然后创建并绘制拟合。

加载并绘制数据census.mat

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

图中包含一个轴对象。axis对象包含一个line类型的对象。

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

Fo = fitoptions(“方法”“NonlinearLeastSquares”...“低”(0, 0),...“上”(正无穷,max (cdate)),...曾经繁荣的[1]);Ft = fittype(“*(取向)^ n”“问题”“n”“选项”fo);

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

[curve2,gof2] = fit(cdate,pop,ft,“问题”,2)
一般模型:curve2(x) = a*(x-b)^n系数(95%置信限):a = 0.006092 (0.005743, 0.006441) b = 1789(1784, 1793)问题参数:n = 2
gof2 =带字段的结构:上证指数:246.1543 rsquare: 0.9980 dfe: 19 adjrsquare: 0.9979 rmse: 3.5994

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

[curve3,gof3] = fit(cdate,pop,ft,“问题”3)
curve3 =一般模型:curve3(x) = a*(x-b)^n系数(95%置信限):a = 1.359e-05 (1.245e-05, 1.474e-05) b = 1725(1718,1731)问题参数:n = 3
gof3 =带字段的结构:上证指数:232.0058 rsquare: 0.9981 dfe: 19 adjrsquare: 0.9980 rmse: 3.4944

将拟合结果与数据绘制。

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

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象表示数据,n=2, n=3。

加载一些数据,拟合并绘制一个三次多项式的中心和比例(正常化)和稳健的拟合选项。

负载人口普查;f =适合(cdate、流行,“poly3”“正常化”“上”“稳健”“Bisquare”
f =线性模型Poly3: f(x) = p1*x^3 + p2*x^2 + p3*x + p4其中x由平均值1890和std 62.05系数(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流行)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表数据,拟合曲线。

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

在MATLAB中定义一个函数®文件。

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

保存文件。

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

X = [0.81;0.91;0.13;0.91;0.63;0.098;...0.96; 0.96; 0.16; 0.97; 0.96);Y = [0.17;0.12;0.16;0.0035;0.37;0.082;...0.15; -0.046; 0.17; -0.091; -0.071);Ft = fittype('piecewiseLine(x, a, b, c, d, k)') f = fit(x, y, ft,曾经繁荣的, [1,0,1,0,0.5]) plot(f, x, y)

加载一些数据并拟合一个指定要排除的点的自定义方程。画出结果。

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

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

使用自定义方程和起始点创建两个拟合,并使用索引向量和表达式定义两个不同的排除点集。使用排除从你的拟合中去除异常值。

f1 = fit(x',y',gaussEqn,“开始”曾经繁荣,“排除”, [1 10 25])
f1 =一般模型:f1(x) = a*exp(-((x-b)/c)^2)+d系数(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 = fit(x',y',gaussEqn,“开始”曾经繁荣,“排除”, x < 800)
f2 =一般模型:f2(x) = a*exp(-((x-b)/c)^2)+d系数(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排除”

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

图(f2,x,y)'与排除的x < 800的数据点拟合'

图中包含一个轴对象。标题为Fit的axis对象被排除,以便x < 800包含2个类型为line的对象。这些对象代表数据,拟合曲线。

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

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

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

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

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

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

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

绘制两者的拟合并突出显示排除的数据。

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

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

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

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

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

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

图中包含一个轴对象。不包含数据点1,10和25的标题为Fit的轴对象包含3个类型为surface、line的对象。

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

图中包含一个轴对象。轴对象的标题拟合与数据点排除,使z > 1包含3个对象类型为曲面,线。

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

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

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表数据,拟合曲线。

绘制残差与x数据的关系().

Plot(曲线,月份,压力,“残差”)包含(“月”) ylabel (“残差”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示数据,零线。

中的数据输出结构绘制残差与y数据的关系(压力).

图(压力,输出,残差,“。”)包含(“压力”) ylabel (“残差”

图中包含一个轴对象。axis对象包含一个line类型的对象。

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

X = (0:0.2:5)';Y = 2*exp(-0.2*x) + 0.5*randn(size(x));F = fit(x,y,“exp1”);情节(f, x, y)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表数据,拟合曲线。

类中传递其他数据时,可以使用匿名函数适合函数。

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

数据= importdata(“OpioidHypnoticSynergy.txt”);丙泊酚= data.data(:,1);瑞芬太尼= data.data(:,2);Algometry = data.data(:,3);Emax = 1;

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

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

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

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

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

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

创建合适的类型。

Ft = fittype(" b * x ^ 2 + c * x +一个“);

方法获取系数名称和顺序coeffnames函数。

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

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

加载数据,创建拟合并设置起始点。

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

这将为系数分配初始值,如下所示:A = 1B = 3C = 5

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

选项= fitoptions(ft)
options =归一化:'off'排除:[]权重:[]方法:'非线性最小二乘'稳健:'off' StartPoint: [1x0 double]下:[1x0 double]上:[1x0 double]算法:'Trust-Region' DiffMinChange: 1.0000 -08 DiffMaxChange: 0.1000显示:'Notify' MaxFunEvals: 600 MaxIter: 400 TolFun: 1.0000 -06 TolX: 1.0000 -06
选项。StartPoint = [10 1 3];选项。较低的=[0 -Inf 0]; fit(month,pressure,ft,options)
ans =一般模型:ans(x) = b*x^2+c*x+a系数(95%置信界限):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而且size(Z) = [m,n]

数据类型:

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

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

图书馆模型名称

描述

“poly1”

线性多项式曲线

“poly11”

线性多项式曲面

“poly2”

二次多项式曲线

“linearinterp”

分段线性插值

“cubicinterp”

分段三次插值

“smoothingspline”

平滑样条(曲线)

“洛斯”

局部线性回归(曲面)

要拟合自定义模型,请使用MATLAB表达式、线性模型项的单元格数组、匿名函数或创建fittypefittype函数并使用它作为fitType论点。有关示例,请参见使用匿名函数拟合自定义模型.有关线性模型术语的示例,请参见fitType函数。

例子:“poly2”

类构造的算法选项fitoptions函数。这是为合适的选项指定名称-值对参数的替代方法。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

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

所有拟合方法的选项

全部折叠

选项将数据居中并缩放,指定为逗号分隔的对,由“正常化”而且“上”“关闭”

数据类型:字符

要从拟合中排除的点,指定为逗号分隔的对,由“排除”其中之一是:

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

  • 一个整数向量,索引你想要排除的点,例如,[1 10 25]

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

有关示例,请参见排除匹配点

数据类型:逻辑|

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

数据类型:

要分配给与问题相关的常量的值,指定为逗号分隔的对,由“问题”以及一个单元格数组,每个问题依赖常数有一个元素。详细信息请参见fittype

数据类型:细胞|

平滑的选项

全部折叠

平滑参数,指定为逗号分隔的对,由“SmoothingParam”和一个0到1之间的标量值。默认值取决于数据集。只有适合类型为时才可用smoothingspline

数据类型:

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

数据类型:

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

全部折叠

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

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

  • “Bisquare”指定bisquare weights方法。

可在配合类型时使用方法LinearLeastSquaresNonlinearLeastSquares

数据类型:字符

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

适用于方法LinearLeastSquaresNonlinearLeastSquares

数据类型:

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

适用于方法LinearLeastSquaresNonlinearLeastSquares

数据类型:逻辑

非线性最小二乘选项

全部折叠

系数的初始值,指定为逗号分隔的对,由曾经繁荣的还有一个向量。函数求向量值中系数的项的顺序coeffnames函数。有关示例,请参见找出设置起点和边界的系数顺序

对象没有传递起始点(空向量的默认值)适合函数中,一些库模型的起点是启发式确定的。对于有理模型和威布尔模型,以及所有自定义非线性模型,工具箱从区间(0,1)中均匀随机地为系数选择默认初始值。因此,使用相同数据和模型的多次拟合可能导致不同的拟合系数。要避免这种情况,请使用a指定系数的初始值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

描述算法的退出条件。阳性标志表示收敛,在公差范围内。零标志表示超过了函数计算或迭代的最大数量。负标志表示算法没有收敛到解决方案。

迭代

迭代次数

funcCount

函数求值的数量

firstorderopt

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

算法

拟合算法

版本历史

R2006a之前介绍

Baidu
map