酷知百科網

位置:首頁 > 遊戲數碼 > 電腦

如何用Matlab進行指定函數的曲線擬合

電腦1.43W

在學習的過程中,我們經常需要對一些離散數據進行指定函數的曲線擬合嗎,來驗證一些理論推理,下面我將爲大家示範如何使用Matlab進行指定函數的曲線擬合。

如何用Matlab進行指定函數的曲線擬合

操作方法

(01)我們透過阻尼振盪實驗中測得離散數據來進行示範,數據如下:x=[0 0.4 1.2 2 2.8 3.6 4.4 5.2 6 7.2 8 9.2 10.4 11.6 12.4 13.6 14.4 15]';y=[1 0.85 0.29 -0.27 -0.53 -0.4 -0.12 0.17 0.28 0.15 -0.03 -0.15 -0.071 0.059 0.08 0.032 -0.015 -0.02]';我們先透過散點圖來觀察其大致規律:

如何用Matlab進行指定函數的曲線擬合 第2張

(02)由上面的散點圖可知,其對應的函數形式爲下圖所示:

如何用Matlab進行指定函數的曲線擬合 第3張

(03)接下我們採用這個函數模型對上面的離散數據進行曲線擬合,代碼如下:syms tf=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'});cfun=fit(x,y,f) %顯示擬合函數,數據必須爲列向量形式xi=0:0.1:20;yi=cfun(xi);figureplot(x,y,'r*',xi,yi,'b-');title('擬合函數圖形');figureplot(x,sqrt(y-yi(1:1:18,:).^2/18),'r*');title('標準誤差圖');執行結果如下:

如何用Matlab進行指定函數的曲線擬合 第4張
如何用Matlab進行指定函數的曲線擬合 第5張

(04)由上面的擬合函數圖形和標準誤差圖形可知,擬合函數給出了數據的大致趨勢,結果很好,下面再給出幾個參數值與對應參數的置信區間;

如何用Matlab進行指定函數的曲線擬合 第6張

(05)細心的網友可能看到命令視窗中給出的Warning,其實,因爲我們三個參數a,k,w三個參數的初始值未給出導致,因此如果擬合結果不是十分理想,可以多執行幾次。

(06)最後,我們對上述Matlab代碼所出現的一些函數進行大致介紹,如果想要詳細介紹請參考Matlab說明文檔。%自訂擬合函數,在使用時直接模仿下面的參數填寫即可f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'});%根據自訂的擬合函數來擬合數據x,y,注意數據必須爲列向量形式cfun=fit(x,y,f)