数值计算方法常微分方程的Euler方法与改进的Euler方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《数值计算方法》实验7报告班级:学号:姓名:成绩:1.实验名称实验7常微分方程的Euler方法与改进的Euler方法2.实验题目取步长h=0.2,用Euler方法和改进的Euler方法求初值问题2',[0,1](0)1yyxxyy的数值解,并将计算结果与解析解1yx进行比较.3.实验目的掌握求解常微分方程的Euler方法,熟悉改进的Euler方法.4.基础理论对于初值问题0'(,),[,]()yfxyxabyay取节点ixaih,则求解其数值解的Euler公式为1(,),(0,1,,)nnnnyyhfxynN改进的Euler公式(也叫预报-校正法)为111(,)[(,)(,)]2nnnnnnnnnnyyhfxyhyyfxyfxy5.实验环境操作系统:Windowsxp;6.实验过程第一步,确定好初值;先借Euler公式求得一个初步的近似值,并且称之为预报值。第二步,因为预报值精度低,所以要用它代替梯形公式右端的值,重新使用梯形公式计算一次,就得到了校正值。7.结果与分析精确解Euler方法改进Euler方法xyye[k]|ye[k]-y|ym[k]|ym[k]-y|0.01.0000001.0000000.0000001.0000000.0000000.21.0954451.2000000.1045551.1866670.0912220.41.1832161.3733330.1901171.3483120.1650960.61.2649111.5314950.2665841.4937040.2287930.81.3416411.6810850.3394441.6278610.2862211.01.4142141.8269480.4127351.7542050.339991Pressanykeytocontinue根据结果,可以得出,使用Euler公式计算方便,计算量少,然而,它的精度比较低。而改正的Euler刚好可以解决以上问题,让它的计算更加精准并且简便。8.附录:程序清单#includestdio.h#includemath.h#definef(x,y)((y)-2*(x)/(y))#definey(x)sqrt(1+x)voidmain(){floata=0,b=1.0f,h=0.2f,y0=1.0f,x,ye,yp,ym,yx;printf(\n精确解Euler方法);printf(改进Euler方法);printf(\nxyye[k]|ye[k]-y|);printf(ym[k]|ym[k]-y|);printf(%3.1f%8.6f%8.6f%8.6f,a,y0,y0,0.0);printf(%8.6f%8.6f\n,y0,0.0);x=a;ye=y0;ym=y0;while(xb){ye=ye+h*f(x,ye);//Euler公式在下一分点的值yp=ym+h*f(x,ym);//改进Euler公式在下一分点的预报值ym=ym+h/2*(f(x,ym)+f(x+h,yp));//改进Euler公式在下一分点的值x=x+h;//下一分点x坐标yx=y(x);//下一分点的精确解printf(%3.1f%8.6f%8.6f%8.6f%8.6f%8.6f\n,x,yx,ye,fabs(ye-yx),ym,fabs(ym-yx));}}

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功