版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計任務(wù)書</b></p><p> 2012 — 2013 學(xué)年第 2 學(xué)期</p><p> 課程名稱: 數(shù)值計算方法 </p><p> 設(shè)計題目:
2、 四階Runge-Kutta方法 </p><p> 完成期限:自 2013 年 6 月 24 日至 2013 年 7月 5 日共 2 周</p><p> 指導(dǎo)教師(簽字): 年 月 日</p>&l
3、t;p> 系(教研室)主任(簽字): 年 月 日</p><p><b> 目 錄</b></p><p> 摘要···············
4、83;····································&
5、#183;··················5</p><p> 問題重述·············&
6、#183;····································
7、;················5</p><p> 方法原理及實現(xiàn)···············
8、183;····································
9、······5</p><p> 計算公式或算法·························
10、83;································5</p><p> M
11、atlab程序···································
12、83;···························6</p><p> 測試數(shù)據(jù)及結(jié)果····
13、····································
14、3;·················6</p><p> 結(jié)果分析··············
15、3;····································
16、183;·············10</p><p> 八、方法改進(jìn)··················
17、;····································
18、83;···········10</p><p> 九、心得體會····················
19、····································
20、3;·········10</p><p> 十、參考文獻(xiàn)······················&
21、#183;····································
22、;·······10</p><p><b> 摘要</b></p><p> 本課程設(shè)計主要內(nèi)容是用四階Runge-Kutta方法解決常微分方程組初值問題的數(shù)值解法,通過分析給定題目使用Matlab編寫程序計算結(jié)果并繪圖,最后對計算結(jié)果進(jìn)行分析,得到結(jié)論。</p><p&g
23、t;<b> 問題重述</b></p><p> 在計算機(jī)上實現(xiàn)用四階Runge-Kutta求一階常微分方程初值問題</p><p> 的數(shù)值解,并利用最后繪制的圖形直觀分析近似解與準(zhǔn)確解之間的比較。</p><p><b> 三、方法原理及實現(xiàn)</b></p><p> 龍格-庫塔(Ru
24、nge-Kutta)方法是一種在工程上應(yīng)用廣泛的高精度單步算法。由于此算法精度高,采取措施對誤差進(jìn)行抑制,所以其實現(xiàn)原理也較復(fù)雜。該算法是構(gòu)建在數(shù)學(xué)支持的基礎(chǔ)之上的。龍格庫塔方法的理論基礎(chǔ)來源于泰勒公式和使用斜率近似表達(dá)微分,它在積分區(qū)間多預(yù)計算出幾個點的斜率,然后進(jìn)行加權(quán)平均,用做下一點的依據(jù),從而構(gòu)造出了精度更高的數(shù)值積分計算方法。如果預(yù)先求兩個點的斜率就是二階龍格庫塔法,如果預(yù)先取四個點就是四階龍格庫塔法。</p>
25、<p> 經(jīng)典的方法是一個四階的方法,它的計算公式是:</p><p><b> 四、計算公式或算法</b></p><p> 輸入(編寫或調(diào)用計算的函數(shù)文件),</p><p><b> 3.For </b></p><p><b> End </b>
26、</p><p><b> 4.輸出</b></p><p> 五、Matlab 程序</p><p> x=[a:h:b];</p><p><b> y(1)=y1;</b></p><p> n=(b-a)/h+1;</p><p>&
27、lt;b> for i=2:n</b></p><p> fk1=f(x(i-1),y(i-1));</p><p> fk2=f(x(i-1)+h/2,y(i-1)+fk1*h/2);</p><p> fk3=f(x(i-1)+h/2,y(i-1)+fk2*h/2);</p><p> fk4=f(x(i-1)
28、+h,y(i-1)+fk3*h);</p><p> y(i)=y(i-1)+h*(fk1+2*fk2+2*fk3+fk4)/6;</p><p><b> end</b></p><p><b> y</b></p><p><b> 六、測試數(shù)據(jù)及結(jié)果</b><
29、;/p><p> 用調(diào)試好的程序解決如下問題:</p><p> 應(yīng)用經(jīng)典的四階Runge-Kutta方法解初值問題</p><p><b> 取</b></p><p> 步驟一:編寫函數(shù)具體程序.</p><p> 1.求解解析解程序:</p><p> dso
30、lve('Dy=(y^2+y)/t','y(1)=-2','t')</p><p><b> 結(jié)果:</b></p><p> 2.綜合編寫程序如下:</p><p><b> a=1;</b></p><p><b> b=3;&l
31、t;/b></p><p><b> h=0.5;</b></p><p><b> y(1)=-2;</b></p><p><b> x(1)=a;</b></p><p> n=(b-a)/h+1;</p><p><b>
32、 yy(1)=-2;</b></p><p><b> for i=2:n</b></p><p> k1=(y(i-1)^2+y(i-1))/x(i-1);</p><p> k2=((y(i-1)+h*k1/2)^2+(y(i-1)+h*k1/2))/(x(i-1)+h/2);</p><p>
33、 k3=((y(i-1)+h*k2/2)^2+(y(i-1)+h*k2/2))/(x(i-1)+h/2);</p><p> k4=((y(i-1)+h*k3)^2+(y(i-1)+h*k3))/(x(i-1)+h);</p><p> y(i)=y(i-1)+h*(k1+2*k2+2*k3+k4)/6;% 四階Runge-Kutta公式解</p><p>
34、x(i)=x(i-1)+h; %有解區(qū)間的值</p><p> yy(i)=-x(i)/(x(i)-1/2); %解析解</p><p> s(i)=abs(y(i)-yy(i)); %誤差項</p><p><b> end</b></p><p> [x' y' yy' s&
35、#39;]</p><p> ?。?)步驟二:執(zhí)行上述Runge-Kutta算法,計算結(jié)果為</p><p> (3)使用Matlab繪圖函數(shù)“plot(x,y)”繪制問題數(shù)值解和解析解的圖形。</p><p><b> 數(shù)值解的圖形:</b></p><p><b> plot(x,y)</b&g
36、t;</p><p><b> 解析解的圖形</b></p><p> plot(x,yy)</p><p> ?。?)使用Matlab中的ode45求解,并繪圖。</p><p><b> 編寫函數(shù)如下:</b></p><p><b> %ode.m&l
37、t;/b></p><p> function dy=ode(x,y)</p><p> dy=(y^2+y)/x; </p><p> T,Y]=ode45('ode',[1 3],-2);</p><p><b> plot(T,Y)</b></p><p>&l
38、t;b> 運行結(jié)果如下:</b></p><p><b> 結(jié)果分析</b></p><p> 由圖可知此方法與精確解的契合度非常好,基本上與精度解保持一致,由此可見四階Runge-Kutta方法是一種高精度的單步方法。</p><p><b> 方法改進(jìn)</b></p><p
39、> 同時,由于誤差的存在,我們總想盡可能的是誤差趨近于零,常用的就是傳統(tǒng)的增加取值的個數(shù)。最后,我們通過改變步長來進(jìn)行改進(jìn)。</p><p><b> 具體實現(xiàn):</b></p><p><b> ?。?)h=0.1</b></p><p><b> a=1;</b></p>
40、<p><b> b=3;</b></p><p><b> h=0.1;</b></p><p><b> y(1)=-2;</b></p><p><b> x(1)=a;</b></p><p> n=(b-a)/h+1;<
41、;/p><p><b> yy(1)=-2;</b></p><p><b> for i=2:n</b></p><p> k1=(y(i-1)^2+y(i-1))/x(i-1);</p><p> k2=((y(i-1)+h*k1/2)^2+(y(i-1)+h*k1/2))/(x(i-1)+
42、h/2);</p><p> k3=((y(i-1)+h*k2/2)^2+(y(i-1)+h*k2/2))/(x(i-1)+h/2);</p><p> k4=((y(i-1)+h*k3)^2+(y(i-1)+h*k3))/(x(i-1)+h);</p><p> y(i)=y(i-1)+h*(k1+2*k2+2*k3+k4)/6;% 四階Runge-Kutt
43、a公式解</p><p> x(i)=x(i-1)+h; %有解區(qū)間的值</p><p> yy(i)=-x(i)/(x(i)-1/2); %解析解</p><p> s(i)=abs(y(i)-yy(i)); %誤差項</p><p><b> end</b></p><p>
44、 [x' y' yy' s']</p><p><b> 結(jié)果:</b></p><p><b> h=0.2</b></p><p><b> a=1;</b></p><p><b> b=3;</b><
45、/p><p><b> h=0.2;</b></p><p><b> y(1)=-2;</b></p><p><b> x(1)=a;</b></p><p> n=(b-a)/h+1;</p><p><b> yy(1)=-2;&
46、lt;/b></p><p><b> for i=2:n</b></p><p> k1=(y(i-1)^2+y(i-1))/x(i-1);</p><p> k2=((y(i-1)+h*k1/2)^2+(y(i-1)+h*k1/2))/(x(i-1)+h/2);</p><p> k3=((y(i-1)
47、+h*k2/2)^2+(y(i-1)+h*k2/2))/(x(i-1)+h/2);</p><p> k4=((y(i-1)+h*k3)^2+(y(i-1)+h*k3))/(x(i-1)+h);</p><p> y(i)=y(i-1)+h*(k1+2*k2+2*k3+k4)/6;% 四階Runge-Kutta公式解</p><p> x(i)=x(i-1)+
48、h; %有解區(qū)間的值</p><p> yy(i)=-x(i)/(x(i)-1/2); %解析解</p><p> s(i)=abs(y(i)-yy(i)); %誤差項</p><p><b> end</b></p><p> [x' y' yy' s']</p&
49、gt;<p><b> 結(jié)果:</b></p><p><b> h=0.4</b></p><p><b> a=1;</b></p><p><b> b=3;</b></p><p><b> h=0.4;</
50、b></p><p><b> y(1)=-2;</b></p><p><b> x(1)=a;</b></p><p> n=(b-a)/h+1;</p><p><b> yy(1)=-2;</b></p><p><b>
51、 for i=2:n</b></p><p> k1=(y(i-1)^2+y(i-1))/x(i-1);</p><p> k2=((y(i-1)+h*k1/2)^2+(y(i-1)+h*k1/2))/(x(i-1)+h/2);</p><p> k3=((y(i-1)+h*k2/2)^2+(y(i-1)+h*k2/2))/(x(i-1)+h/2
52、);</p><p> k4=((y(i-1)+h*k3)^2+(y(i-1)+h*k3))/(x(i-1)+h);</p><p> y(i)=y(i-1)+h*(k1+2*k2+2*k3+k4)/6;% 四階Runge-Kutta公式解</p><p> x(i)=x(i-1)+h; %有解區(qū)間的值</p><p> yy(i
53、)=-x(i)/(x(i)-1/2); %解析解</p><p> s(i)=abs(y(i)-yy(i)); %誤差項</p><p><b> end</b></p><p> [x' y' yy' s']</p><p><b> 結(jié)果:</b>&
54、lt;/p><p> 通過上述的一些結(jié)果得出,四階的Runge-Kutta方法的誤差取決于步長的選取,因此,在實驗的時候我們需要慎重的選取。一方面:我們要減少誤差,另一方面:我們也需要盡可能的減少計算次數(shù)。</p><p><b> 心得體會</b></p><p> 課程設(shè)計,至今我們小組三人感慨頗多,的確,從我們參考,設(shè)計到定稿,從理論到
55、實踐,在整整兩星期的時間里,可以說是苦多于甜,但是可以學(xué)到很多很多的東西,同時不僅可以鞏固以前所學(xué)過的知識,而且學(xué)到很多在書本上沒有學(xué)到的知識。通過這次課程設(shè)計使我們懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能提高自己的實際動手能力和獨立思考能力。同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解的不夠深刻,掌握的不夠牢固。通過這次課程設(shè)計之后,一定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 求解分?jǐn)?shù)階微分方程的Runge-Kutta方法.pdf
- 幾類求解分?jǐn)?shù)階微分方程的Runge-Kutta方法.pdf
- 三角指數(shù)擬合Runge-Kutta方法.pdf
- runge_kutta方法_數(shù)值分析
- 高階Runge-Kutta方法的構(gòu)造及研究.pdf
- Some Applications of Runge-Kutta Methods.pdf
- 延遲積分微分方程的變步長Runge-Kutta方法.pdf
- 高階對角隱式辛Runge-Kutta方法研究及應(yīng)用.pdf
- 求解剛性振蕩問題的單調(diào)隱式Runge-Kutta方法.pdf
- 求解剛性振蕩問題的對角隱式Runge-Kutta方法.pdf
- 幾類分段連續(xù)型延遲微分方程Runge-Kutta方法數(shù)值穩(wěn)定性.pdf
- 解常微分方程的三步Runge-Kutta方法.pdf
- Numerical Dissipativity of Runge-Kutta Methods for Delay Differential Equations.pdf
- Exponentially Fitted Runge-Kutta Methods for Singularly Perturbed Delay Differential Equations.pdf
- 求解隨機(jī)微分方程的三級隨機(jī)Runge-Kutta方法.pdf
- 脈沖控制系統(tǒng)Runge-Kutta方法的輸入-狀態(tài)穩(wěn)定性.pdf
- 剛性延遲積分微分方程的Runge-Kutta離散.pdf
- 一維淺水方程的Runge-Kutta間斷有限元數(shù)值模擬與應(yīng)用.pdf
- 求解剛性問題的疊加Runge-Kutta方法的B-收斂性.pdf
- 常微分方程初值問題的runge-kutta解法[開題報告]
評論
0/150
提交評論