实验四 常微分方程初值问题数值解法

实验四 常微分方程初值问题数值解法

ID:15654976

大小:119.50 KB

页数:5页

时间:2018-08-04

实验四  常微分方程初值问题数值解法_第1页
实验四  常微分方程初值问题数值解法_第2页
实验四  常微分方程初值问题数值解法_第3页
实验四  常微分方程初值问题数值解法_第4页
实验四  常微分方程初值问题数值解法_第5页
资源描述:

《实验四 常微分方程初值问题数值解法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数值分析实验实验指导书四理学院实验中心数学专业实验室编写实验四常微分方程初值问题数值解法【实验类型】验证性【实验学时】2【实验内容】科学计算中经常遇到微分方程(组)初值问题,需要利用Euler法,改进Euler法,Rung-Kutta方法求其数值解,诸如以下问题:分别取h=0.1,0.2,0.4时数值解。初值问题的精确解。【实验前的预备知识】1、熟悉各种初值问题的算法;2、明确各种算法的精度与所选步长有密切关系;3、通过计算更加了解各种算法的优越性。【实验方法或步骤】1、根据初值问题数值算法,编程计算;2、试分别取不同步长,考察某节点

2、处数值解的误差变化情况;3、试用不同算法求解某初值问题,结果有何异常;4、分析各个算法的优缺点。【Euler方法】#include#include/*y1=f(x,y)*/floatf(floatx,floaty){return(4*x/y-x*y);}voidEuler(floatx0,floatxn,floaty0,intn){inti;floatx=x0,y=y0,h=(xn-x0)/n;printf("x[0]=%fty[0]=%f",x,y);for(i=1;i<=n;i++){y=y

3、+h*f(x,y);x=x0+i*h;printf("x[%d]=%fty[%d]=%f",i,x,i,y);}}main(){inti,n;floatx0,xn,y0;printf("nInputthebeginandendofx:");scanf("%f%f",&x0,&xn);printf("Inputtheyvalueat%f:",x0);scanf("%f",&y0);do{printf("Inputnvalue[divide(%f,%f)]:",x0,xn);scanf("%d",&n);}while(n<=1);E

4、uler(x0,xn,y0,n);scanf("%f",&yn);}【Rung-Kutta方法】#include#include#definef(x,y)(y-2*x/y)intmain(){intm;inti;doublea,b,y0;doublexn,yn,yn1;doublek1,k2,k3,k4;doubleh;printf("Inputthebeginandendofx:");scanf("%lf%lf",&a,&b);printf("nInputtheyvalueat%f:",a);s

5、canf("%lf",&y0);printf("nInputmvalue[divide(%f,%f)]:",a,b);scanf("%d",&m);if(m<=0){printf("Pleaseinputanumberlargerthan1.");return1;}h=(b-a)/m;xn=a;yn=y0;for(i=1;i<=m;i++){k1=f(xn,yn);k2=f((xn+h/2),(yn+h*k1/2));k3=f((xn+h/2),(yn+h*k2/2));k4=f((xn+h),(yn+h*k3));yn1=yn+

6、h/6*(k1+2*k2+2*k3+k4);xn+=h;printf("x%d=%f,y%d=%f",i,xn,i,yn1);yn=yn1;}scanf("%lf",yn);}

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

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

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