您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 综合/其它 > 数值分析龙贝格实验报告
实验三龙贝格方法【实验类型】验证性【实验学时】2学时【实验内容】1.理解龙贝格方法的基本思路2.用龙贝格方法设计算法,编程求解一个数值积分的问题。【实验前的预备知识】1.计算机基础知识2.熟悉编程基本思想3.熟悉常见数学函数;【实验方法或步骤】龙贝格方法的基本思路龙贝格方法是在积分区间逐次二分的过程中,通过对梯形之值进行加速处理,从而获得高精度的积分值。1.龙贝格方法的算法步骤1准备初值fa和fb,用梯形计算公式计算出积分近似值12baTfafb步骤2按区间逐次分半计算梯形公式的积分近似值令2ibah,0,1,2,...i计算12102122nnniihTTfx,2in步骤3按下面的公式积分梯形公式:223nnnnTTST辛普生公式:2215nnnnSSCS龙贝格公式:2263nnnnCCRC步骤4精度控制当2nnRR,(为精度)时,终止计算,并取2nR为近似值否则将步长折半,转步骤2。[实验程序]#includeiostream.h#includemath.h#definePrecision0.00001//积分精度要求#definee2.71828183#defineMAXRepeat10//最大允许重复doublefunction(doublex)//被积函数{doubles;s=2*pow(e,-x)/sqrt(3.1415926);returns;}doubleRomberg(doublea,doubleb,doublef(doublex)){intm,n,k;doubley[MAXRepeat],h,ep,p,xk,s,q;h=b-a;y[0]=h*(f(a)+f(b))/2.0;//计算T`1`(h)=1/2(b-a)(f(a)+f(b));m=1;n=1;ep=Precision+1;while((ep=Precision)&&(mMAXRepeat)){p=0.0;for(k=0;kn;k++){xk=a+(k+0.5)*h;//n-1p=p+f(xk);//计算∑f(xk+h/2),T}//k=0p=(y[0]+h*p)/2.0;//T`m`(h/2),变步长梯形求积公式s=1.0;for(k=1;k=m;k++){s=4.0*s;//pow(4,m)q=(s*p-y[k-1])/(s-1.0);//[pow(4,m)T`m`(h/2)-T`m`(h)]/[pow(4,m)-1],2m阶牛顿柯斯特公式,即龙贝格公式y[k-1]=p;p=q;}ep=fabs(q-y[m-1]);//前后两步计算结果比较求精度m=m+1;y[m-1]=q;n=n+n;//24816h=h/2.0;//二倍分割区间}returnq;}main(){doublea,b,Result;cout请输入积分下限:endl;cina;cout请输入积分上限:endl;cinb;Result=Romberg(a,b,function);cout龙贝格积分结果:Resultendl;return0;}
本文标题:数值分析龙贝格实验报告
链接地址:https://www.777doc.com/doc-7331843 .html