資源描述:
《常微分方程實習報告 劉鐘杰》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、福建農林大學計算機與信息學院(數(shù)學類課程)課程實習報告課程名稱:常微分方程課程實習實習題目:常微分方程數(shù)值求解問題的實習姓名:劉鐘杰系:信息與計算科學專業(yè):信息與計算科學年級:2009學號:081152014指導教師:陳永雪職稱:講師2009年12月1日22福建農林大學計算機與信息學院數(shù)學類課程實習報告結果評定評語:成績:指導教師簽字:評定日期:22目錄1.實習的目的和任務12.實習要求13.實習地點14.主要儀器設備15.實習內容15.1用不同格式對同一個初值問題的數(shù)值求解及其分析……………………..15.1.1求精確解1
2、5.1.2用歐拉法求解35.1.3用改進歐拉法求解55.1.4用4級4階龍格—庫塔法求解75.1.5問題討論與分析………………………………………………………………………105.2一個算法不同不長求解同一個初值問題及其分析…………………………………..126.結束語13參考文獻1322常微分方程課程實習1.實習的目的和任務目的:通過課程實習能夠應用MATLAB軟來計算微分方程(組)的數(shù)值解;了解常微分方程數(shù)值解。任務:通過具體的問題,利用MATLAB軟件來計算問題的結果,分析問題的結論。2.實習要求能夠從案例的自然語言描述中,
3、抽象出其中的數(shù)學模型;能夠熟練應用所學的數(shù)值解計算方法;能夠熟練使用MATLAB軟件;對常微分方程數(shù)值解有所認識,包括對不同算法有所認識和對步長有所認識。3.實習地點數(shù)學實驗室4.主要儀器設備計算機、MicrosoftWindowsXPMatlab7.05.實習內容5.1用歐拉方法,改進歐拉方法,4階龍格—庫塔方法分別求下面微分方程的初值dx/dy=5xyy(0)=1x=[0,2]5.1.1求精確解首先可以求得其精確解為:y=exp(5x^2/2)>>x=0:0.1:2;>>y=exp(5*x.^2/2)>>plot(x,y
4、,'b*-');>>Data=[x',y']y=1.0e+004*Columns1through9220.00010.00010.00010.00010.00010.00020.00020.00030.0005Columns10through180.00080.00120.00210.00370.00680.01340.02770.06020.1373Columns19through210.32940.83082.2026Data=1.0e+004*00.00010.00000.00010.00000.00010.00000
5、.00010.00000.00010.00010.00020.00010.00020.00010.00030.00010.00050.00010.00080.00010.0012220.00010.00210.00010.00370.00010.00680.00010.01340.00010.02770.00020.06020.00020.13730.00020.32940.00020.83080.00022.2026圖5.15.1.2用歐拉法求解程序如下:建立函數(shù)文件cwfa1.mfunction[x,y]=cwfa1(f
6、un,x_span,y0,h)22x=x_span(1):h:x_span(2);y(1)=y0;forn=1:length(x)-1y(n+1)=y(n)+h*feval(fun,x(n),y(n));endx=x';y=y';在MATLAB輸入以下程序:>>clearall>>fun=inline('5*x*y');>>[x,y]=cwfa1(fun,[0,2],1,0.1);>>[x,y]>>plot(x,y,'r*-')結果及圖像:ans=1.0e+003*00.00100.00010.00100.00020.001
7、10.00030.00120.00040.00130.00050.00160.00060.00200.00070.00260.00080.00350.00090.00490.00100.00710.00110.01060.00120.01650.00130.02640.00140.04360.00150.07410.00160.12960.00170.23330.00180.4316220.00190.82010.00201.5992圖5.25.1.3用改進歐拉法求解:程序如下:建立函數(shù)文件cwfa2.mfunction[x
8、,y]=cwfa2(fun,x_span,y0,h)x=x_span(1):h:x_span(2);y(1)=y0;forn=1:length(x)-1k1=feval(fun,x(n),y(n));y(n+1)=y(n)+h*k1;k2=feval(fun,x(n+1),y(n+1));