用matlab 在分点数同样多的条件下,用梯形和辛普森公式求sinx在0到π/2的定积分。

跪求,急!!!!!
用matlab 在分点数同样多的条件下,用梯形和辛普森公式求sinx在0到π/2的定积分。
请写出详细过程,再次对能写出的能人表示感谢。
不要随便回答。

说明,用下面程序时,必须要先确定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 t
f=sin(t); intf=int(f,t,a,b)(计算精确值), Fs=double(intf),
Juewucha8000=abs(z8000-Fs)(计算误差)

辛普森公式

a=0;b=π/2;; h=(b-a)/(2*m); x=a:h:b;
y=sin(x);
z1=y(1)+y(2*m+1); z2=2*sum(y(2:2:2*m));
z3=4*sum(y(3:2:2*m));
z=(z1+z2+z3)*h/3, syms t,f=exp((-t^2)/2)/(sqrt(2*pi));
intf=int(f,t,a,b), Fs=double(intf); Juewucha=abs(z-Fs).
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-21
>>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);
第2个回答  2010-12-25
假设分点为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))
第3个回答  2010-12-14
我是周杰伦…………我送你离开千里之外,你是否还在!