拟合

 拟合:用比较简单和合适的函数来逼近(或拟合)实验数据

一 拟合工具箱CFTOOL

用法:对于数据

v=[20,40,60,80,100,120,140];
x=[6.5,17.8,33.6,57.1,83.4,118,153.5];
plot(v,x);


图形如下:

尝试用工具箱中的立方拟合,得到图形如下:

从图形上看,得到的图形基本和点重合;得到的R方也趋向于1,可见拟合效果很好。

得到结果:

Linear model Poly3:
       f(x) = p1*x^3 + p2*x^2 + p3*x + p4
Coefficients (with 95% confidence bounds):
       p1 = -1.042e-005  (-3.726e-005, 1.643e-005)
       p2 =    0.009065  (0.002565, 0.01557)
       p3 =     0.01298  (-0.4493, 0.4752)
       p4 =         2.9  (-6.263, 12.06)

Goodness of fit:
  SSE: 2.951
  R-square: 0.9998
  Adjusted R-square: 0.9997
  RMSE: 0.9918

 

解释:

SSE:方差
  R-square: 决定系数
  Adjusted R-square: 校正后的决定系数
  RMSE: 标准差

当然,也可以用二次拟合,得到结果:

Linear model Poly2:
       f(x) = p1*x^2 + p2*x + p3
Coefficients (with 95% confidence bounds):
       p1 =    0.006565  (0.005767, 0.007364)
       p2 =      0.1838  (0.05303, 0.3146)
       p3 =        -0.1  (-4.664, 4.464)

Goodness of fit:
  SSE: 4.451
  R-square: 0.9997
  Adjusted R-square: 0.9996
  RMSE: 1.055

 

总体来说,二次拟合已经基本可以反应曲线,但三次拟合精度要高一些,四次以上的拟合已经没有必要了。

另:工具箱中的非线性函数

Custom Equations 用户自定义函数
Expotential e指数函数
Fourier 傅立叶函数,含有三角函数
Gaussian 正态分布函数,高斯函数
Interpolant 插值函数,含有线性函数,移动平均等类型的拟合
Polynomial 多项式函数
Power 幂函数
Sum of sin functions正弦函数类
Weibull 威布尔函数

二 拟合函数

v=[20,40,60,80,100,120,140];
x=[6.5,17.8,33.6,57.1,83.4,118,153.5];
a=polyfit(v,x,2);
xi=polyval(a,v);
plot(v,x,'ro',v,xi,'b');

 解释:    

      a=polyfit(xdata,ydata,n)

  其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入.输出参数a为拟合多项式 y=a1xn+...+anx+a n+1的系数

  y=polyval(a,x,m)

       计算多项式在x处的值y

  线性:m=1, 二次:m=2, …

  polyfit的输出是一个多项式系数的行向量。为了计算在xi数据点的多项式值,调用MATLAB的函数polyval。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值