数值分析报告常微分方程的数值解法.doc

数值分析报告常微分方程的数值解法.doc

ID:51111001

大小:157.00 KB

页数:4页

时间:2020-03-18

数值分析报告常微分方程的数值解法.doc_第1页
数值分析报告常微分方程的数值解法.doc_第2页
数值分析报告常微分方程的数值解法.doc_第3页
数值分析报告常微分方程的数值解法.doc_第4页
资源描述:

《数值分析报告常微分方程的数值解法.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、常微分方程的数值解法一、实验目的:目的与要求:通过实验,熟悉常微分方程的数值解法的基本原理。掌握向前欧拉法、向后欧拉法、梯形法、改进欧拉法及三阶、四阶龙格-库塔法等基本算法。二、实验内容:在下列方法中:向前欧拉法、向后欧拉法、梯形法、改进欧拉法及三阶、四阶龙格-库塔法选择不同的三种算法求下面方程的数值解,并与准确解比较。以上步长取0.1.三、实验要求:1.编程实现。2.可以自拟实验题,要求同上。四、实验程序及结果:1.求原函数DSolve[{y'[x]==x^2+x-y[x],y[0]==0},y[x],x]求得:2.向前

2、欧拉法x[0]=0;y[0]=0;h=0.1;f[x_]:=;x[n_]:=n*h;f[u_,v_]:=u2+u-v;K1[n_]:=f[x[n-1],y[n-1]];y[n_]:=y[n-1]+h*K1[n];Table[{n,x[n],y[n],f[x[n]],f[x[n]]-y[n]},{n,0,10}]//N;Print["n,x[n],y[n],f[x[n]],f[x[n]]-y[n]","",MatrixForm[Table[{n,x[n],y[n],f[x[n]],f[x[n]]-y[n]},{n,0

3、,10}]//N]]Data1=Table[{x[n],f[x[n]]},{n,0,10}]//N;Data2=Table[{x[n],y[n]},{n,0,10}]//N;A0=Plot[f[x],{x,0,1},PlotStyle®{Red,Thick}];A1=Graphics[{PointSize[0.02],Red,Point[Data1]}];A2=ListLinePlot[Data2,PlotStyle®{Red,Dashed}];A3=Graphics[{PointSize[0.02],Blue,Point

4、[Data2]}];Show[A0,A1,A2,A3,PlotRange®All]1.改进欧拉法f[x_,y_]:=x2+x-y;f[x_]:=;xy:={{0,1}};h=0.1;Do[xn=xy[[n]][[1]];yn=xy[[n]][[2]];k1=f[xn,yn];k2=f[xn+h,yn+h*k1];d=(k1+k2)*h/2;Print[n,"","x",n,"=",xn+h,"","y",n,"=",yn+d,"","f(x",n,")=",f[xn+h],"","f(x",n,")-y(x",n,")="

5、,f[xn+h]-(yn+d)];xy=Append[xy,{xn+h,yn+d}],{n,1,10}];A1=Graphics[{PointSize[0.02],Red,Point[xy]}];A2=ListLinePlot[xy,PlotStyle®Dashed];A3=Plot[f[x],{x,0,1},PlotStyle®{Red,Thick}];Show[A3,A2,A1]1.四阶龙格-库塔法f[x_,y_]:=x2+x-y;f[x_]:=;;y0=1;a=0;b=1;n=10;h=(b-a)/n;xx=Tabl

6、e[a+(i-1)h,{i,1,n+1}]//N;y=Table[0,{i,1,n+1}];y[[1]]=y0//N;For[i=2,ibn+1,i++,a1=hf[xx[[i-1]],y[[i-1]]];a2=hf[xx[[i-1]]+h/2,y[[i-1]]+a1/2];a3=hf[xx[[i-1]]+h/2,y[[i-1]]+a2/2];a4=hf[xx[[i-1]]+h,y[[i-1]]+a3];y[[i]]=y[[i-1]]+1/6(a1+2a2+2a3+a4);Print[i-1,"","x",i-1,"=",

7、xx[[i]],"","y",i-1,"=",y[[i]],"","f(x",i-1,")=",f[xx[[i]]],"","f(x",n,")-y(x",n,")=",f[xx[[i]]]-y[[i]]];]data=Table[{xx[[i]],y[[i]]},{i,1,n+1}];A1=Graphics[{PointSize[0.02],Blue,Point[data]}];A2=ListLinePlot[data];A3=Plot[f[x],{x,0,1},PlotStyle®{Red,Thick}];Show[A

8、3,A2,A1]五、实验总结:本次实验是为了熟悉常微分方程的数值解法的基本原理。掌握向前欧拉法、向后欧拉法、梯形法、改进欧拉法及三阶、四阶龙格-库塔法等基本算法。对同一个方程求数值解,我采用了向前欧拉法、改进欧拉法和四阶龙格-库塔法,了解了不同算法的编程难度和运算效率。本次实验中又犯了粗心的错误,少打了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。