ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:189.96KB ,
资源ID:12512935      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12512935.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(常微分方程数值解.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

常微分方程数值解.docx

1、常微分方程数值解数学与计算科学学院实 验 报 告实验项目名称 常微分方程数值解 所属课程名称 微分方程数值解法 实 验 类 型 验证 实 验 日 期 班 级 学 号 姓 名 成 绩 一、实验概述:【实验目的】掌握求解常微分方程的欧拉法,Runge-Kutta方法(二阶的预估校正法,经典的四阶R-K法)【实验原理】1,欧拉法的格式如下: 其中n从0开始取值,为微分方程中的dy/dx的值,而是我们根据题目设定的初值。2,预估校正法格式如下: 其中第一个式子为预报格式,第二个式子为校正格式,第三个式子也是给定的初值。3,经典四阶Runge-Kutta格式,亦即R-K法格式如下:【实验环境】Micro

2、soft Visual C+6.0二、实验内容:【实验方案】用欧拉法,预估校正法, 经典的四阶龙格库塔方法求解初值问题 dy/dx=,初值y(0)=1; 将计算结果与精确解为比较在区间0,1上分别取步长h=0.1; 0.05时进行计算。对三个算法的收敛性进行分析比较,【实验过程】(实验步骤、记录、数据、分析)1,部分算法代码:(1)欧拉算法代码void ruler(double xn+1,double yn+1,double h)/欧拉法 int j; for(j=0;jn;j+) yj+1=yj+h*f(xj,yj); (2)预步校正法代码void yugu_jz(double xn+1,d

3、ouble yn+1,double h)/预估校正法 double yyn+12; int j; yy01=y0; for(j=0;jn;j+) yyj+10=yyj1+h*f(xj,yyj1); yyj+11=yyj1+h/2*(f(xj,yyj1)+f(xj,yyj+10);/预估校正法的解 yj+1=yyj+11; (3)Runge_Kutta法代码void Runge_Kutta(double xn+1,double yn+1,double h)/Runge_Kutta法 double k1,k2,k3,k4; int i; for(i=0;in;i+) k1=f(xi,yi); k2

4、=f(xi+h/2,yi+h/2*k1); k3=f(xi+h/2,yi+h/2*k2); k4=f(xi+h,yi+h*k3); yi+1=yi+h/6*(k1+2*k2+2*k3+k4); (4)目标函数及解析解double f(double a,double b)/目标函数 double fun; fun=a*exp(-a)-b; return fun;void precise(double xn+1,double yn+1)/精确解 int j; for(j=0;jn;j+) yj+1=(pow(xj+1,2)+2)*exp(-xj+1)/2; 2,结果分析:根据下面的实验结果,可以得

5、出:当步长取0.1时,三种算法收敛性的关系为:欧拉法预步校正法Runge_Kutta法,相应的预步校正法精确度为普遍在,略高于欧拉法,Runge_Kutta法的精确度达到,远远优于欧拉法和预步校正法。当步长取0.05时,三种算法收敛性的关系不变,但三种方法的精确度均有提高,相对于步长0.1时,Runge_Kutta法收敛速度高于另外两种,可得其误差项阶数高于欧拉法和预步校正法,即结果均与理论相符。【实验结论】(结果)当步长为0.1时,结果及误差如下:当步长为0.05时,结果及误差如下:【实验小结】(收获体会) 通过本次实验,我熟悉了欧拉法,预步校正法以及Runge_Kutta法的算法思想,还有

6、它们之间的收敛性差异,精确度差异,同时对也提高了自己的上机编程能力,感受到了理论与实践相结合的乐趣。三、指导教师评语及成绩:评 语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确. 成 绩: 指导教师签名: 批阅日期:附录1:源 程 序#include#include#define n 10void precise(double xn+1,double yn+1);/精确解void ruler(double xn+1,double yn+1,double h);/欧拉法vo

7、id yugu_jz(double xn+1,double yn+1,double h);/预估校正法void Runge_Kutta(double xn+1,double yn+1,double h);/Runge_Kutta法double f(double a,double b);/定义函数void main() printf(*该程序解决微分方程y=x*e(-x)-y的数值解问题*n); printf(*区间为0,1,步长h=0.1nn); double xn+1,y4n+1; double h; int i,k; h=0.1;/步长赋值 /初值赋值 x0=0.0; for(i=0;i4

8、;i+) yi0=1; for(i=1;in+1;i+) xi=x0+h*i; precise(x,y0); ruler(x,y1,h); yugu_jz(x,y2,h); Runge_Kutta(x,y3,h); printf( x 精确解 欧拉法的解 预估校正法 Runge_Kuttan); for(k=0;kn+1;k+)/打印结果 printf( %-3.2lf %-12.8lf %-12.8lf %-12.8lf %-12.8lfn,xk,y0k,y1k,y2k,y3k); printf( x 精确解 欧拉法误差 预校法误差 R_K法误差n); for(k=0;kn+1;k+)/打印

9、误差 printf( %-3.2lf %-12.8lf %e %e %en,xk,y0k,fabs(y1k-y0k),fabs(y2k-y0k),fabs(y3k-y0k); void precise(double xn+1,double yn+1)/精确解 int j; for(j=0;jn;j+) yj+1=(pow(xj+1,2)+2)*exp(-xj+1)/2; void ruler(double xn+1,double yn+1,double h)/欧拉法 int j; for(j=0;jn;j+) yj+1=yj+h*f(xj,yj); void yugu_jz(double xn

10、+1,double yn+1,double h)/预估校正法 double yyn+12; int j; yy01=y0; for(j=0;jn;j+) yyj+10=yyj1+h*f(xj,yyj1); yyj+11=yyj1+h/2*(f(xj,yyj1)+f(xj,yyj+10);/预估校正法的解 yj+1=yyj+11; void Runge_Kutta(double xn+1,double yn+1,double h)/Runge_Kutta法 double k1,k2,k3,k4; int i; for(i=0;in;i+) k1=f(xi,yi); k2=f(xi+h/2,yi+

11、h/2*k1); k3=f(xi+h/2,yi+h/2*k2); k4=f(xi+h,yi+h*k3); yi+1=yi+h/6*(k1+2*k2+2*k3+k4); double f(double a,double b)/目标函数 double fun; fun=a*exp(-a)-b; return fun;附录2:实验报告填写说明 1实验项目名称:要求与实验教学大纲一致。2实验目的:目的要明确,要抓住重点,符合实验教学大纲要求。3实验原理:简要说明本实验项目所涉及的理论知识。4实验环境:实验用的软、硬件环境。5实验方案(思路、步骤和方法等):这是实验报告极其重要的内容。概括整个实验过程。对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。对于创新性实验,还应注明其创新点、特色。6实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析。7实验结论(结果):根据实验过程中得到的结果,做出结论。8实验小结:本次实验心得体会、思考和建议。9指导教师评语及成绩:指导教师依据学生的实际报告内容,给出本次实验报告的评价。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1