跪求,急!用matlab 在分点数同样多的条件下,用梯形和辛普森公式求sinx在0到π/2的定积分.请写出详细过程,再次对能写出的能人表示感谢.不要随便回答.
跪求,急!
用matlab 在分点数同样多的条件下,用梯形和辛普森公式求sinx在0到π/2的定积分.
请写出详细过程,再次对能写出的能人表示感谢.
不要随便回答.
假设分点为n(包含两端点0和π/2),h=π/(2n),
梯形公式积公=h( sin0/2+ sinh+ sin2h+…+ sin(n-1)h+ sin(π/2/2))
n=2m为偶数可用辛普森公式
辛普森公式
=(π/6n)( sin0+4 sinh+ 2sin2h+4sin3h+2 sin4h+…+2sin(2m-2)h +4 sin(2m-1)h+ sin(π/2))
>>x=linspace(0,pi/2,n); %n为分成几个点
>>y=sin(x);
>>I=T_quad(x,y) %复化梯形公式
>>I=S_quad(x,y) %复化辛普森公式
复化辛普森公式
function I=S_quad(x,y)
n=length(x);m=length(y);
if n~=m
error('The lengths of X and Y must be equal');
return;
end
if rem(n-1,2)~=0
I=T_quad(x,y);
return;
end
N=(n-1)/2;
h=(x(n)-x(1))/N;a=zeros(1,n);
for k=1:N
a(2*k-1)=a(2*k-1)+1;
a(2*k)=a(2*k)+4;
a(2*k-1)=a(2*k+1)+1;
end
I=h/2*sum(a.*y);
复化梯形公式
function I=T_quad(x,y)
n=length(x);m=length(y);
if n~=m
error('The lengths of X and Y must be equal');
return;
end
h=(x(n)-x(1))/(n-1);a=[1 2*ones(1,n-2) 1];
I=h/2*sum(a.*y);
说明,用下面程序时,必须要先确定m的值. 这两个程序都有误差估计.设n=2m+1(这是因为,辛普森公式要求的)梯形公式:h=π/2/2m=π/4m;a=0;b=pi/2;x=a:h:b;y=sin(x);z1=(y(1)+y(n))*h/2; z2=sum(y(2:n-1))*h; z=z1+z2,syms...