數(shù)值計算課程設(shè)計-- 四階runge-kutta方法_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論