[matlab工具箱] 曲线拟合Curve Fitting
——转载网络
我的matlab版本是 2016a
首先,工具箱如何打开呢?
在
apps 这个菜单项中,可以找到很多很多的应用,点击就可以打开具体的工具窗口
本文介绍的工具有以下这些:
- curve Fitting
curve Fitting
一开始的界面是这样子的
其中下面这个部分是用来添加数据的,提供的选项是workspace中已经存在的变量
这里我提供一组数据,用来演示
x=[8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20];
y=[0.6,0.62,0.64, 0.65, 0.66, 0.67, 0.68, 0.68, 0.69, 0.66, 0.65, 0.65,0.64];
选择好数据后就自动把散点图画好了
然后在
这个部分选择合适的曲线
- Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) + c*exp(d*x)
- Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) + b1*sin(x*w)
- Gaussian:高斯逼近,有8种类型,基础型是 a1*exp(c1-((x-b1)/c1)^2)
- Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving
- Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree ~
- Power:幂逼近,有2种类型,a*x^b 、a*x^b + c
- Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型
- Smoothing Spline:平滑逼近
- Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x + c1)
- Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)
在评价一个曲线的拟合效果时,除了直观的观察图像和散点的拟合程度外,matlab还提供了几个评价参数,英文解释看官网
+ The sum of squares due to error (SSE)
+ R-square
+ Adjusted R-square
+ Root mean squared error (RMSE)
sse 这个统计量测量的是拟合值与实际值的总偏差和。它也被称为残差的平方求和
值越小,拟合程度越好
R-square由三个公式计算得来,衡量了拟合在解释数据变化方面的成功程度
越接近1,表示模型在方差中所占的比例更大(with a value closer to 1 indicating that a greater proportion of variance is accounted for by the model)
Adjusted R-square
调整后的R-平方统计量可以接受任何小于或等于1的值,而接近1的值表示更好的拟合。当模型包含无助于预测响应的项时,可能会出现负值。
RMSE
由以下两个公式计算得出
与sse一样,RMSE值越小,拟合程度越好
最后,将拟合好的结果通过下图的选项即可输出到workspace中供之后编程使用