《数值计算方法实验(共4页).doc》由会员分享,可在线阅读,更多相关《数值计算方法实验(共4页).doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 实验报告学院(系)名称: 姓名学号专业班级实验项目数值积分课程名称数值计算方法课程代码实验时间实验地点批改意见:成绩教师签字:实验目的:编写变步长的梯形法则及龙贝格方法等算法程序,上机调试通过。 实验环境:硬件环境:IBMPC或兼容机软件环境:Windows操作系统编程语言:C语言实验内容:用变步长梯形法求下列积分,使精确度达到10-4 利用龙贝格积分法计算,使精确度达到10-4 实验步骤:一 变步长梯形法的步骤。思想:将区间逐次对分进行计算,用前后两次计算的结果进行估计,若合乎精度要求,就停止计算;否则再次对分,重复以上计算过程,直至达到精度要求为止。变步长梯形求
2、积法的实现1.设将区间a, b n等分,共有n + 1个分点,按复化梯形公式计算Tn,需要计算n + 1个f (x)的值 2.如果将求积区间再次对分,若仍然直接用复化梯形公式计算二分后的积分值T2n ,则需要计算2n+1个f(x) 的值 n T2n 的全部分点中有n + 1个是二分前原有的点 n 每个小区间xk , xk+1经过二分再增加一个新分点 后,用复化梯形公式求得该区间上的积分值为 二实验结果:3.T2n 的全部分点中有n + 1个是二分前原有的点 4.每个小区间xk , xk+1经过二分再增加一个新分点 后,用复化梯形公式求得该区间上的积分值为 5.对区间a, b因此有6.前一项Tn
3、是二分前的积分值,后一项只涉及二分时新增加的分点 ,所要计算f 值的次数为n 7.递推公式由于避免了老节点的重复计算,而使计算量减少了一半 二 龙贝格积分法的步骤。1. 将积分区间分成n等份和2n等份时,求得积分近似值Tn和T2n,则有误差估计式 2. 积分近似值T2n的误差大致等于 3. 与T2n之和比T2n更接近于真值I 4. 可以得到一种更好的计算积分的公式实验结果:一 变步长梯形法输入积分区间和精度后,输出结果3.,根据精度要求,最终结果为:3.1416二 龙贝格积分法输入积分区间和精度后,输出结果为0.,根据精度要求,最终结果为:0.4597 变步长梯形法的流程图:龙贝格积分法的流程
4、图:开始读入a, b, xb?k=1?=k=2?=k=3?=|R2-R1|?打印R2附录(源程序及运行结果):一 变步长梯形法#include#includedouble f(double x)return 4/(1+x*x);void main()double a,b,h,T1,T2,e,S,x;printf(请输入区间a和b:);scanf(%lf,%lf,&a,&b);printf(精度:);scanf(%lf,&e);h=b-a;T2=h/2*(f(a)+f(b);do T1=T2; S=0;x=a+h/2;do S=S+f(x);x=x+h;while(x=e);printf(用变步
5、长梯形法输出T2:%lfn,T2);运行结果:二 龙贝格积分法#include#includedouble f(double x)return sin(x);void main()double a,b,h,T1,T2=1,e,S,S1,S2=1,x,C1,C2,R1=0,R2=1;printf(请输入区间a和b:);scanf(%lf,%lf,&a,&b);printf(精度:);scanf(%lf,&e);h=2*(b-a);T2=(b-a)/2*(f(a)+f(b);int k=0;while(fabs(R2-R1)=e) k=k+1; h=h/2; T1=T2; S1=S2; S=0; x=a+h/2; doS=S+f(x); x=x+h; while(xb); T2=T1/2+h/2*S; S2=T2+(T2-T1)/3; if(k=1)continue; C2=S2+(S2-S1)/15; if(k=2)C1=C2;continue; R2=C2+(C2-C1)/63; if(k=3)R1=R2;C1=C2;continue; C1=C2; R1=R2;printf(%lf,R2);运行结果:专心-专注-专业
限制150内