复合Simpson公式的收敛阶为4 阶。
复合Simpson Matlab函数
function I = fsimpson(fun,a,b,n)h = (b-a)/n;x = linspace(a,b,2*n+1);%bailinspace(x1,x2,N)用于产生x1,x2之间的N点行线性的矢量;%其中x1、x2、N分别为起始值、终止值、元素个数。y = feval(fun,x); %表示序列x输入fun函数后的输出I = (h/6) * ( y(1)+2*sum(y(3:2:2*n-1))+4*sum(y(2:2:2*n))+y(2*n+1) );%sum(y(3:2:2*n-1))中点之和%sum(y(3:2:2*n-1))中间点之和end
被积函数f(x) Matlab表示
f=@(x)(sin(1./x)); %@表示参数;%(x)表示一个参数;%(sin(1./x))表示被积分函数;
求解
f=@(x)(sin(1./x)); m=fsimpson(f,1,1.5,5);format longmm = 0.360810692814114