称之为Gauss-Legendre求积公式。
2、程序代码与运行 (1)复化梯形公式
function I_n=ComTrapezoidal(a,b,n) h=(b-a)/n; for(k=0:n)
x(k+1)=a+k*h; if (x(k+1)==0)
x(k+1)=10^(-10); end end
I_1=h/2*(f(x(1))+f(x(n+1))); for (i=2:n)
F(i)=h*f(x(i)); end
I_2=sum(F); I_n=I_1+I_2;
function f=f(x) f=log(1+x)/x; 程序运行结果 n 4 8 16 32 64 1f(x)dx 0.8241 0.8231 0.8226 0.8225 0.8225 ?0
(2)复化Simpson公式程序 ComSimpson.m
function s=romberseq(fun,a,b,ep) if nargin==3 ep=1.0e-6; elseif nargin<3 error end
t1=10000; t2=-10000; n=0; m=1; h=b-a;
t(1,1)=0.5*(b-a)*(feval(fun,a)+feval(fun,b)); while abs(t2-t1)>=ep
area=0.0; n=n+1; h=h/2; for i=1:m
area=area+feval(fun,h*(2*i-1)+a); end
t(n+1,1)=0.5*t(n,1)+area*h; m=2*m; if n>4
for j=1:3
for i=1:n-j
t(i,j+1)=(4^(j)*t(i+1,j)-t(i,j))/(4^(j)-1); end end
t1=t(n-4,4); t2=t(n-3,4); end end disp; s=t2;
建立脚本文件
exf=inline('(log(1+x))./x'); fplot(exf,[0,1]) comsimp(exf,0,1,4)
运行结果: n 4 8 16 32 64 1f(x)dx 0.8225 0.8225 0.8225 0.8225 0.8225 ?0
(3)Romberg求积公式程序
a=0;b=1;eps=0.00001;R=zeros(4,4); h=b-a;err=1;J=0;
R(1,1)=h*(tx(a)+tx(b))/2; while (err>eps) J=J+1; h=h/2;
x=((a+h):2*h:(b-h)); [m,n]=size(x); A=zeros(n,1); for i=1:n
A(i,1)=tx(x(m,i)); end
R(J+1,1)=R(J,1)/2+h*sum(A); for K=1:min(3,J)
R(J+1,K+1)=R(J+1,K)+(R(J+1,K)-R(J,K))/(4^K-1); end
if (J>3)
err=abs(R(J+1,4)-R(J,4)); end end
quad=R(J,4); 步长 1 T 0.846573590279973 0.5 0.828751903248151 0.25 0.824058098916759 0.125 0.822866129037621 0.0625 0.822566892025848 0.822811340904210 0.822493497472962 0.822468805744575 0.822467146355257 0.822472307910879 0.822467159629349 0.822467035729302 0.822467077910594 0.822467033762635 S C R 积分近似值为0.822467033762635。
(4)高斯-勒让德求积公式程序 guass1.m
function s=guass1(a,b,n) h=(b-a)/n; s=0.0;
for m=0:(1*n/2-1)
s=s+h*(guassf(a+h*((1-1/sqrt(3))+2*m))+guassf(a+h*((1+1/sqrt(3))+2*m)));
end
guassf.m
function y=guassf(x) y =log(1+x)/x;
高斯-勒让德求积公式结果汇总: 2 n 0.8222 1?f(x)dx 04 0.8224 8 0.8225 结论
分析并比较得到的数据可以看出,当k越来越大时,数值积分的结果越来越靠近原函数积分实际结果,并且复合Simpson积分的结果更迅速地靠近原函数积分实际结果,这是有原因的,从两种方法的误差项即可看出。
复合梯形积分的误差项是?是?1(b?a)h4f180(4)1(b?a)h2f''(?),Simpson积分的误差项12(?),??(a,b),当h趋于零时,显然Simpson积分的
误差项更快地趋于零,实验结果复符合这一结论。

