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
比上面的那个拟合更加精确 不过需要提前设函数
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] 输出的优化信息