显式Euler、梯形方法、预校Euler方法的比较

显式Euler、梯形方法、预校Euler方法的比较

ID:39619253

大小:186.00 KB

页数:3页

时间:2019-07-07

显式Euler、梯形方法、预校Euler方法的比较_第1页
显式Euler、梯形方法、预校Euler方法的比较_第2页
显式Euler、梯形方法、预校Euler方法的比较_第3页
资源描述:

《显式Euler、梯形方法、预校Euler方法的比较》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微分方程数值解实验报告姓名丁建伟学号200708020211日期2010.10.6实验项目显式Euler、梯形方法、预校Euler方法的比较指导教师徐强一、上机实验的问题和要求(需求分析):考虑一阶常微分方程初值问题dy/dx=-y^2,0<=x<=1,y(0)=1,其精确解为y=1/(1+x),使用三种方法求初值问题数值解。给出步长h=1/16,1/32,1/64,1/128,1/256时的x=1点处的整体截断误差E(h)=

2、yn-y(1)

3、,并从误差、收敛阶、计算量方面比较三种方法。目的与要求

4、:掌握三种方法的程序实现掌握比较算法优缺点的方法二、程序设计的基本思想,原理和算法描述:算法的基本思想:用离散问题代替连续问题,在解的存在区间(a,b)上根据所给出的n值取n+1个节点:即a=x0

5、er方法:三、主要程序代码或命令:#include#include//需要用到绝对值abs()和求平方根sqrt()函数voidmain(){intn;inti;printf("请输入n的值:");//输入变量n的值scanf("%d",&n);floaty=1.0,y0=1.0,y1=1.0;//赋初始值。floate,e0,e1;//绝度误差floath;h=1/float(n);for(i=1;i<=n;i++){y=y-h*y*y;//显式Euler方法的

6、变换公式。y0=(1/h)*(sqrt(2-(h*y0-1)*(h*y0-1))-1.0);//梯形方法的变换公式。y1=y1-(h/2)*(y1*y1+(y1-h*y1*y1)*(y1-h*y1*y1));//预校Euler方法变换公式。printf("n=%d",i);printf("——Euler方法");printf("y=%f",y);printf("——梯形方法");printf("y0=%f",y0);printf("——预校Euler方法");printf("y1=%f",y1

7、);}e=fabs(y-0.5);e0=fabs(y0-0.5);e1=fabs(y1-0.5);printf("请输出最终结果y=%f,误差为%f;y0=%f,误差为%f;y1=%f,误差为%f",y,e,y0,e0,y1,e1);}四、调试和运行程序过程中产生的问题及采取的措施:1、编译时出错,检查程序发现没有加入使用函数预处理,在开头加上#include。2、编译时,没有注意数据类型转换,如floath;h=1/n;是错误的,因为n是整形的,当n值大于1时,h老为零。应进行模

8、式转换,h=1/float(n);这样才是正确的。3、对浮点数求绝对值时,应使用fabs()函数,而不是abs()。五、运行输出结果及分析:上述程序在VisualC++6.0环境下加以实现。经过多次测试,程序运行正确。例如:输入n值:16,运行结果如图所示,图中显示了使用三种方法每一步的值及误差。由上图可知:1.在x=1点处的整体截断误差E(h)=

9、yn-y(1)

10、,显式Euler方法为0.011194,梯形方法为0.000244,预校Euler方法为0.000256.。由此可得,在误差精度上,梯

11、形方法最好,预校Euler方法次之,显式Euler最差。2.由变换公式知,显式Euler方法的截断误差O(n2),梯形方法和预校Euler方法都为O(n3)。3.从计算量上,预校Euler方法最大,梯形方法次之,显式Euler方法最简单。通过这次课程设计:1.我又进一步巩固了C语言的基础。2.做课程设计达到了理论与实践结合的目的,提高了自己的编程能力。3.对三种方法有了更深一步的了解,掌握了其原理和使用。

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

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

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