使用Matlab做單變數曲線擬合

來源:互聯網
上載者:User

 

Matlab有一個功能強大的曲線擬合工具箱 cftool ,使用方便,能實現多種類型的線性、非線性曲線擬合。

 

假設我們要擬合的函數形式是 y=A*x*x + B*x, 且A>0,B>0 。

 

1、在命令列輸入資料:

》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908 280.0447 296.204 311.5475];

》y=[5 10 15 20 25 30 35 40 45 50];

 

2、啟動曲線擬合工具箱

》cftool

 

3、進入曲線擬合工具箱介面“Curve Fitting tool”

(1)點擊“Data”按鈕,彈出“Data”視窗;

(2)利用X data和Y data的下拉式功能表讀入資料x,y,可修改資料集名“Data set name”,然後點擊“Create data set”按鈕,退出“Data”視窗,返回工具箱介面,這時會自動畫出資料集的曲線圖;

(3)點擊“Fitting”按鈕,彈出“Fitting”視窗;

(4)點擊“New fit”按鈕,可修改擬合項目名稱“Fit name”,通過“Data set”下拉式功能表選擇資料集,然後通過下拉式功能表“Type of fit”選擇擬合曲線的類型,工具箱提供的擬合類型有:

 

   * Custom Equations:使用者自訂的函數類型

   * Exponential:指數逼近,有2種類型, a*exp(b*x) 、 a*exp(b*x) + c*exp(d*x)

   * Fourier:傅立葉逼近,有7種類型,基礎型是 a0 + a1*cos(x*w) + b1*sin(x*w)

   * Gaussian:高斯逼近,有8種類型,基礎型是 a1*exp(-((x-b1)/c1)^2)

   * Interpolant:插值逼近,有4種類型,linear、nearest neighbor、cubic spline、shape-preserving

   * Polynomial:多形式逼近,有9種類型,linear ~、quadratic ~、cubic ~、4-9th degree ~

   * Power:冪逼近,有2種類型,a*x^b 、a*x^b + c

   * Rational:有理數逼近,分子、分母共有的類型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子還包括constant型

   * Smoothing Spline:平滑逼近(翻譯的不大恰當,不好意思)

   * Sum of Sin Functions:正弦曲線逼近,有8種類型,基礎型是 a1*sin(b1*x + c1)

   * Weibull:只有一種,a*b*x^(b-1)*exp(-a*x^b)

 

 

選擇好所需的擬合曲線類型及其子類型,並進行相關設定:

——如果是非自訂的類型,根據實際需要點擊“Fit options”按鈕,設定擬合演算法、修改待估計參數的上下限等參數;

——如果選Custom Equations,點擊“New”按鈕,彈出自訂函數等式視窗,有“Linear Equations線性等式”和“General Equations構造等式”兩種標籤。

 

在本例中選Custom Equations,點擊“New”按鈕,選擇“General Equations”標籤,輸入函數類型y=a*x*x + b*x,設定參數a、b的上下限,然後點擊OK。

 

(5)類型設定完成後,點擊“Apply”按鈕,就可以在Results框中得到擬合結果,如下例:

general model:

f(x) = a*x*x+b*x

 

Coefficients (with 95% confidence bounds):

a = 0.009194 (0.009019, 0.00937)

b = 1.78e-011 (fixed at bound)

 

Goodness of fit:

SSE: 6.146

R-square: 0.997

Adjusted R-square: 0.997

RMSE: 0.8263

 

同時,也會在工具箱視窗中顯示擬合曲線。

 

這樣,就完成一次曲線擬合啦,十分方便快捷。當然,如果你覺得擬合效果不好,還可以在“Fitting”視窗點擊“New fit”按鈕,按照步驟(4)~(5)進行一次新的擬合。

 

不過,需要注意的是,cftool 工具箱只能進行單個變數的曲線擬合,即待擬合的公式中,變數只能有一個。對於混合型的曲線,例如 y = a*x + b/x ,工具箱的擬合效果並不好。下一篇文章我介紹幫同學做的一個非線性函數的曲線擬合。 

MATLAB曲線擬合工具箱在實驗資料處理上的應用

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.