微分方程數(shù)值解_第1頁
微分方程數(shù)值解_第2頁
微分方程數(shù)值解_第3頁
微分方程數(shù)值解_第4頁
微分方程數(shù)值解_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)學與計算科學學院實 驗 報 告實驗項目名稱 常微分方程數(shù)值解 所屬課程名稱 微分方程數(shù)值解法 實 驗 類 型 驗證 實 驗 日 期 班 級 學 號 姓 名 成 績 一、實驗概述:【實驗?zāi)康摹空莆涨蠼獬N⒎址匠痰臍W拉法,Runge-Kutta方法(二階的預(yù)估校正法,經(jīng)典的四階R-K法)【實驗原理】1,歐拉法的格式如下: yn+1=yn+hfxn,yn y0=y(x0)其中n從0開始取值,fxn,yn為微分方程中的dy/dx的值,而y0是我們根據(jù)題目設(shè)定的初值。2,預(yù)估校正法格式如下:yn+10=yn+hfxn,yn yn+1=yn+h2fxn,yn+f(xn+1,yn+10)y0=f(x0)

2、其中第一個式子為預(yù)報格式,第二個式子為校正格式,第三個式子也是給定的初值。3,經(jīng)典四階Runge-Kutta格式,亦即R-K法格式如下:yn+1=yn+h6(k1+2k2+2k3+k4)k1=f(xn,yn)k2=f(xn+h2,yn+hk12)k3=f(xn+h2,yn+hk22)k4=f(xn+h,yn+hk3)【實驗環(huán)境】Microsoft Visual C+6.0二、實驗內(nèi)容:【實驗方案】用歐拉法,預(yù)估校正法, 經(jīng)典的四階龍格庫塔方法求解初值問題 dy/dx=,初值y(0)=1; 將計算結(jié)果與精確解為比較在區(qū)間0,1上分別取步長h=0.1; 0.05時進行計算。對三個算法的收斂性進行分

3、析比較,【實驗過程】(實驗步驟、記錄、數(shù)據(jù)、分析)1,部分算法代碼:(1)歐拉算法代碼void ruler(double xn+1,double yn+1,double h)/歐拉法 int j;for(j=0;j<n;j+) yj+1=yj+h*f(xj,yj); (2)預(yù)步校正法代碼void yugu_jz(double xn+1,double yn+1,double h)/預(yù)估校正法double yyn+12;int j;yy01=y0; for(j=0;j<n;j+) yyj+10=yyj1+h*f(xj,yyj1); yyj+11=yyj1+h/2*(f(xj,yyj1)

4、+f(xj,yyj+10);/預(yù)估校正法的解 yj+1=yyj+11; (3)Runge_Kutta法代碼void Runge_Kutta(double xn+1,double yn+1,double h)/Runge_Kutta法double k1,k2,k3,k4;int i;for(i=0;i<n;i+)k1=f(xi,yi);k2=f(xi+h/2,yi+h/2*k1);k3=f(xi+h/2,yi+h/2*k2);k4=f(xi+h,yi+h*k3);yi+1=yi+h/6*(k1+2*k2+2*k3+k4);(4)目標函數(shù)及解析解double f(double a,doubl

5、e b)/目標函數(shù)double fun;fun=a*exp(-a)-b;return fun;void precise(double xn+1,double yn+1)/精確解int j;for(j=0;j<n;j+) yj+1=(pow(xj+1,2)+2)*exp(-xj+1)/2; 2,結(jié)果分析:根據(jù)下面的實驗結(jié)果,可以得出:當步長取0.1時,三種算法收斂性的關(guān)系為:歐拉法<預(yù)步校正法<Runge_Kutta法,相應(yīng)的預(yù)步校正法精確度為普遍在10-2,略高于歐拉法,Runge_Kutta法的精確度達到10-7,遠遠優(yōu)于歐拉法和預(yù)步校正法。當步長取0.05時,三種算法收斂

6、性的關(guān)系不變,但三種方法的精確度均有提高,相對于步長0.1時,Runge_Kutta法收斂速度高于另外兩種,可得其誤差項階數(shù)高于歐拉法和預(yù)步校正法,即結(jié)果均與理論相符。【實驗結(jié)論】(結(jié)果)當步長為0.1時,結(jié)果及誤差如下:當步長為0.05時,結(jié)果及誤差如下:【實驗小結(jié)】(收獲體會) 通過本次實驗,我熟悉了歐拉法,預(yù)步校正法以及Runge_Kutta法的算法思想,還有它們之間的收斂性差異,精確度差異,同時對也提高了自己的上機編程能力,感受到了理論與實踐相結(jié)合的樂趣。三、指導教師評語及成績:評 語評語等級優(yōu)良中及格不及格1.實驗報告按時完成,字跡清楚,文字敘述流暢,邏輯性強2.實驗方案設(shè)計合理3.

7、實驗過程(實驗步驟詳細,記錄完整,數(shù)據(jù)合理,分析透徹)4實驗結(jié)論正確. 成 績: 指導教師簽名: 批閱日期:附錄1:源 程 序#include<stdio.h>#include<math.h>#define n 10void precise(double xn+1,double yn+1);/精確解void ruler(double xn+1,double yn+1,double h);/歐拉法void yugu_jz(double xn+1,double yn+1,double h);/預(yù)估校正法void Runge_Kutta(double xn+1,double

8、yn+1,double h);/Runge_Kutta法double f(double a,double b);/定義函數(shù)void main() printf("*該程序解決微分方程y=x*e(-x)-y的數(shù)值解問題*n"); printf("*區(qū)間為0,1,步長h=0.1nn"); double xn+1,y4n+1; double h; int i,k; h=0.1;/步長賦值 /初值賦值 x0=0.0; for(i=0;i<4;i+) yi0=1; for(i=1;i<n+1;i+) xi=x0+h*i; precise(x,y0);

9、ruler(x,y1,h); yugu_jz(x,y2,h); Runge_Kutta(x,y3,h); printf(" x 精確解 歐拉法的解 預(yù)估校正法 Runge_Kuttan"); for(k=0;k<n+1;k+)/打印結(jié)果 printf(" %-3.2lf %-12.8lf %-12.8lf %-12.8lf %-12.8lfn",xk,y0k,y1k,y2k,y3k); printf(" x 精確解 歐拉法誤差 預(yù)校法誤差 R_K法誤差n"); for(k=0;k<n+1;k+)/打印誤差 printf(&

10、quot; %-3.2lf %-12.8lf %e %e %en",xk,y0k,fabs(y1k-y0k),fabs(y2k-y0k),fabs(y3k-y0k); void precise(double xn+1,double yn+1)/精確解int j;for(j=0;j<n;j+) yj+1=(pow(xj+1,2)+2)*exp(-xj+1)/2; void ruler(double xn+1,double yn+1,double h)/歐拉法 int j;for(j=0;j<n;j+) yj+1=yj+h*f(xj,yj); void yugu_jz(dou

11、ble xn+1,double yn+1,double h)/預(yù)估校正法double yyn+12;int j;yy01=y0; for(j=0;j<n;j+) yyj+10=yyj1+h*f(xj,yyj1); yyj+11=yyj1+h/2*(f(xj,yyj1)+f(xj,yyj+10);/預(yù)估校正法的解 yj+1=yyj+11; void Runge_Kutta(double xn+1,double yn+1,double h)/Runge_Kutta法double k1,k2,k3,k4;int i;for(i=0;i<n;i+)k1=f(xi,yi);k2=f(xi+h

12、/2,yi+h/2*k1);k3=f(xi+h/2,yi+h/2*k2);k4=f(xi+h,yi+h*k3);yi+1=yi+h/6*(k1+2*k2+2*k3+k4);double f(double a,double b)/目標函數(shù)double fun;fun=a*exp(-a)-b;return fun;附錄2:實驗報告填寫說明 1實驗項目名稱:要求與實驗教學大綱一致。2實驗?zāi)康模耗康囊鞔_,要抓住重點,符合實驗教學大綱要求。3實驗原理:簡要說明本實驗項目所涉及的理論知識。4實驗環(huán)境:實驗用的軟、硬件環(huán)境。5實驗方案(思路、步驟和方法等):這是實驗報告極其重要的內(nèi)容。概括整個實驗過程。對于驗證性實驗,要寫明依據(jù)何種原理、操作方法進行實驗,要寫明需要經(jīng)過哪幾個步驟來實現(xiàn)其操作。對于設(shè)計性和綜合性實驗,在上述內(nèi)容基礎(chǔ)上還應(yīng)該畫

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論