數(shù)值計算課程設計 四階RungeKutta方法_第1頁
數(shù)值計算課程設計 四階RungeKutta方法_第2頁
數(shù)值計算課程設計 四階RungeKutta方法_第3頁
數(shù)值計算課程設計 四階RungeKutta方法_第4頁
數(shù)值計算課程設計 四階RungeKutta方法_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 湖南工業(yè)大學課 程 設 計資 料 袋 理 學院(系、部) 2013 學年第 2 學期 課程名稱 數(shù)值計算方法 指導教師 職稱 副教授 學生姓名 專業(yè)班級 信息與計算科學班 學號學生姓名 專業(yè)班級 信息與計算科學1002班 學號學生姓名 專業(yè)班級 信息與計算科學 學號 題 目 四階Runge-Kutta方法 成 績 起止日期 2013 年 6 月24日 2013 年 7月 5日目 錄 清 單序號材 料 名 稱資料數(shù)量備 注1課程設計任務書12課程設計說明書13張 湖南工業(yè)大學課程設計任務書 2012 2013 學年第 2 學期 理 學院(系、部) 信息與計算科學 專業(yè) 1002 班級課程名稱:

2、 數(shù)值計算方法 設計題目: 四階Runge-Kutta方法 完成期限:自 2013 年 6 月 24 日至 2013 年 7月 5 日共 2 周內(nèi)容及任務1、 設計題目:四階Runge-Kutta方法的應用2、 設計目的:編寫關于四階Runge-Kutta Matlab程序求解微分方程的初值問題。進度安排起止日期工作內(nèi)容6.24 -6.26進行選題及審題6.27 -6.30資料準備并進行計算 7.01 -7.05課程設計報告書些階段主要參考資料數(shù)值計算方法 黃云清 舒適編著 科學出版社指導教師(簽字): 年 月 日系(教研室)主任(簽字): 年 月 日數(shù)值計算方法設計說明書四階Runge-Ku

3、tta方法起止日期: 2013 年 6 月 24 日 至 2013 年 7月 5 日學生姓名班級信息與計算科學班學號 成績指導教師(簽字)理學院(院、部)2013年7月5日目 錄一、 摘要5二、 問題重述5三、 方法原理及實現(xiàn)5四、 計算公式或算法5五、 Matlab程序6六、 測試數(shù)據(jù)及結(jié)果6七、 結(jié)果分析10八、方法改進10九、心得體會10十、參考文獻101、 摘要本課程設計主要內(nèi)容是用四階Runge-Kutta方法解決常微分方程組初值問題的數(shù)值解法,通過分析給定題目使用Matlab編寫程序計算結(jié)果并繪圖,最后對計算結(jié)果進行分析,得到結(jié)論。2、 問題重述 在計算機上實現(xiàn)用四階Runge-K

4、utta求一階常微分方程初值問題 的數(shù)值解,并利用最后繪制的圖形直觀分析近似解與準確解之間的比較。三、方法原理及實現(xiàn)龍格-庫塔(Runge-Kutta)方法是一種在工程上應用廣泛的高精度單步算法。由于此算法精度高,采取措施對誤差進行抑制,所以其實現(xiàn)原理也較復雜。該算法是構(gòu)建在數(shù)學支持的基礎之上的。龍格庫塔方法的理論基礎來源于泰勒公式和使用斜率近似表達微分,它在積分區(qū)間多預計算出幾個點的斜率,然后進行加權(quán)平均,用做下一點的依據(jù),從而構(gòu)造出了精度更高的數(shù)值積分計算方法。如果預先求兩個點的斜率就是二階龍格庫塔法,如果預先取四個點就是四階龍格庫塔法。經(jīng)典的方法是一個四階的方法,它的計算公式是:四、計算

5、公式或算法1 輸入(編寫或調(diào)用計算的函數(shù)文件),2 3For End 4輸出五、Matlab 程序x=a:h:b;y(1)=y1;n=(b-a)/h+1;for i=2:n fk1=f(x(i-1),y(i-1); fk2=f(x(i-1)+h/2,y(i-1)+fk1*h/2); fk3=f(x(i-1)+h/2,y(i-1)+fk2*h/2); fk4=f(x(i-1)+h,y(i-1)+fk3*h); y(i)=y(i-1)+h*(fk1+2*fk2+2*fk3+fk4)/6;endy六、測試數(shù)據(jù)及結(jié)果用調(diào)試好的程序解決如下問題:應用經(jīng)典的四階Runge-Kutta方法解初值問題 ?。?

6、) 步驟一:編寫函數(shù)具體程序.1.求解解析解程序:dsolve(Dy=(y2+y)/t,y(1)=-2,t)結(jié)果:2.綜合編寫程序如下:a=1;b=3;h=0.5;y(1)=-2;x(1)=a;n=(b-a)/h+1;yy(1)=-2;for i=2:n k1=(y(i-1)2+y(i-1)/x(i-1); k2=(y(i-1)+h*k1/2)2+(y(i-1)+h*k1/2)/(x(i-1)+h/2); k3=(y(i-1)+h*k2/2)2+(y(i-1)+h*k2/2)/(x(i-1)+h/2); k4=(y(i-1)+h*k3)2+(y(i-1)+h*k3)/(x(i-1)+h); y

7、(i)=y(i-1)+h*(k1+2*k2+2*k3+k4)/6;% 四階Runge-Kutta公式解 x(i)=x(i-1)+h; %有解區(qū)間的值 yy(i)=-x(i)/(x(i)-1/2); %解析解 s(i)=abs(y(i)-yy(i); %誤差項endx y yy s(2)步驟二:執(zhí)行上述Runge-Kutta算法,計算結(jié)果為1.00001.50002.00002.50003.0000-2.0000-1.4954-1.3306-1.2480-1.1985-2.0000-1.5000-1.3333-1.2500-1.200000.00460.00280.00200.0015(3)使用

8、Matlab繪圖函數(shù)“plot(x,y)”繪制問題數(shù)值解和解析解的圖形。數(shù)值解的圖形:plot(x,y)解析解的圖形plot(x,yy)(4)使用Matlab中的ode45求解,并繪圖。編寫函數(shù)如下:%ode.mfunction dy=ode(x,y)dy=(y2+y)/x; T,Y=ode45(ode,1 3,-2);plot(T,Y)運行結(jié)果如下:7、 結(jié)果分析由圖可知此方法與精確解的契合度非常好,基本上與精度解保持一致,由此可見四階Runge-Kutta方法是一種高精度的單步方法。8、 方法改進同時,由于誤差的存在,我們總想盡可能的是誤差趨近于零,常用的就是傳統(tǒng)的增加取值的個數(shù)。最后,我

9、們通過改變步長來進行改進。具體實現(xiàn):(1)h=0.1a=1;b=3;h=0.1;y(1)=-2;x(1)=a;n=(b-a)/h+1;yy(1)=-2;for i=2:n k1=(y(i-1)2+y(i-1)/x(i-1); k2=(y(i-1)+h*k1/2)2+(y(i-1)+h*k1/2)/(x(i-1)+h/2); k3=(y(i-1)+h*k2/2)2+(y(i-1)+h*k2/2)/(x(i-1)+h/2); k4=(y(i-1)+h*k3)2+(y(i-1)+h*k3)/(x(i-1)+h); y(i)=y(i-1)+h*(k1+2*k2+2*k3+k4)/6;% 四階Runge

10、-Kutta公式解 x(i)=x(i-1)+h; %有解區(qū)間的值 yy(i)=-x(i)/(x(i)-1/2); %解析解 s(i)=abs(y(i)-yy(i); %誤差項endx y yy s結(jié)果:(2) h=0.2a=1;b=3;h=0.2;y(1)=-2;x(1)=a;n=(b-a)/h+1;yy(1)=-2;for i=2:n k1=(y(i-1)2+y(i-1)/x(i-1); k2=(y(i-1)+h*k1/2)2+(y(i-1)+h*k1/2)/(x(i-1)+h/2); k3=(y(i-1)+h*k2/2)2+(y(i-1)+h*k2/2)/(x(i-1)+h/2); k4=

11、(y(i-1)+h*k3)2+(y(i-1)+h*k3)/(x(i-1)+h); y(i)=y(i-1)+h*(k1+2*k2+2*k3+k4)/6;% 四階Runge-Kutta公式解 x(i)=x(i-1)+h; %有解區(qū)間的值 yy(i)=-x(i)/(x(i)-1/2); %解析解 s(i)=abs(y(i)-yy(i); %誤差項endx y yy s結(jié)果: (3) h=0.4a=1;b=3;h=0.4;y(1)=-2;x(1)=a;n=(b-a)/h+1;yy(1)=-2;for i=2:n k1=(y(i-1)2+y(i-1)/x(i-1); k2=(y(i-1)+h*k1/2)

12、2+(y(i-1)+h*k1/2)/(x(i-1)+h/2); k3=(y(i-1)+h*k2/2)2+(y(i-1)+h*k2/2)/(x(i-1)+h/2); k4=(y(i-1)+h*k3)2+(y(i-1)+h*k3)/(x(i-1)+h); y(i)=y(i-1)+h*(k1+2*k2+2*k3+k4)/6;% 四階Runge-Kutta公式解 x(i)=x(i-1)+h; %有解區(qū)間的值 yy(i)=-x(i)/(x(i)-1/2); %解析解 s(i)=abs(y(i)-yy(i); %誤差項endx y yy s結(jié)果:通過上述的一些結(jié)果得出,四階的Runge-Kutta方法的誤差取決于步長的選取,因此,在實驗的時候我們需要慎重的選取。一方面:我們要減少誤差,另一方面:我們也需要盡可能的減少計算次數(shù)。9、 心得體會 課程設計,至今我們小組三人感慨頗多,的確,從我們參考,設計到定稿,從理論到實踐,在整整兩星期的時間里,可以說是苦多于甜,但是可以學到很多很多的東西,同時不僅可以鞏固以前所學過的知識,而且學到很多在書本上沒有學到的知識。通過

溫馨提示

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

評論

0/150

提交評論