当前位置:文档之家› 利用复化梯形公式、复化simpson 公式计算积分

利用复化梯形公式、复化simpson 公式计算积分

实验 Nhomakorabea结








上图就是利用复化梯形公式所画出得误差。其中:红线就是计算误差,‘*'号就是实际误差。-0、0017就是计算误差.0、0417、0、0185、0、0104、0、00670、0046、0、0034、0、0026、0、0021、0、0017就是n值分别为2到10得实际误差。
上图就是利用复化simpson公式所画出得误差。其中:红线就是计算误差,‘*’号就是实际误差.
y=x、^4;
t=y(1)+y(2*n+1);
fori=1:n
t=t+4*y(2*i)+2*y(2*i—1);
end
T=[T,h/3*t];
end
true=quad(fx1,0,1);
A=T—true;
x=linspace(0,1,9);
plot(x,A)
此法与第一种一样,只就是所用得表达式不同。
注:由于被积函数就是x、^4,它得四阶倒数就是24,所以它得积分余项就是:(-(b-a)/180*((b-a)/2)、^4*24)
t=0;
fori=1:n
t=t+h/3*(y(2*i-1)+4*y(2*i)+y(2*i+1));%利用复化simpson公式求值
end
T=[T,t];%把不同n值所计算出得结果装入T中
end
R=ones(1,9)*(-(b—a)/180*((b-a)/2)、^4*24);%积分余项(计算误差)
true=quad(fx1,0,1);%积分得真实值
x=linspace(0,1,9);
plot(x,A,’r’,x,R,'*')%将计算误差与实际误差用图像画出来
注:由于被积函数就是x、^2,它得二阶倒数为2,所以积分余项为:(—(b-a)/12*h、^2*2)




















利用复化simpson公式得程序代码如下:
同样首先建立被积函数得函数文件:
f=x、^2;%首先建立被积函数,以便于计算真实值。
a=0;%积分下线
b=1;%积分上线
T=[];%用来装不同n值所计算出得结果
for n=2:10;
h=(b-a)/n;%步长
x=zeros(1,n+1);%给节点定初值
fori=1:n+1
x(i)=a+(i-1)*h;%给节点赋值
end
y=x、^2;%给相应节点处得函数值赋值
注:纵轴就是0、0001。
0、5208、0、1029、0、0326、0、0133、0、0064、0、0035、0、0020、0、0013、0、0008就是n值分别为2到10得实际误差,—0、0083就是计算误差。




教师签名:
年月日
A=T-true;%计算得值与真实值之差(实际误差)
x=linspace(0,1,9);
plot(x,A,'r’,x,R,'*')
法二:
a=0;
b=1;
T=[];
forn=2:10
h=(b-a)/(2*n);
x=zeros(1,2*n+1);
for i=1:2*n+1
x(i)=a+(i-1)*h;
end
实验目得或要求
1、利用复化梯形公式、复化simpson公式计算积分
2、比较计算误差与实际误差
实验原理(算法流程图或者含注释得源代码)
取n=2,3,…,10分别利用复化梯形公式、复化simpson公式计算积分,并与真值进行比较,并画出计算误差与实际误差之间得曲线。
利用复化梯形公式得程序代码如下:
function f=fx(x)
functionf=fx1(x)
f=x、^4;
a=0;%积分下线
b=1;%积分上线
T=[];%用来装不同n值所计算出得结果
for n=2:10
h=(b-a)/(2*n);%步长
x=zeros(1,2*n+1);%给节点定初值
for i=1:2*n+1
x(i)=a+(i-1)*h;%给节点赋值
end
y=x、^4;%给相应节点处得函数值赋值
t=0;
fori=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;%计算得值与真实值之差(实际误差)
相关主题