拟合曲线或曲面到数据
加载一些数据,用二次曲线拟合变量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流行)
有关库模型名称列表,请参见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 )
控件加载并绘制数据,创建适合选项和适合类型fittype
和fitoptions
函数,然后创建并绘制匹配图。
加载并绘制数据census.mat
.
负载人口普查情节(cdate、流行,“o”)
为自定义非线性模型创建一个适合选项对象和适合类型 ,在那里一个和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”)举行从
加载一些数据,拟合并绘制一个具有中心和比例的三次多项式(正常化
)和强大的装配选项。
负载人口普查;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流行)
在文件中定义一个函数,并使用它来创建适合类型和适合曲线。
在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排除')
图绘制(f2, x, y)标题('拟合的数据点排除,如x < 800')
您可以将被排除的点定义为变量,然后将它们作为输入提供给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排除')
图;情节(f2, x, y, exclude2)标题('拟合的数据点排除,如x < 800')
对于带有被排除点的曲面拟合示例,加载一些曲面数据并创建和绘制指定被排除数据的拟合。
负载因特网= [x y],z,“poly23”,“排除”, [1 10 25]);f = [x y],z,“poly23”,“排除”, z > 1);图(f1, [x y], z,“排除”, [1 10 25]);标题('拟合数据点1,10和25排除')
图(f2, [x y], z,“排除”, z > 1);标题('拟合排除的数据点z > 1')
加载一些数据并通过变量拟合平滑样条曲线月
和压力
,并返回拟合优度信息和输出结构。根据数据绘制拟合和残差。
负载enso;[曲线,良度,产量]=适合(月,压力,“smoothingspline”);情节(压力曲线、月);包含(“月”);ylabel (“压力”);
根据x-数据绘制残差(月
).
Plot (curve, month, pressure,“残差”)包含(“月”) ylabel (“残差”)
使用的数据输出
结构以根据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)
可以使用匿名函数来更容易地将其他数据传递到适合
函数。
加载数据和设置Emax
来1
在定义匿名函数之前:
数据= 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)
这给系数赋了如下的初值:一个= 1
,b = 3
,c = 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(固定在边界)
x
- - - - - -数据以适应要拟合的数据,指定为具有一列(曲线拟合)或两列(曲面拟合)列的矩阵。您可以使用MATLAB表中指定变量tablename.varname
.不能包含正
或南
.在拟合中只使用复杂数据的实部。
例子:x
例子:(x, y)
数据类型:双
y
- - - - - -数据以适应要匹配的数据,指定为行数相同的列向量x
.您可以使用MATLAB表中指定一个变量tablename.varname
.不能包含正
或南
.在拟合中只使用复杂数据的实部。
使用prepareCurveData
或prepareSurfaceData
如果数据不是列向量形式。
数据类型:双
z
- - - - - -数据以适应要匹配的数据,指定为行数相同的列向量x
.您可以使用MATLAB表中指定一个变量tablename.varname
.不能包含正
或南
.在拟合中只使用复杂数据的实部。
使用prepareSurfaceData
如果数据不是列向量形式。例如,如果你有3个矩阵,或者你的数据是网格向量形式的length(X) = n, length(Y) = m
和大小(Z) = (m, n)
.
数据类型:双
fitType
- - - - - -拟合模型类型fittype
要适合的模型类型,指定为库模型名称字符向量、MATLAB表达式、线性模型术语的单元格数组、匿名函数或fittype
构造与fittype
函数。可以使用的任何有效的第一个输入fittype
作为输入适合
.
有关库模型名称列表,请参见模型名称和方程.该表显示了一些常见的例子。
库模型名称 |
描述 |
---|---|
|
线性多项式曲线 |
|
线性多项式表面 |
|
二次多项式曲线 |
|
分段线性插值 |
|
分段立方插值 |
|
平滑样条(曲线) |
|
局部线性回归(面) |
要适应自定义模型,可以使用MATLAB表达式、线性模型项的单元阵列、匿名函数或创建fittype
与fittype
函数,并使用它作为fitType
论点。例如,请参见使用匿名函数适应自定义模型.有关线性模型术语的例子,请参阅fitType
函数。
例子:“poly2”
fitOptions
- - - - - -算法的选择fitoptions
的算法选项fitoptions
函数。这是fit选项指定名称-值对参数的一种替代方法。
指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
“低”,(0,0),“上层”,正无穷,max (x),“曾经繁荣”,[1]
指定拟合方法、边界和起始点。
“正常化”
- - - - - -选择中心和规模的数据“关闭”
(默认)|“上”
选择居中和缩放数据,指定为逗号分隔对组成“正常化”
和“上”
或“关闭”
.
数据类型:字符
“排除”
- - - - - -不适合的点要从匹配中排除的点,指定为由“排除”
其中一个:
描述逻辑向量的表达式,例如:x > 10
.
一个整数向量,索引要排除的点,例如:(1 10 25)
.
所有数据点的逻辑向量真正的
表示一个异常值,由excludedata
.
例如,请参见从Fit中排除点.
数据类型:逻辑
|双
“问题”
- - - - - -赋值给与问题相关的常数要赋给与问题相关的常数的值,指定为由“问题”
和一个单元数组,每个元素与问题相关的常数。有关详细信息,请参见fittype
.
数据类型:细胞
|双
“SmoothingParam”
- - - - - -平滑参数平滑参数,指定为逗号分隔对组成“SmoothingParam”
和0到1之间的标量值。默认值取决于数据集。仅适合类型为smoothingspline
.
数据类型:双
“跨越”
- - - - - -用于局部回归的数据点的比例在局部回归中使用的数据点的比例,指定为由逗号分隔的对组成“跨越”
和0到1之间的标量值。仅适合类型为洛斯
或黄土
.
数据类型:双
“稳健”
- - - - - -稳健线性最小二乘拟合方法“关闭”
(默认)|守护神
|Bisquare
鲁棒线性最小二乘拟合方法,指定为逗号分隔对组成“稳健”
其中一个价值观是:
“守护神”
指定最小绝对残差法。
“Bisquare”
指定平方权值方法。
可选择适合的类型方法
是LinearLeastSquares
或NonlinearLeastSquares
.
数据类型:字符
“低”
- - - - - -拟合系数的下界拟合系数的下界,指定为逗号分隔对,由“低”
和一个向量。默认值是一个空向量,表示适合不受下界的约束。如果指定了边界,则向量长度必须等于系数的数目。的方法求向量值中系数项的顺序coeffnames
函数。例如,请参见找到系数顺序设置起点和界限.单个无约束下界可以用负
.
当可用方法
是LinearLeastSquares
或NonlinearLeastSquares
.
数据类型:双
“上”
- - - - - -拟合系数的上界拟合系数的上界,指定为逗号分隔对,由“上”
和一个向量。默认值是一个空向量,表示适合不受上界的约束。如果指定了边界,则向量长度必须等于系数的数目。的方法求向量值中系数项的顺序coeffnames
函数。例如,请参见找到系数顺序设置起点和界限.单个无约束上界可以用+正
.
当可用方法
是LinearLeastSquares
或NonlinearLeastSquares
.
数据类型:逻辑
曾经繁荣的
- - - - - -系数的初值系数的初始值,指定为逗号分隔对,由曾经繁荣的
和一个向量。的方法求向量值中系数项的顺序coeffnames
函数。例如,请参见找到系数顺序设置起点和界限.
如果没有起始点(空向量的默认值),则传递给适合
函数,一些库模型的起始点是启发式地确定的。对于理性和威布尔模型,以及所有自定义非线性模型,工具箱从区间(0,1)中均匀随机地选择系数的默认初始值。因此,使用相同的数据和模型进行多次拟合,可能会得到不同的拟合系数。为了避免这种情况,为系数指定初始值fitoptions
对象的向量值或曾经繁荣
价值。
当可用方法
是NonlinearLeastSquares
.
数据类型:双
“算法”
- - - - - -算法用于拟合程序算法用于拟合的过程,指定为逗号分隔对组成“算法”
,要么“Levenberg-Marquardt”
或“信赖域”
.
当可用方法
是NonlinearLeastSquares
.
数据类型:字符
“DiffMaxChange”
- - - - - -有限差分梯度系数的最大变化有限差分梯度系数的最大变化,指定为逗号分隔对,由“DiffMaxChange”
和一个标量。
当可用方法
是NonlinearLeastSquares
.
数据类型:双
“DiffMinChange”
- - - - - -有限差分梯度系数变化的最小值有限差分梯度系数变化的最小值,指定为逗号分隔对,由“DiffMinChange”
和一个标量。
当可用方法
是NonlinearLeastSquares
.
数据类型:双
“显示”
- - - - - -命令窗口中的显示选项“通知”
(默认)|“最后一次”
|“通路”
|“关闭”
命令窗口中的显示选项,指定为逗号分隔的对,由“显示”
其中一个选择是:
“通知”
仅当拟合不收敛时显示输出。
“最后一次”
只显示最终输出。
“通路”
显示每次迭代的输出。
“关闭”
显示没有输出。
当可用方法
是NonlinearLeastSquares
.
数据类型:字符
“MaxFunEvals”
- - - - - -模型允许的最大评估次数600
(默认)模型允许的最大计算次数,指定为由逗号分隔的对组成“MaxFunEvals”
和一个标量。
当可用方法
是NonlinearLeastSquares
.
数据类型:双
“麦克斯特”
- - - - - -允许的最大迭代数400
(默认)允许的最大迭代次数,指定为逗号分隔的对,由“麦克斯特”
和一个标量。
当可用方法
是NonlinearLeastSquares
.
数据类型:双
“TolFun”
- - - - - -模型值的终止公差对模型的终止公差值,指定为逗号分隔对组成“TolFun”
和一个标量。
当可用方法
是NonlinearLeastSquares
.
数据类型:双
“TolX”
- - - - - -系数值的终止公差终止公差上的系数值,指定为逗号分隔对组成“TolX”
和一个标量。
当可用方法
是NonlinearLeastSquares
.
数据类型:双
gof
- - - - - -拟合优度统计gof
结构适合度统计,返回为gof
结构,包括该表中的字段。
场 |
价值 |
---|---|
|
误差平方和 |
|
r平方(决定系数) |
|
误差中的自由度 |
|
自由度调整系数的确定 |
|
均方根误差(标准误差) |
输出
-拟合算法信息输出
结构拟合算法信息,返回为输出
结构,其中包含与拟合算法相关的信息。
字段取决于算法。例如,输出
非线性最小二乘算法的结构包括表中所示的字段。
场 |
价值 |
---|---|
|
观察次数(响应值) |
|
需要拟合的未知参数(系数)的个数 |
|
向量的残差 |
|
雅可比矩阵 |
|
描述算法的退出条件。正旗表示收敛,在公差范围内。0标志表示超过了函数求值或迭代的最大次数。负标志表明算法没有收敛到一个解。 |
|
的迭代次数 |
|
函数计算次数 |
|
一阶最优性度量(梯度分量的绝对最大值) |
|
拟合的算法使用 |
您已经有了abgeänderte版本死亡Beispiels。Möchten您是谁? Änderungen öffnen?
您有一个连接到MATLAB-Befehl entspricht:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。Webbrowser unterstützen keine MATLAB-Befehle。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。