资源描述:
《数值计算方法龙贝格积分报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、姓名班级学号【实验目的】:1通过本实验加深对“龙贝格公式”的认识2通过c++编写程序求解下列积分(E=1E-6)3预期达到题中结果4注意实验给出的程序有两个子程序为:ff1使用时只需该程序名即可。【实验题目】:复合求积公式计算定积分【实验原理及理论基础】:用梯形公式得到的积分近似值的误差是,因此,人们希望用这个误差作为对的一种补偿,则得到求积公式的代数精度会有所提高。通过直接验证可知梯形公式二分前后的两个积分值与按如上公式做线性组合其结果正好是抛物线公式得到的积分值精选范本,供参考!同理可得到科茨公式积分值和龙贝格
2、公式计算【实验内容】:龙贝格求积的计算步奏如下:(1)计算,,算出;(2)把[a,b]2等分,计算,算出与;(3)把[a,b]4等分,计算,,算出、与;(4)把[a,b]8等分,计算,算出、、与;(5)把[a,b]16等分,计算,算出、、与,继续重复进行,直到(允许误差)时停止运算,就是所求积分值。精选范本,供参考!输入a,b按公式计算按公式(4-2)计算,,…,输出近似值非输出失败信息精选范本,供参考!【实验结果】:精选范本,供参考!【实验结果分析】:实验结果比较理想,程序输出结果与预期结果相近。本实验有助于我们
3、学习龙贝格公式,掌握c++的使用方法进一步掌握结构化设计程序的好处(只需在外围改变子程序即可)。下附程序:/*rombergmethod*/#include#include#definen1floatf(floatx);floattt(intm,floatt1,floatt2);main(){floatt[20][20];inti,m,k;floatp,a,b;printf("pleaseinputzone[a,b]");scanf("%f,%f",&a,&b);p=f(a);
4、for(i=1;i5、[i-1][k-i+1]);k=k+1;m=m+1;if(m>=20)printf("m>20,stopacclerate,I=%f",t[m-1][0]);}while((t[m-2][1]-t[m-2][0])>1e-6);printf("theintegralvalueofsin(x)/xinzone[%f,%f]isI=%f",a,b,t[m-1][0]);/*printf("theintegralvalueofexp(-x^2)inzone[%f,%f]isI=%f",a,b,t[m-1][0])
6、;*/getch();}精选范本,供参考!floatf(floatx){floaty;if(x<1e-10)y=1;elsey=sin(x)/x;returny;}floattt(intm,floatt1,floatt2){floattm;tm=(pow(4,m)*t2-t1)/(pow(4,m)-1);returntm;}floatf1(floatx){floaty;y=exp(-x*x);returny;}程序由太原理工大学老师编写,我只做部分修改。精选范本,供参考!【本文档内容可以自由复制内容或自由编辑修改
7、内容期待你的好评和关注,我们将会做得更好】精选范本,供参考!