MATLAB在非線性曲線擬合中的應用研究_第1頁
MATLAB在非線性曲線擬合中的應用研究_第2頁
MATLAB在非線性曲線擬合中的應用研究_第3頁
MATLAB在非線性曲線擬合中的應用研究_第4頁
MATLAB在非線性曲線擬合中的應用研究_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、MATLAB在非線性曲線擬合中的應用小結摘要:歸納總結了非線性曲線擬合的方法、求解步驟和上機操作過程關鍵詞:曲線擬合非線性MATLAB正文:1曲線擬合的基本原理已知一組測定的數據(例如N個點(xi,yi)去求得自變量x和因變量y的一個近似解析表達式y=(x)。若記誤差i=(xi)-yi,i=1,2,N,則要使誤差的平方和最小,即要求:為最小,這就是常用的最小二乘法原理。2 .MATLAB曲線擬合的相關方法2.1.函數形式:(1)多項式擬合函數polyfit,調用格式為:p=polyfit(x,y,n)其中x,y為參與曲線擬合的實驗數據,n為擬合多項式的次數,函數返回值為擬合多項式的系數(按降冪

2、排列)。n=1時,就為線性擬合。例1:給出表1數據,試用最小二乘法求一次和二次擬合多項式。表1 數據x-1.00-0.75-0.50-0.2500.250.500.751.00y-0.22090.32950.88261.43922.00032.56453.13343.70614.2836在MATLAB命令窗口中輸入:clear;close;x=-1:0.25:1;y=-0.2209,0.3295,0.8826,1.4392,2.0003,2.5645,3.1334,3.7061,4.2836p1=polyfit(x,y,1)p2=polyfit(x,y,2)y1=polyval(p1,x);y

3、2=polyval(p2,x);plot(x,y,'+',x,y1,'r:',x,y2,'k-.') 運行結果:擬合多項式為:y*=2.0516+2.0131和y*=0.0313x2+2.2516x+2.20001(2)非線性數據擬合函數lsqcurvefit調用格式為:c=lsqcurvefi(t'fun',x0,xdata,ydata)其中'fun'為擬合函數的M-函數文件名,x0為初始向量,xdata,ydata為參與曲線擬合的實驗數據。函數返回值c為非線性函數fun的擬合系數。例2:2004年全國大學生數學

4、建模競賽C題(酒后駕車)中給出某人在短時間內喝下兩瓶啤酒后,間隔一定的時間測量他的血液中酒精含量y(毫克/百毫升),得到數據如表2。表2 酒精含量與飲酒時間的實驗數據時間(小時)0.250.50.7511.522.533.544.55酒精含量306875828277686858515041時間(小時)678910111213141516酒精含量3835282518151210774通過建立微分方程模型得到短時間內喝酒后血液中酒精濃度與時間的關系為: (2)根據實驗數據,利用非線性擬合函數lsqcurvefit,確定模型(2)式中的參數c1,c2,c3。求解過程為:先編寫一個M-函數文件Exam

5、ple2_1:function f=Example2_1(c,tdata)f=c(1)*(exp(-c(2)*tdata)-exp(-c(3)*tdata);保存后,在命令窗口中輸入:cleartdata=0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16;ydata=30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 8 15 12 10 7 7 4;c0=1 1 1;for i=1:50;c=lsqcurvefit('Example2_1',c0

6、,tdata,ydata);c0=c;end得到最優解為:c= 117.05,0.1930,1.9546從而得出擬合曲線: 2.2.圖形窗口形式(1)利用多項式擬合的交互圖命令(GUI)polytool,調用格式為:polytoo(lx,y)其中x,y分別為實驗數據構成的向量,例如利用polytool求解例1的MATLAB命令如下:x=-1:0.25:1y=-0.2209,0.3295,0.8826,1.4392,2.0003,2.5645,3.1334,3.7061,4.2836;polytool(x,y)打開多項式擬合的交互式界面,由于要擬合的函數為線性函數,因此在多項式擬合交互式界面中的

7、Degree中輸入1,點擊導出數據Export,出現保存對話框ExporttoWorkspace,選中Parameters(參數),Residuals(殘差)后點擊OK,在MATLAB的Workspace窗口中可以看到參數為:2.2516和2.0131,即擬合函數為Y*=2.2516x+2.0131。同樣如果擬合的函數為二次函數,則只要在Degree中輸入2,其它步驟相同,可得擬合函數為:Y*=0.0313x2+2.2516x+2.0001通過查看Residuals(殘差)值,可以發現二次函數擬合的殘差值比線性函數的要小一些,從擬合的效果看,可以選擇二次函數作為擬合函數,但由于線性函數較簡單,

8、殘差值也很小,從簡單出發,也可選擇線性函數作為擬合函數。(2)基本擬合界面MATLAB提供了一個方便簡潔的擬合界面。具有擬合快速和操作簡便的優勢,只能擬合多項式。例如用基本擬合界面求解例1的過程如下:clear;close;x=-1:0.25:1;y=-0.2209,0.3295,0.8826,1.4392,2.0003,2.5645,3.1334,3.7061,4.2836;plot(x,y,'+');運行結果:在散點圖的圖形窗口上分別點擊菜單檔中的ToolsBasic Fitting,在Plots Fits中分別選中linear、quadratic、Show equatio

9、ns、plot residuals、show norm of residuals,所得擬合直線方程為:y*=2.3x+2;擬合二次多項式為:Y*=0.031x2+2.3x+2(3)曲線擬合工具界面cftool曲線擬合工具界面cftool是一個可視化的圖形界面,具有強大的圖形擬合功能,下面通過一個具體例子來介紹cftool的用法。例3某生化系學生為研究嘌呤霉素在某項酶促反應中對反應速度與底物濃度之間關系的影響,設計了一個實驗,所得的實驗數據見表3。根據問題的背景和數據建立一個合適的數學模型,來反映這項酶促反應的速度與底物濃度之間的關系。表3 嘌呤霉素實驗中的反應速度與底物濃度數據底物濃度(ppm

10、)x002006011022056110反應速度y764797107123139159152191201207200酶促反應的速度y與底物濃度x之間的關系可用下面兩個簡單模型描述:Michaelis-Menten模型:y=f(x,)= (4)指數增長模型:y=f(x,)=1(1-e) (5)使用曲線擬合工具界面cftool來確定模型(4)和(5)中的參數,并比較模型(4)、(5)的擬合效果。在MATLAB命令窗口中輸入以下語句:clear;close;x=0.02 0.02 0.06 0.06 0.11 0.11 0.22 0.22 0.56 0.56 1.10 1.10;y=76 47 97

11、 107 123 139 159 152 191 201 207 200;cftool(x,y);在Curve Fitting Tool對話框中單擊Fitting,打開Fitting對話框,點擊New fit,在Fit Name:中輸入有理函數,在Type of fit中選中Rational,在Numerator中選中linear polynomial,在Denominator中選中linear polynomial,然后點擊Apply,完成有理函數擬合。然后,再次點擊New fit,在Fit Name:中輸入指數函數,在Type of fit中選中Custom Equation,點擊New

12、equation,打開用戶自定義方程對話框,點擊General Equation,在Equation中輸入y=a*(1-exp(-b*x),點擊Ok后回到擬合窗口,點擊Apply,完成指數函數擬合,參數計算結果見表4。表4 模型(4)、(5)計算結果擬合圖為:通過表4可以看出,有理函數(Michaelis-Menten模型)ys=221.7x+3.318x+0.1047擬合剩余標準差較小,R-square較大(越接近1越好),故用有理函數ys=221.7x+3.318x+0.1047擬合數據比用指數函數ys=192.1(1-e-11.38x)擬合的效果好。3結束語利用MATLAB的繪圖功能和曲線擬合功能,可以很方便地進行多項式擬合和其它非線性曲線擬合,并可以通過比較剩余標準差和可決系數R2的大小,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論