高级语言程序c课程数值微分(word版本)

高级语言程序c课程数值微分(word版本)

ID:28558253

大小:90.04 KB

页数:10页

时间:2018-12-11

高级语言程序c课程数值微分(word版本)_第1页
高级语言程序c课程数值微分(word版本)_第2页
高级语言程序c课程数值微分(word版本)_第3页
高级语言程序c课程数值微分(word版本)_第4页
高级语言程序c课程数值微分(word版本)_第5页
资源描述:

《高级语言程序c课程数值微分(word版本)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数值微分----《高级语言程序设计》课程设计指导教师:***班级:06级软件工程3班成员:******目录一、课程设计概述与设计目的二、概要设计三、详细设计四、调试与测试五、结论与体会六、源程序清单与执行结果一、课程设计概述与设计目的(一).课程设计名称数值微分(二).任务要求对于一些不易按照常规方法求得原函数的微分方程例如:,利用龙格-库塔公式,经过简单的计算过程求出的近似值龙格-库塔公式的形式为:(三).开发环境C++是从C语言发展演变而来的,C语言毕竟是一个面向过程的编程语言,因此与其它面向过程的编程语言一样,已经不能满足运用面向对象方法开发软件的需要。C++便是在C语言基础

2、上为支持面向对象的程序设计而研制的一个通用目的的程序设计语言,它是在1980年由AT&T贝尔实验室的BjarneStroustrup博士创建的。C++的特点:全面兼容C,它保持了C的简洁、高效和接近汇编语言等特点,对C的类型系统进行了改革和扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误。同时,用C编写的众多的库函数和实用软件可以用于C++中。除此之外,C++不仅支持面向过程,又支持面向对象。(四).设计目的1.通过课程设计全面掌握《C++语言程序设计》关键知识点,掌握C++语言中的基本知识。2.通过课程设计了解并掌握C++语言程序设计的方法,熟悉C++程序设计的

3、开发环境及C++程序的调试过程。3.培养我们查阅参考资料、手册的自学能力,通过独立思考深入钻研有关问题,学会自己分析、解决问题的方法。二、概要设计1.程序整体设计流程图2.主控函数执行流程图三、详细设计1.包含加载头文件:#include#include2.运用命名空间usingnamespacestd;一个软件往往有多个模块组成,其中包括由不同的程序员开发的组件及类库提供的组件,这样不同模块间在对标识符命名时就有可能发生命名冲突,也就是说,在不同的模块中,使用相同的名字表示不同的事物,这样当然会引起程序出错。而我们使用命名空间,就解决了这个问题。

4、3.主函数设计:主函数设计是该程序的一个重要部分。a.利用工具:龙格库塔公式,是由doubleRunge_Kuta(double(*f)(doublex,doubley),doublex0,doubley0,doublexn,longstep)来实现。b.设置运行结果的精度利用cout.precision(10)来实现。c.通过调用龙格库塔公式求得微分方程值:for(i=0;i<=10;i++){x=x0+i*step;cout<<"y"<<"("<

5、果,通过调用龙格库塔公式得出结果。4.微分方程函数设计:利用return语句把y’返回到主函数,把题目中微分方程用c++语言实现。5.龙格库塔公式:首先定义变量k1,k2,k3,k4,h和结果result.利用if语句根据step的大小选择编译哪条语句:如果step<=0,直接返回y0的值;如果step==1,直接利用一次龙格库塔公式就可求得微分方程的值;或者0#includeusingn

6、amespacestd;doublef(doubley,doublex)//所求函数{return((-20)*y+20*sin(x)+cos(x));}doubleRunge_Kuta(double(*f)(doublex,doubley),doublex0,doubley0,doublexn,longstep)//龙格库塔公式{doublek1,k2,k3,k4,result;doubleh=(xn-x0)/step;if(step<=0)//首先需要判断步长是否正确return(y0);if(step==1){k1=f(x0,y0);k2=f(x0+h/2,y0+h*k1/2

7、);k3=f(x0+h/2,y0+h*k2/2);k4=f(x0+h,y0+h*k3);result=y0+h*(k1+2*k2+2*k3+k4)/6;}else{doublex1,y1;x1=xn-h;y1=Runge_Kuta(f,x0,y0,xn-h,step-1);k1=f(x1,y1);k2=f(x1+h/2,y1+h*k1/2);k3=f(x1+h/2,y1+h*k2/2);k4=f(x1+h,y1+h*k3);result=y1+h*(k1+2*k2+2

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

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

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