复化梯形公式和复化辛普森公式的精度比较
实验四、复化梯形公式和复化Simpson 公式的精度比较
(2学时)
一、实验目的与要求
1、熟悉复化Simpson 公式和复化梯形公式的构造原理;
2、熟悉并掌握二者的余项表达式;
3、分别求出准确值,复化梯形的近似值,复化Simpson 的近似值,并比较后两
者的精度;
4、从余项表达式,即误差曲线,来观察二者的精度,看哪个更接近于准确值。
二、实验内容: 1sin x sin x dx 。 对于函数f (x ) =,试利用下表计算积分I =⎰0x x
表格如下:
注:分别利用复化梯形公式和复化Simpson 公式计算,比较哪个精度更好。
其中:积分的准确值I =0.9460831。
三、实验步骤
1、 熟悉理论知识,并编写相应的程序;
2、 上机操作,从误差图形上观察误差,并与准确值相比较,看哪个精度更好;
3、 得出结论,并整理实验报告。
四、实验注意事项
1、复化梯形公式,程序主体部分:
for n=2:10
T(n)=0.5*T(n-1)
for i=1:2^(n-2)
T(n)=T(n)+(sin((2*i-1)/2^(n-1))/((2*i-1)/2^(n-1)))/2^(n-1); end
end
2、复化Simpson 公式,程序主体部分:
for i=1:10
n=2.^i
x=0:1/n:1
f=sin(x)./x
f(1)=1
s=0
for j=1:n/2
s=s+f(2*j)
end
t=0
for j=1:(n/2-1)
t=t+f(2*j-1)
end
S(i)=1/3/n*(f(1)+4*s+2*t+f(n+1))
end
五.实验内容
复化梯形公式和复化辛普森公式的引入
复化梯形公式:
h T n =∑[f (x k +f (x k +1)];
k =02n -1
复化辛普森公式:
h S n =∑[f (x k +4f (x 1) +f (x k +1)]; k +k =062
根据题意和复化梯形公式、复化辛普森公式的原理编辑程序求解代码如下: Matlab 代码
clc
s=quad('sin(x)./x',0,1)
p1=zeros(10,1);
p2=zeros(10,1);
for k=6:15
s1=0;
s2=0;
x=linspace(0,1,k);
y=sin(x)./x;
z=(1/(2*(k-1))):(1/(k-1)):1;
sz=sin(z)./z;
y(1)=1;
for i=1:(k-1)
s1=s1+0.5*(x(i+1)-x(i))*(y(i)+y(i+1));
end
for j=1:(k-1)
s2=s2+(1/6)*(x(j+1)-x(j))*(y(j)+y(j+1)+4*sz(j)); end
p1(k-5)=s1-s;
p2(k-5)=s2-s;
end
p1; n -1
p2;
s1=s+p1(4)
s2=s+p2(4)
format long
for k=1:length(p1)
p1(k)=abs(p1(k));
p2(k)=abs(p2(k));
end
p1
p2
plot(6:1:15,p1,'-r' )
hold on
plot(6:1:15,10000*(p2),'-c' )
hold off
部分程序结果输出:
s =
0.[**************]
s1 =
0.[**************]
s2 =
0.[**************]
结果分析
1
根据结果输出可知:积分I =⎰sin(x ) 0.[**************]; dx 的准确值为:I= x 0
通过复化梯形公式和复化辛普森公式得到的积分值为:
s1 =0.[**************]:
s2 =0.[**************];
相对误差为:
S 1-I ⨯=4.15⨯10-4; I
S -I δ2=2⨯=1.62⨯10-8; I δ1=
显然,从相对误差可知通过辛普森公式得到的结果误差小精度高。
由于以上的算法只算了结点个数为9的情况,只能横向比较两公式的精确程度,而不能分别比较两公式随节点个数变化精度的变化,故而将以上程序重新编(以上程序为最终程序)可得出两公式随节点个数变化精度的变化情况所取得节点个数为从6到15,共计10种情况对应的误差值如下表:
(表1)
注:由于辛普森公式的精度较高,所得的误差值较小不宜比较,故而将辛普森公式计算出的误差值乘上10000得到以上表1的结果,其相应的曲线图如下(图1)。
(图1:两误差曲线比较)
备注:红色,青色分别比奥斯曲线复化梯形公式和复化辛普森公式的误差值曲线
从曲线图可知复化梯形公式和复化辛普森公式的随着节点个数的增加误差值越小即其精度逐渐增大,且复化辛普森公式的精度远高于复化梯形公式的精度。