实
验
目
的
或
要
求
1
、利用复化梯形公式、复化
simpson
公式计算积分
2
、比较计算误差与实际误差
实
验
原
理
(
算
法
流
程
图
或
者
含
注
释
的
源
代
码
)
取
n=2,3,
…
,10
分别利用复化梯形公式、复化
simpson
公式计算积分
1
2
0
I
x
dx
,
并与真值进行比较,
并画出计算误差与实际误差之间的曲线。
利用复化梯形公式的程序代码如下:
function f=fx(x)
f=x.^2;
%首先建立被积函数,以便于计算真实值。
a=0;
%积分下线
b=1;
%积分上线
T=[];
%用来装不同
n
值所计算出的结果
for n=2:10;
h=(b-a)/n;
%步长
x=zeros(1,n+1);
%给节点定初值
for i=1:n+1
x(i)=a+(i-1)*h;
%给节点赋值
end
y=x.^2;
%给相应节点处的函数值赋值
t=0;
for i=1:n
t=t+h/2*(y(i)+y(i+1));
%利用复化梯形公式求值
end
T=[T,t];
%把不同
n
值所计算出的结果装入
T
中
end
R=ones(1,9)*(-(b-a)/12*h.^ 2*2);
%积分余项(计算误差)
true=quad(@fx,0,1);
%积分的真实值
A=T-true;
%计算的值与真实值之差(实际误差)
x=linspace(0,1,9);
plot(x,A,'r',x,R,'*')
%将计算误差与实际误差用图像画出来
注:由于被积函数是
x.^2
,它的二阶倒数为
2
,所以积分余项为:
(-(b-a)/12*h.^ 2*2)