%JF数值积分,fun为积分函数,例如fun=@(x)3*x,a、b分别为下上限,n为划分区间,c为所选积分方法(T代表梯形,FX代表复华辛普森)。其中n可由第二个函数通过设定误差R_n求出满足的n。
function [op]=JF(fun,a,b,n,c)
if (nargin<5)
c='T';
end
x1=(b-a)/2;
x2=(b+a)/2;
h=(b-a)./n;
Sum=0;
Sum_1=0;
if c=='T'
op=x1*fun(x2);
elseif c=='X'
op=x1/3*(fun(a)+4*fun(x2)+fun(b));
elseif c=='FT'
for i=1:n-1
x=a+i*h;
Sum=Sum+fun(x);
end
op=h/2*(fun(a)+2*Sum+fun(b));
elseif c=='FX'
for i=0:n-1
x=a+i*h;
x_1=x+1/2*h;
Sum_1=Sum_1+fun(x_1);
if i~=0
Sum=Sum+fun(x);
end
e