如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
课程实验报告课程名称数值分析班级实验日期2008年9月30日姓名学号实验成绩实验名称实验二数值积分实验目的及要求一、Newton-Cotes积分实验目的:掌握Newton-Cotes算法程序设计实验要求:1、数值求积的Newton-Cotes算法程序设计。2、要求程序不断加密对积分区间的等分,自动地控制Newton-Cotes算法中的加速收敛过程,直到定积分近似值的误差不超过为止,输出求得的定积分近似值二、Romberg积分实验目的:掌握数值求积的Romberg算法程序设计实验要求:要求程序不断加密对积分区间的等分,自动地控制Romberg算法中的加速收敛过程,直到定积分近似值的误差不超过为止,输出求得的定积分近似值实验环境Windowsxp操作系统VC++6.0实验内容一、Newton-Cotes积分计算实例求定积分x1.82.02.22.42.6f(x)3.120414.425696.042418.0301410.46675计算二、Romberg积分(1)、数值求积的Romberg算法程序设计。(2)、要求程序不断加密对积分区间的等分,自动地控制Romberg算法中的加速收敛过程,直到定积分近似值的误差不超过为止,输出求得的定积分近似值(3)、计算实例求定积分梯形求积公式:Romberg求积的递推化公式:其中为定积分近似值,决定着Romberg求积公式的阶数,例如为一阶Romberg求积公式(即梯形求积公式),一般地,是阶Romberg求积公式的计算结果;决定着等分数,是在等分情况下的阶复化Romberg求积公式的计算结果。算法描述及实验步骤一、Newton-Cotes积分Newton-Cotes积分程序设计。计算实例撰写实验报告。二、Romberg积分设计数值求积的Romberg算法程序;计算实例:撰写实验报告调试过程及实验结果实验1的运行结果如图图一实验2的运行结果如图:图二总结通过这次实验,我掌握了数值积分Newton-Cotes算法和Romberg算法,加深了对其基本原理及其应用的理解,实验也得出了正确的积分结果,而且使我进一步理解并掌握了Romberg算法基本推导过程,并且能够根据计算过程设计出合适的数值求积程序,计算积分。因为这两种算法都是最基本最常用的积分方法,有很多实际问题常常需要计算积分才能求解,掌握这两种方法对我们来说是至关重要的。经过我认真仔细的修改,程序最终运行,并输出正确的结果,使我对我能顺利的完成后面的实验充满了信心。附录源程序清单1.Newton-Cotes算法#include<iostream>#include<cmath>#include<cstdlib>usingnamespacestd;typedefstructdata{floatx;floaty;}Data;//包含自变量x和函数值y的结构体Datad[10];floatCotes(Datad[10],floath);voidmain(){floath,result;floatx,y;intcount;charA;do{cout<<"请输入已知数据的组数(不得超过10组):";//要求用户输入数据组数cin>>count;if(count>=10)break;//检查输入的是否合法//获得各组数据for(inti=0;i<count;i++){cout<<"请输入第"<<i+1<<"组x的值:";cin>>d[i].x;cout<<"请输入第"<<i+1<<"组y的值:";cin>>d[i].y;cout<<"即有f("<<d[i].x<<')'<<"≈"<<d[i].y<<endl;}h=d[4].x-d[0].x;cout<<"利用Newton-Cotes积分公式求得:"<<endl;result=Cotes(d,h);cout<<"函数f(x)在(1.8,2.6)区间的积分值为:"<<result<<endl;cout<<"你还想重新进行计算吗?请按Y或y重新开始,其他键退出。"<<endl;cin>>A;}while(A=='Y'||A=='y');}floatCotes(Datad[10],floath){floata=h/90,sum;sum=a*(7*d[0].y+32*d[1].y+12*d[2].y+32*d[3].y+7*d[4].y);returnsum;}2、Romb