(2)解:编写lbg .m文件
function[r,quad,tol,h]=lbg(f,a,b,n,wucha) %f是被积函数 ?分别是上下限 %n+1是t数表的列数 %wucha是容许的误差 %quad是所求积分值 m=1;h=b-a; tol=1;j=0; r=zeros(4,4);
r(1,1)=h*(feval('f',a)+feval('f',b))/2 while((tol>wucha)&&(j for p=1:m x=a+h*(2*p-1); s=s+feval('f',x) end r(j+1,1)=r(j,1)/2+h*s; m=2*m; for k=1:j r(j+1,k+1)=r(j+1,k)+(r(j+1,k)-r(j,k))/(4^k-1); end tol=abs(r(j,j)-r(j+1,k+1)); end quad=r(j+1,j+1) 在命令窗口输入: >>lbg('tf',1,3,6,0.5*(10^(-3))) quad = -1.4260 ans = -56.5195 0 0 0 0 0 0 -52.2329 -50.8040 0 0 0 0 0 -23.8564 -14.3976 -11.9705 0 0 0 0 -6.8278 -1.1516 -0.2685 -0.0828 0 0 0 -2.6815 -1.2994 -1.3093 -1.3258 -1.3307 0 0 -1.7327 -1.4164 -1.4242 -1.4260 -1.4264 -1.4265 0 -1.5022 -1.4254 -1.4260 -1.4260 -1.4260 -1.4260 -1.4260 由结果知,积分值为 -1.4260