MATLAB----数据拟合
本篇參考于:中國大學慕課,專題五,“5.5數據擬合”
1.擬合曲線調用格式polyfit()
2.例題,人口、股票預測,算法優化參數的確定
3.插值與擬合的異同
1.擬合調用格式
多項式擬合的函數為polyfit(),其功能為求得最小二乘擬合多項式系數,其調用格式為
1)P=polyfit(X,Y,m)
2)[P,S]=polyfit(X,Y,m)
3)[P,S,mu]=polyfit(X,Y,m)
根據樣本數據X和Y,產生一個m次多項式P及其在采樣點誤差數據S,mu是一個二元向量,mu(1)是mean(X),而mu(2)是std(X)
2.例題
x=1790:10:2010
y=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,63,...
? ? 76,92,105.7,122.8,131.7,150.7,179.3,203.2,226.5,248.7,281.4,308.7]
p=polyfit(x,y,3)%三次擬合
q=polyval(p,2020)%預測2020年的人口數
disp(q)%輸出2020年預測的人口數
plot(x,y,'*',x,polyval(p,x))%繪制散點和曲線
text(1750,300,char(['y=',poly2str(p,'x')],['a=',num2str(p(1)),'b=',...
? ? num2str(p(2)),'c=',num2str(p(3))]))%標注多項式及系數
?
?%股票預測
x=[2,3,4,5,8,9,10,11,12,15,16,17,18,19,22,23,24,25,26,29,30]
y=[7.74,7.84,7.82,7.78,7.91,7.97,7.9,7.76,7.9,8.04,8.06,...
? ? 8.11,8.08,8.13,8.03,8.01,8.06,8,8.3,8.41,8.28]
p=polyfit(x,y,3)
x1=[31,32,33]
xi=[x,x1]%預測到第33天的股票價格
plot(x,y,'*',xi,polyval(p,xi))?
?x=[0.03,0.06,0.09,0.12,0.15,0.18,0.21,0.24,0.27,0.3]
y1=[0.01,0.01,0.02,0.03,0.06,0.07,0.13,0.17,0.25,0.37]
y2=[0.85,0.76,0.68,0.62,0.54,0.52,0.5,0.49,0.48,0.47]
p1=polyfit(x,y1,2)%多樣性擬合曲線
p2=polyfit(x,y2,2)%收斂性擬合曲線?
a=p1-p2
xi=roots(a)%計算兩個擬合曲線的交點,兩個交點,舍去第一個負值
yi=polyval(p1,xi(2))
xj=0:0.03:0.36%延長擬合曲線到x=0.36
plot(x,y1,'*',x,y2,'o',xj,polyval(p1,xj),xj,polyval(p2,xj),xi(2),yi,'rp')
?
3.數據插值與擬合異同
?
1)相同點
都屬于函數逼近
使用已知點估計未知點的值
2)不同點
插值,逼近函數經過樣本點。擬合,結果誤差最小
插值,分段逼近,無具體函數。擬合,用一個函數進行整體逼近
插值,估計區間內值。擬合,除了估計區間內值還可以進行時序預測
插值,適合精確數據。擬合,統計數據或存在誤差
總結
以上是生活随笔為你收集整理的MATLAB----数据拟合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重装系统失败后怎么用好系统U盘启动解决?
- 下一篇: Java应用分层(阿里巴巴Java开发手