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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

设计采用梯形法和辛普生法求定积分的程序.docx

1、设计采用梯形法和辛普生法求定积分的程序河北工业大学计算机软件技术基础(VC)课程设计报告学院 机械工程学院 班级 工程力学101 姓名 万乐乐 _ 学号 100540_ 成绩 _ _一、题目:设计采用梯形法和辛普生法求定积分的程序 (17)二、设计思路1、总体设计1)分析程序的功能对梯形法和辛普生法计算在不同区间下的积分值,比较二者的精确度;并与真实积分值比较求其误差。2)系统总体结构:该程序有定义梯形法和辛普生法函数,f(x)函数,计算真实值的牛顿莱布尼茨函数和主函数。梯形法和辛普生法函数:将积分转化为VC+语言,输入被积函数和积分区间等数据,能计算出对应的积分值。f(x)函数:将所求的被积

2、分的函数转化为VC+语言,被主函数调用。计算真实值的牛顿莱布尼茨函数:计算所积函数在其被积区间下的真实积分值。主函数:程序的主体,调用各个模块的运行。2、各功能模块的设计:梯形法和辛普生法函数:定义函数指针求积分,将数学表达式转化为VC+语言。f(x)函数:通过写f1,f2函数的表达式,计算结果作为函数返回值。计算真实值的牛顿莱布尼茨函数:通过写出f1,f2函数的原函数;用牛顿莱布尼茨公式计算其真实积分值作为函数的返回值。主函数:调用梯形法和辛普生法函数,f(x)函数,计算真实值的牛顿莱布尼茨函数完成积分及误差的计算。3、设计中的主要困难及解决方案在这部分论述设计中遇到的主要困难及解决方案。1

3、)对函数指针不是很了解,查阅相关的资料学习其使用方法。2)对于程序的循环使用及判断不易掌握,用到了while,for,if,break语句来解决。4、你所设计的程序最终完成的功能1)说明你编制的程序能完成的功能用梯形法和辛普生法分别计算函数的积分,比较二者的精确度和与真实值之间的误差。2)准备的测试数据及运行结果当下限a=0上限b=1,n分别取2,10,100,1000,5000,20000,50000时用梯形法求f1,f2的积分及误差当下限a=0上限b=1,n分别取2,10,100,1000,5000,20000,50000时用辛普生法求f1,f2的积分及误差当下限a=0上限b=2,n分别取

4、2,10,100,1000,5000,20000,50000时用梯形法求f1,f2的积分及误差当下限a=0上限b=2,n分别取2,10,100,1000,5000,20000,50000时用辛普生法求f1,f2的积分及误差三、程序清单本程序包含main.cpp、f(x).cpp、txf.cpp、sinpson.cpp、zhengshi.cpp、head.h、6个文件。1、main.cpp文件清单#include#includehead.h#includevoid main()/主程序文件double a,b;int n,c,d=0;double f_1,f_2,zs1,zs2;/f_1,f_2

5、为算法计算的积分值;zs1为f1真实的积分值zs2为f2真实的积分值coutf1(x)=1+x*x f2(x)=1+x+x*x+x*x*xendl;/输出f1,f2函数cout以下为求f1,f2的对应积分区间的积分endl;while(1) /循环语句if(d!=2)/重新输入新的数据coutabn;else/只改变n的值coutn;cout梯形法求积分请按:1n辛普法生求积分按:2c;if(c!=1&c!=2)/输入错误就重新输入for(;)coutc;if(c=1|c=2)break;if(c=1)/选择梯形法计算f_1=integralt(a,b,n,f1);f_2=integralt(

6、a,b,n,f2);zs1=realintegral(a,b,real1);zs2=realintegral(a,b,real2);cout-梯形法结果为-endl;if(c=2)/选择辛普生法计算f_1=integrals(a,b,n,f1);f_2=integrals(a,b,n,f2);zs1=realintegral(a,b,real1);zs2=realintegral(a,b,real2);cout-辛普生法结果为-endl;coutntatbtf1tf1误差ttf2tf2误差endl;/输入的格式coutntatbtf_1tfabs(f_1-zs1)tf_2tfabs(f_2-z

7、s2)endl;cout重新输入请按:1n只改变n的值请按:2n推出请按:0d;if(d!=0&d!=1&d!=2)/当d输入错误时重新输入for(;)coutd;if(d=1|d=2|d=3)break;if(d=0)/结束循环体cout谢谢您的使用再见endl;break;2、f(x).cpp文件清单#include/函数f1和f2double f1(double x)return 1+x*x;double f2(double x)return 1+x+x*x+x*x*x;3、txf.cpp文件清单#include/梯形法求积分算法double integralt(double a,dou

8、ble b,int n,double (*f)(double)double h,jf=0;h=(b-a)/n;for(int i=1;i=n;i+)jf+=(*f)(a+i*h)+(*f)(a+(i-1)*h)*h/2.0;return jf;4、sinpson.cpp文件清单#include/辛普生法求积分算法double integrals(double a,double b,int n,double(*f)(double)double h,sj=0,sr=0;h=(b-a)/(2*n);for(int i=1;i=2*n-1;i=i+2)sj+=(*f)(a+i*h);for(int j

9、=2;j=2*n-2;j+=2)sr+=(*f)(a+j*h);return (*f)(a)+(*f)(b)+4*sj+2*sr)*h/3;5、zhengshi.cpp文件清单#include/辛普生法求积分算法double integrals(double a,double b,int n,double(*f)(double)double h,sj=0,sr=0;h=(b-a)/(2*n);for(int i=1;i=2*n-1;i=i+2)sj+=(*f)(a+i*h);for(int j=2;j=2*n-2;j+=2)sr+=(*f)(a+j*h);return (*f)(a)+(*f)

10、(b)+4*sj+2*sr)*h/3;6、head.h文件清单#includedouble f1(double x);/声明f1函数double f2(double x);/声明f2函数double real1(double x);/声明real1函数double real2(double x);/声明real2函数double integrals(double a,double b,int n,double(*f)(double);/声明辛普生法函数double integralt(double a,double b,int n,double (*f)(double);/声明梯形法函数dou

11、ble realintegral(double a,double b,double(*r)(double);/声明牛顿莱布尼茨计算积分函数四、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价。能够完成题目要求并且有一定的创新。2、对课题提出更完善的方案设计更加简单的用户界面,方便使用者的使用,在主函数的循环体中可以使用switch,case语句,这样看起来更加美观方便,输出界面可以采用列表的形式,这样能让使用者一目了然。五、收获及心得体会1、通过本次课程设计,自己在哪些方面的能力有所提高。通过本次的课程设计,熟悉了函数指针和循环体的使用,加强了对多个函数调用的了解,提高软件系统分析能力和程序文档的建立、归纳总结的能力,现在我自己已经具备使用VC+开发应用软件和解决实际问题的能力。2、 收获和心得体会。认识到了上学期学习VC+的重要性和实用性,让我深刻理解不论解决什么问题都要有逻辑的思维,认真的学习,大胆的创新;必要时查找相关资料;感谢老师的指导,让我受益匪浅。通过自己独立完成这次课程设计,我在运用VC+解决实际问题的能力提高了日期: 2011 年 9月 7日

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

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