SHANGHAI JIAO TONG UNIVERSITY 题目名称:复合梯形公式与复合辛普森公式对比
学生姓名: 学生学号: 班 级: 学院(系):
目录
1. 概述 ...................................................... 3
2. 问题提出 .................................................. 4
3. 算法推导 .................................................. 5
4. 算法框图 .................................................. 6
4.1复合梯形公式算法流程图 ................................. 6
4.2 复合辛普森公式算法流程图 ............................... 7
5. MATLAB源程序 .............................................. 8
6. 结论与展望 ................................................ 9
图表目录
图 4-1 复合梯形公式算法流程图 .................................. 6
图 4-2 复合辛普森公式算法流程图 ................................ 7
图 6-1 MATLAB计算结果 .......................................... 9
表 2-1函数计算结果表 .......................................... 4
1. 概述
梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。其中梯形求积公式可表示为
其公式左端是以[a,b]区间上积分,右端为b-a为高、端点函数值为上下底的梯形的面积值,故通称为梯形公式,具有1次代数精确度。
类似的,辛普森求积公式可以表示为
该公式一般在立体几何中用来求拟柱体的体积,由于偶数n阶牛顿-科特斯求积公式至少具有n+1次代数精确度,所以辛普森公式实际上具有3次代数精确度。
由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。这种方法称为复合求积法。
本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然后用流程图的形式介绍算法思路,再运用MATLAB编写代码计算结果,最后对结果进行对比讨论。
希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复
合辛普森公式的适用范围和适用条件。并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。
2. 问题提出
𝑠𝑠𝑠𝑠给出的函数表如下,试用复合梯形公式和复合辛普森公式计算𝑠对于函数f(x)=积分I=∫01𝑠𝑠𝑠𝑠𝑠𝑠。 𝑠表 2-1函数计算结果表
x f(x) 0 1 1/8 1/4 3/8 1/2 5/8
3/4 7/8 1 3. 算法推导
3.1复合梯形公式
根据梯形公式,
将区间[a,b]划分为n等份,分点𝑠𝑠=𝑠+𝑠𝑠,h=
𝑠−𝑠,k𝑠=0,1,…,n,在每个子区间
[𝑠𝑠,𝑠𝑠+1](k=0,1,…,n−1)上采用梯形公式,则得: 记
则T𝑠为复合梯形公式。
另外,复合梯形公式的余项可表示为
3.2 复合辛普森公式
根据辛普森公式
将区间[a,b]划分为n等份,在每个子区间[𝑠𝑠,𝑠𝑠+1](k=0,1,…,n−1)上采用辛普森公式。 若记
𝑠𝑠+1/2则得
1=𝑠𝑠+𝑠
2记
该公式即为复合辛普森公式。
复合辛普森公式的余项可表示为
4. 算法框图
4.1复合梯形公式算法流程图
T𝑠=输入区间断点求出步长h,各节点𝑠𝑠及各节点函数值f(xk)求和𝑠2(𝑠(𝑠)+𝑠(𝑠)
图 4-1 复合梯形公式算法流程图
4.2 复合辛普森公式算法流程图
输入区间断点a, 求出步长h,各节点𝑠𝑠,相邻节点中点 𝑠𝑠+1/2及相应的函数值各节点函数值f(xk)求和sum1, 各相邻节点中心点函数值f(x)求和𝑠S𝑠=(𝑠(𝑠)+𝑠(𝑠)+2𝑠𝑠𝑠16 输出积分值S 𝑠𝑠𝑠
图 4-2 复合辛普森公式算法流程图
5. MATLAB源程序
%复合梯形公式及复合辛普森积分公式
clear all;
format long;
a=0;
b=1;
n=8;
h=(b-a)/n;%步长
for i=1:n+1
x(i)=a+(i-1)*h;
if isnan(sin(x(i))/x(i))
syms t;
tmp=limit(sin(t)./t,t,x(i));%当被积函数在某点值不存在时,求其极限
y(i)=eval(tmp);
else
y(i)=sin(x(i))/x(i);%被积函数求节点的值
end
end
%复合梯形公式及复合辛普森积分公式
s1=0;
for k=2:n
s1=s1+y(k);
end
T8=h/2*(y(1)+2*s1++y(n+1))
%复合辛普森积分公式
s2=0;
s3=0;
for k=2:2:n
s2=s2+y(k);
end
for k=3:2:n-1
s3=s3+y(k);
end
h1=2*h;%注:此时步长是原来的2倍
S4=h1/6*(y(1)+4*s2+2*s3+y(n+1))
fprintf('梯形积分公式:%6.6f\\n辛普森公式积分:%6.6f\\n',T8,S4)
6. 结论与展望
图 6-1 MATLAB计算结果
运行MATLAB程序,得到复合梯形求积公式的积分值为0.945691,复合辛普森求积公
式的积分值为0.946083(四舍五入后保留6位小数)。而实际的积分准确值保留到6位小数的结果为0.946083。
通过上述结果对比可以得出,虽然复合梯形公式将区间分成了8等分而复合辛普森公式将区间分成了4等分,但两种计算方法实际都需要使用9个点上的函数值,计算量基本也相同,然而最终精度差别却很大。在保留6位小数的前提下,复合辛普森法计算结果与精确解完全一致,而复合梯形公式的计算结果却只有前两位数字与精确解相同,误差相对比较大。
𝑠𝑠𝑠𝑠的高阶导数。由𝑠下面利用余项公式来估计两种算法的误差。首先需要求f(x)=于
1sinxcos(xt)dt, 0xf(x)所以有
1dkkkf(x)(cosxt)dttcos(xt)dt, 00dxk2k1于是
maxf(x)0x1k101kk1cos(xt)tdttkdt. 02k1从而复合梯形公式的误差
h2111R8(f)maxf(x)()20.434103.
120x11283而复合辛普森公式的误差
R8(f)1141()0.271106. 288045从而,对比两者可得,复合辛普森公式在计算该问题时的精度远高于复合梯形公式。
通过以上分析,本文所得结论如下:
1. 复合梯形公式和复合辛普森公式都可以用来作为数值积分估算的替代公式。
2. 在计算量基本相同的前提下,复合辛普森公式计算结果的计算精度要比复合梯形公式
计算精度高的多。
3. 本算例也验证了辛普森公式作为偶数阶牛顿-柯特斯公式的更为精确的代数精度。
关于如何开展下一步研究,提出以下构想:
1. 对多个算例进行分析,保证计算量基本相同的情况下去比较计算精度,验证复合辛普
森公式具有更高精度的结论。
2. 对多个算例进行MATLAB编程分析,在要求相同计算精度的前提下去比较计算量的大小,
从而分析复合梯形公式与复合辛普森公式的优劣。
参考文献
[1]穆耶赛尔·艾合买提,阿布都热西提·阿布都外力. 改进复合梯形求积公式[J]. 首都师范大学学报(自然科学版),2016,06:1-4.
[2]刘智颖,王向公,任威龙,龙耀萍. 辛普森公式的推广形式及应用[J]. 山东理工大学学报(自然科学版),2014,01:29-31.
[3]陈凤忠. 辛普森公式的统一美[J]. 长春理工大学学报(综合版),2005,03:59-60+80.
[4]李庆扬, 王能超, 易大义. 数值分析.第5版[M]. 清华大学出版社, 2008,12:106-109.