资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
Romberg龙贝格算法实验报告课程实验报告课程名称:专业班级:CS1306班学号:Uxx14967姓名:段沛云指导教师:报告日期:计算机科学与技术学院目录1 实验目的12 实验原理13 算法设计与流程框图24 源程序.45 程序运行6 结果分析77实验体会71 实验目的掌握Romberg公式的用法,适用范围及精度,熟悉RombergM法的流程,并能够设计算法计算积分31得到结果并输出。1x2 实验原理2.1 取k=0,h=b-a,求T0=数)。2.2求梯形值T0(b-a),即按递推公式(4.1)计算T0。k2hf+f(b),令1-k,(k记区间a,b的二分次22.3 求加速值,按公式(4.12)逐个求出T表的第k行其余各元素Tj(k-j)(j=1,2,.k)2.4 若|Tk+1-Tk|n-111T2n=Tn+hnEf(xi+)22i=01Sn=T2n+(T2n-Tn)31Cn=S2n+(S2n-Sn)151Rn=C2n+(C2n-Cn)633 算法设计与流程框图算法设计:(先假定所求积分二分最大次数次数为20)3.1先求Tk03.2再由公式T(k)m4m(k+1)1)=mTm-1-mTm(k-1(k=1,2,)求Tij4-14-13.3在求出的同时比较Tkk与Tk-1k-1的大小,如果二者之差的绝对值小于1e-5,就停止求Tkk;此时的k就是所求的二分次数,而此时的Tkk就是最终的结果3.4打印出所有的Tij;程序流程图4 源程序#include#include#include#includeintmain(void)floatf(float(x)floaty;y=1/x;returny;floata,b,e,h,s,k,x,T1=0,T2=0,S1=0,S2=0,C1=0,C2=0,R1=0,R2=0;inti=0;printf(请输入积分下限:);scanf(%f,&a);printf(n请输入积分上限:);scanf(%f,&b);printf(n请输入允许误差:);scanf(%f,&e);k大学网=1;h=b-a;T1=h*(f(a)+f(b)/2;printf(n);printf(计算结果如下:n);printf(nkT2S2C2R2n);printf(%d%10.7f%10.7f%10.7f%10.7fn,i,T1,S1,C1,R1);dox=a+h/2;s=0;while(xs=s+f(x);x=x+h;T2=(T1+s*h)/2;S2=T2+(T2-T1)/3;if(k=1)T1=T2;S1=S2;h=h/2;k=k+1;elseif(k=2)C2=S2+(S2-S1)/15;C1=C2;T1=T2;S1=S2;h=h/2;k=k+1;elseif(k=3)R2=C2+(C2-C1)/63;C2=S2+(S2-S1)/15;C1=C2;T1=T2;S1=S2;h=h/2;k=k+1;elseC2=S2+(S2-S1)/15;R2=C2+(C2-C1)/63;if(fabs(R2-R1)printf(%d%10.7f%10.7f%10.7f%10.7fn,i+1,T2,S2,C2,R2);break;elseR1=R2;C1=C2;T1=T2;S1=S2;h=h/2;k=k+1;i+;printf(%d%10.7f%10.7f%10.7f%10.7fn,i,T2,S2,C2,R2);while(1);system(pause);return0;5 程序运行6 结果分析如上所示的结果与课本中求得的结果完全一样,表明程序编写正确,且符合要求,事实上,只要再将所求值的精度设置得更小,则所求的结果将更加准确,最终将无限接近于标准值,由上表也可以看出用龙贝格积分法求函数的积分值在精度比较低的情况下就能求到很准确的值!7 实验体会本次实验较为简单,主要时间是耗费在循环判断上面,因为书上已经给了流程图,都是基本的C语言,难度不大。过程中唯一遇到的一点障碍就是在写循环判断时由于多重判断多重循环导致混乱,幸好最后改正了,最后得到的结果经检验与给定的结果相同。通过这次实验上机,使我更进一步了解了龙贝格法的计算思想,其在精度上很有保证,收敛较快,是解积分问题的有效方法。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号