关于matlab的cftool的问题

发布网友 发布时间:2022-04-22 04:36

我来回答

1个回答

热心网友 时间:2023-07-14 19:11

方法/步骤
1
数据准备:
我们以一组多项式数据为例,进行示例,假如多项式是y=4x^3+3x^2+2产生的数据,x取0到3之间间隔为0.3的数。具体数据如下:

2
调用工具箱:
关于如何调用工具箱我在其他经验中有详细的介绍,有兴趣的可以查看。
这里我们用命令cftool进行调用拟合工具箱,在MATLAB主窗口中输入 cftool 回车
可以看到如下拟合工具箱界面

3
拟合操作步骤:
首先我们将要拟合的数据选入到工具箱中,如下图,在红圈处,点击向下三角,分别将要拟合的x y 选入,然后点击右侧的最上方的下三角,然后选择polynomial( 多项式),下面的degree是阶数,也就是x的最高次数,选择不同的degree,在图的左下角是拟合的结果,包括拟合的系数以及方差相关系数等,右侧是数据点,以拟合曲线。

4
结果分析:
我们拟合的时候,一般情况下不知道要拟合的多项式是几阶的,我们一般调节degree都是从1逐渐增大,只要精度符合要求,就可以了,并不是精度越高越高。
拟合结果说明:
Linear model Poly3:
f(x) = p1*x^3 + p2*x^2 + p3*x + p4
Coefficients (with 95% confidence bounds):
p1 = 4 (4, 4)
p2 = 3 (3, 3)
p3 = 4.593e-15 (-3.266e-14, 4.185e-14)
p4 = 2 (2, 2)

Goodness of fit:
SSE: 2.386e-28
R-square: 1
Adjusted R-square: 1
RMSE: 5.839e-15
从以上可以看到最终拟合的y关于x的函数为:
f(x)=4*x^3+3*x^2+4.593e-15*x+2
我们可以看到一次项的系数为4.593e-15,实际上就是4.593*10^(-15),这个数量级完全可以认为是0,所以拟合的结果我们认为是:
f(x)=4*x^3+3*x^2+2
这里的方差SSE数量级为10的负28次方,相关系数 R-square=1,说明拟合的结果很好。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com