當前位置:妙知谷 >

母嬰教育 >學習交流 >

在matlab下,學會對數據求解最小二乘曲線擬合

在matlab下,學會對數據求解最小二乘曲線擬合

matlab作為一個常用的數學工具,可以幫助我們解決很多實用的問題,類試如數學建模之類的,進行數據擬合。以下用polyfit()函數對以下數據求解最小二乘曲線擬合。

在matlab下,學會對數據求解最小二乘曲線擬合

操作方法

(01)運行matlab軟件,就不贅述了。直接進行編寫程序。輸入x=[1 4 5 8 10 16 17 18 20 23 24 26 27 28]y=[0.5 0.9 1.3 0.7 2.0 2.5 1.7 1.4 1.5 1.8 2.2 2.5 3.0 4.3]

在matlab下,學會對數據求解最小二乘曲線擬合 第2張
在matlab下,學會對數據求解最小二乘曲線擬合 第3張

(02)輸入a=polyfit(x,y,1);x1=1:0.5:28;y1=a(1)*x1+a(2);plot(x,y,'*',x1,y1,'r')顯示如下(該圖是線性迴歸擬合圖),反應了函數整體上升時的趨勢,但具體細節部分並麼有反映出來。

在matlab下,學會對數據求解最小二乘曲線擬合 第4張

(03)下面對曲線進行二次擬合,其程序代碼如下b=polyfit(x,y,2);x2=1:0.5:28;y2=b(1)*x2.^2+b(2)*x2+b(3)按下enter鍵後出現如下所示在輸入plot(x,y,'*',x2,y2,'r')後按下enter後,如第二圖所示(二次擬合圖)

在matlab下,學會對數據求解最小二乘曲線擬合 第5張
在matlab下,學會對數據求解最小二乘曲線擬合 第6張

(04)對比兩次的擬合圖,會發現二次擬合出來的結果比一次擬合結果更加準確,但仍未反映出數據的真實情況。在對曲線進行高次擬合。輸入c=polyfit(x,y,5);x3=1:0.5:28;y3=c(1)*x3.^5+c(2)*x3.^4+c(3)*x3.^3+c(4)*x3.^2+c(5)*x3+c(6)按enter鍵有如下y3的取值

在matlab下,學會對數據求解最小二乘曲線擬合 第7張

(05)輸入plot(x,y,'*',x3,y3,'-r')按enter鍵有如下圖像。這個圖像是對曲線進行的5次擬合的結果,基本上反映出了數據的真實變化情況。需要注意的是不可以對數據進行太高次數的擬合,次數太高就會出現警告。

在matlab下,學會對數據求解最小二乘曲線擬合 第8張

特別提示

編程序需要認真,要不然就會出錯

  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/jy/jiaoliu/gxk03.html