MATLAB拟合工具箱函数的使用 | 您所在的位置:网站首页 › MATLAB数据拟合工具箱计算的残差模是什么 › MATLAB拟合工具箱函数的使用 |
MATLAB拟合曲线的方法有很多,针对不同的函数类型应选用合适的拟合方法。 按照拟合方法来进行划分,一般可将待拟合的函数分为曲线/曲面拟合与多元函数拟合。 曲线/曲面拟合 cftool工具箱使用曲线曲面拟合多是基于cftool拟合工具箱使用,使用非常方便,但只能对拟合一元、二元函数(当然,可以通过适当的变换对函数进行处理,使其能够在cftool中进行处理)。cftool工具一方面可以在MATLAB的APP中使用,同样也可以在命令窗口中使用。 下面结合MATLAB命令与工具箱选项进行说明: 稳健性Robust: off:关闭,即采用传统的最小二乘方法进行拟合LAR:Least Absolute Residual(最小绝对残差),以残差平方最小为目标进行拟合。Bisquare:根据距离拟合线的距离加权,有些异常值权重为0,相当于对其进行剔除。拟合效果评估: 拟合工具箱主要涉及的函数有:fit fitype等。 这里以一元线性拟合为例进行说明: %MATLAB拟合工具箱的使用 xdata = x_fit_4;ydata = y_fit_4; % f = fittype('k*x+b') %采用自定义函数 [fit1, estimate1] = fit(xdata,ydata,'poly1') % 针对原始数据的拟合 fdata = feval(fit1, xdata); % 求得拟合数据 I = abs(fdata-ydata) > 1.5*std(ydata);% 剔除点计算方法outliers = excludedata(xdata, ydata, 'indices', I) % 找到对应的剔除数据点 [fit2, estimate2] = fit(xdata, ydata, 'poly1',... 'Exclude', outliers) % 针对剔除异常点后的拟合 [fit3, estimate3] = fit(xdata, ydata, 'poly1',... 'Robust', 'on') % 采用稳健性拟合 plot(fit1,'r-',xdata,ydata,'k.',outliers,'m*') % 绘制拟合曲线,原始数据,剔除数据点。 hold on plot(fit2,'c--') plot(fit3,'b:')输出结果如下: fit1 = Linear model Poly1: fit1(x) = p1x + p2 Coefficients (with 95% confidence bounds): p1 = 1.545 (1.156, 1.933) p2 = 4.901 (3.619, 6.184) estimate1 = 包含以下字段的 struct: sse: 454.1470 rsquare: 0.5046 dfe: 62 adjrsquare: 0.4966 rmse: 2.7065 fit2 = Linear model Poly1: fit2(x) = p1x + p2 Coefficients (with 95% confidence bounds): p1 = 1.517 (1.186, 1.847) p2 = 4.718 (3.625, 5.812) estimate2 = 包含以下字段的 struct: sse: 317.3518 rsquare: 0.5838 dfe: 60 adjrsquare: 0.5768 rmse: 2.2998 fit3 = Linear model Poly1: fit3(x) = p1*x + p2 Coefficients (with 95% confidence bounds): p1 = 1.513 (1.145, 1.881) p2 = 4.712 (3.498, 5.927) estimate3 = 包含以下字段的 struct: sse: 407.4742 rsquare: 0.5555 dfe: 62 adjrsquare: 0.5484 rmse: 2.5636
多元函数的拟合,建议一般先将其转换为线性拟合方式,具体参考我的另外一篇博客 MATLAB求解模型待定系数 参考文献拟合工具箱的使用 |
CopyRight 2018-2019 实验室设备网 版权所有 |