资源描述:
《复合梯形公式与复合辛普森公式对比.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SHANGHAIJIAOTONGUNIVERSITY题目名称:复合梯形公式与复合辛普森公式对比学生:学生学号:班级:学院(系):目录1.概述32.问题提出43.算法推导54.算法框图64.1复合梯形公式算法流程图64.2复合辛普森公式算法流程图75.MATLAB源程序86.结论与展望9图表目录图41复合梯形公式算法流程图6图42复合辛普森公式算法流程图7图61MATLAB计算结果9表21函数计算结果表41.概述梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。其中梯形求积公式可表示为其公式左端是以[a,b]区间上积分,右端为b-a为高、端点函数值为上下底的梯形
2、的面积值,故通称为梯形公式,具有1次代数精确度。类似的,辛普森求积公式可以表示为该公式一般在立体几何中用来求拟柱体的体积,由于偶数n阶牛顿-科特斯求积公式至少具有n+1次代数精确度,所以辛普森公式实际上具有3次代数精确度。由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。这种方法称为复合求积法。本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然后用流程图的形式介绍算法思路,再运用MATL
3、AB编写代码计算结果,最后对结果进行对比讨论。希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复合辛普森公式的适用围和适用条件。并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。1.问题提出对于函数给出的函数表如下,试用复合梯形公式和复合辛普森公式计算积分。表21函数计算结果表xf(x)011/80.18221/40.80923/80.80921/20.84065/80.47403/40.11127/80.403110.78971.算法推导3.1复合梯形公式根据梯形公式,将区间划分为n等份,
4、分点,,,在每个子区间上采用梯形公式,则得:记则为复合梯形公式。另外,复合梯形公式的余项可表示为3.2复合辛普森公式根据辛普森公式将区间划分为n等份,在每个子区间上采用辛普森公式。若记则得记该公式即为复合辛普森公式。复合辛普森公式的余项可表示为1.算法框图开始4.1复合梯形公式算法流程图输入区间断点a,b及等分数n求出步长h,各节点及相应的函数值,k=1,2,..n-1各节点函数值求和sum,k=1,2,..n-1输出积分值结束图41复合梯形公式算法流程图4.2复合辛普森公式算法流程图开始输入区间断点a,b及等分数n求出步长h,各节点,相邻节点中点及相应的函数值,k=1,2,..n-1各节点
5、函数值求和sum1,各相邻节点中心点函数值求和sum2k=1,2,..n-1输出积分值结束图42复合辛普森公式算法流程图1.MATLAB源程序%复合梯形公式及复合辛普森积分公式clearall;formatlong;a=0;b=1;n=8;h=(b-a)/n;%步长fori=1:n+1x(i)=a+(i-1)*h;ifisnan(sin(x(i))/x(i))symst;tmp=limit(sin(t)./t,t,x(i));%当被积函数在某点值不存在时,求其极限y(i)=eval(tmp);elsey(i)=sin(x(i))/x(i);%被积函数求节点的值endend%复合梯形公式及复合
6、辛普森积分公式s1=0;fork=2:ns1=s1+y(k);endT8=h/2*(y(1)+2*s1++y(n+1))%复合辛普森积分公式s2=0;s3=0;fork=2:2:ns2=s2+y(k);endfork=3:2:n-1s3=s3+y(k);endh1=2*h;%注:此时步长是原来的2倍S4=h1/6*(y(1)+4*s2+2*s3+y(n+1))fprintf('梯形积分公式:%6.6f辛普森公式积分:%6.6f',T8,S4)1.结论与展望图61MATLAB计算结果运行MATLAB程序,得到复合梯形求积公式的积分值为0.945691,复合辛普森求积公式的积分值为0.9
7、46083(四舍五入后保留6位小数)。而实际的积分准确值保留到6位小数的结果为0.946083。通过上述结果对比可以得出,虽然复合梯形公式将区间分成了8等分而复合辛普森公式将区间分成了4等分,但两种计算方法实际都需要使用9个点上的函数值,计算量基本也相同,然而最终精度差别却很大。在保留6位小数的前提下,复合辛普森法计算结果与精确解完全一致,而复合梯形公式的计算结果却只有前两位数字与精确解相同,误差