曲线拟合函数

ceil():向上取整

cell:单元数组    与普通数组不一样的是单元数组放在{  }里

拟合是为了更好的展示数据所要表示的趋势,尽可能与实际样本数据相符合

常见的拟合有fit()函数  nlinfit()函数   lsqnonlin()函数 lsqcurvefit()

1.多项式拟合

polyfit(x,y,n)  x,y均为向量   (xi,yi)为所要表示的数据   n为多项式的最高次幂,n过大可能导致过拟合,过小可能导致欠拟合

loss=(y1-f(x1))^2+(y2-f(x2))^2....  得到的表达式要满足所有可能表达式中的loss最小

[p,e]=polyfit(x,y,n)  返回多项式向量p和矩阵e用在polyval中计算误差

多项式的阶数不超过length(x)-1

2.加权最小方差拟合WLS曲线拟合函数_第1张图片

 

比上面的那个拟合更加精确    不过需要提前设函数

3.非线性拟合

最前面说的那些函数都可以进行非线性拟合

在不清楚系数向量时可以通过这来求得

x=lsqcurvefit(fun,x0,xdata,ydata)

x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub)

x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)

x0初始解向量   xdata,ydata为满足式子的数据

lb,ub为解向量的下界和上界

options为优化参数

[x,resnorm]=...在x处残差的平方和

[x,resnorm,residual]=  x处的残差

[x,resnorm,residual,exitflag]=  终止矢代的条件

[..........output]   输出的优化信息

你可能感兴趣的:(matlab,学习)