當前位置:妙知谷 >

遊戲數碼 >電腦 >

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

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

在學習的過程中,我們經常需要對一些離散數據進行指定函數的曲線擬合嗎,來驗證一些理論推理,下面我將為大家示範如何使用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)

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