function ss=exam3_3(t,a,b,n)
%format long
%exam3_3(1,0,1,200)
%exam3_3(2,0,1,200)
%exam3_3(3,0,1,200)
%exam3_3(4,0,1,200)
%一元函数积分
%t控制积分方法 [a,b]对应积分区间 n 分割份数
% ss积分近似值 er误差
dx=(b-a)/n;%每份的值
syms x;
ff = x*exp(x)*sin(x); %积分的函数
xx=a:dx:b; %一个按 dx 取间距的向量
ss=0;
if t==1 %左矩形法
for i=1:n
f1=subs(ff,x,xx(i)); %替换函数
ss=ss+dx*f1;
end
elseif t==2 %右矩形法
for i=1:n
f1=subs(ff,x,xx(i+1));
ss=ss+dx*f1;
end
elseif t==3 %中矩形法
for i=1:n
yy=(xx(i)+xx(i+1))/2;
f1=subs(ff,x,yy);
ss=ss+dx*f1;
end
elseif t==4 %梯形法
for i=1:n
f1=subs(ff,x,xx(i));
f2=subs(ff,x,xx(i+1));
ss=ss+dx*(f1+f2)/2;
end
else %辛普森法
for i=1:n
f1=subs(ff,x,xx(i));
f2=subs(ff,x,xx(i+1));
yy=(xx(i)+xx(i+1))/2;
f12=subs(ff,x,yy);
ss=ss+dx*(f1+f2+4*f12)/6;
end
end
%er=abs(ss-pi/4);