曲线拟合函数
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]? ?輸出的優化信息
總結
- 上一篇: 拷贝相同属性的两个对象的属性-BeanU
- 下一篇: 枪毙ctfmon.exe 恢复你的默认输