SHANGHAI JIAO TONG UNIVERSITY
题目名称:复合梯形公式与复合辛普森公式对比学生:
学生学号:
班级:
学院(系):
目录
1.概述 (3)
2.问题提出 (3)
3.算法推导 (3)
4.算法框图 (3)
4.1复合梯形公式算法流程图 (3)
4.2 复合辛普森公式算法流程图 (3)
5.MATLAB源程序 (3)
6.结论与展望 (3)
图表目录
图4-1 复合梯形公式算法流程图 (1)
图4-2 复合辛普森公式算法流程图 (1)
图6-1 MATLAB计算结果 (3)
表2-1函数计算结果表 (3)
1.概述
梯形求积公式和辛普森求积公式分别是牛顿-科斯特公式中n=1和n=2时的情形。
其中梯形求积公式可表示为
由于牛顿-科斯特公式在n≥8时不具有稳定性,故不可能通过提高阶的方法来提高求积精度。
为了提高精度通常可把积分区间分成若干子区间(通常是等分),再在每个子区间上用低阶求积公式。
这种方法称为复合求积法。
本文主要讨论复合梯形公式和复合辛普森公式在同一数学问题中的应用。
首先给出了复合梯形公式和复合辛普森公式的推导过程以及其余项的表达形式,然
后用流程图的形式介绍算法思路,再运用MATLAB编写代码计算结果,最后对结果进行对比讨论。
希望通过两个算法在同一个算例中的应用对比,更好的理解和掌握复合梯形公式和复合辛普森公式的适用围和适用条件。
并且能够熟悉MATLAB编程求解问题的流程,掌握编程化的思想方法。
同时对两种方法的计算结果对比分析,讨论两种求积方法的计算精度。
2.问题提出
对于函数给出的函数表如下,试用复合梯形公式和复合辛普森公
式计算积分。
表2-1函数计算结果表
x f(x)
0 1
1/8 0.997397867081822
1/4 0.989615837018092
3.算法推导3.1复合梯形公式
根据梯形公式,
()(()())2b
a
b a
f x dx f a f b -=
+⎰
将区间划分为n 等份,分点,,,在每个子区
间
上采用梯形公式,则得:
1
1
100
()()[(()()]()
2n n b
k k n a
k k h I f x dx f x dx f x f x R f --+=====++∑
∑⎰
记
11
101[()()][()2()()]
22n n n k k k k k h h
T f x f x f a f x f b --+===+=++∑∑
则为复合梯形公式。
另外,复合梯形公式的余项可表示为
2
()()12
n b a R f h f η-''=-
3.2 复合辛普森公式
根据辛普森公式
[()4()()]62b a a b
S f a f f b -+=
++
将区间划分为n 等份,在每个子区间上采用辛普森公
式。
若记
则得
1
1
1
1/210
()()[()4()()]()
6k k
b
n n x k k k n x k k a
h I f x dx f x dx f x f x f x R f +--++=====+++∑∑⎰⎰
记
11
1/201[()4()2()()]
6n n n k k k k h
S f a f x f x f b --+===+++∑∑
该公式即为复合辛普森公式。
复合辛普森公式的余项可表示为
4(4)
()()()1802
n b a h R f f η-=-
4. 算法框图
4.1复合梯形公式算法流程图
开始
求出步长h ,各节点
及相应的
各节点函数值
求和sum,
k=1,2,..n-1
输入区间断点a,b
及等分数n
4.2 复合辛普森公式算法流程图
结束
输出积分值
开始
输入区间断点a, b
及等分数n
求出步长h,各节点,相邻节点中点及相应的函数值,k=1,2,..n-1
各节点函数值求和sum1,
各相邻节点中心点函数值求和sum2
k=1,2,..n-1
输出积分值
结束
图 4-1 复合梯形公式算法流程图
图 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位小数的前提下,复合辛普森法计算结果与精确解完全一致,而复合梯形公式的计算结果却只有前两位数字与精确解相同,误差相对比较大。
下面利用余项公式来估计两种算法的误差。
首先需要求
的高阶导
数。
由于
10sin ()cos()x f x xt dt x ==⎰, 所以有
1
100()(cos )cos()2k k k k d k f x xt dt t xt dt dx π==+⎰⎰,
于是
1100011max ()cos()21
k k k x k f x xt t dt t dt k π≤≤≤+≤=+⎰⎰. 从而复合梯形公式的误差
223801111()max ()()0.43410121283
x h R f f x -≤≤''≤≤=⨯. 而复合辛普森公式的误差
468111()()0.27110288045
R f -≤=⨯. 从而,对比两者可得,复合辛普森公式在计算该问题时的精度远高于复合梯形公式。
通过以上分析,本文所得结论如下:
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.。