对于函数f(x) = sin(x) ,试用复化梯形公式、复化Simpson公式及复化Cotes公式计算积分,并比较其误差。
首先,在MATLAB输入以下程序定义函数:
function y=f(x)
y=sin(x);
1.复化梯形求积公式的代码
function Tn=Tn(a,b,n)
format long
h=(b-a)/n;
sum=0;
for k=1:n-1
sum=sum+f(a+k.*h);
end
Tn=(f(a)+2*sum+f(b))*h/2;
end
function Sn = Sn(a,b,n)
format long
h = (b-a)/n;
sum1 = 0;
sum2 = 0;
for i = 0:n-1
sum1 = sum1 + f(a+(i+1/2).*h);
end
for j = 1:n-1
sum2 = sum2 + f(a+j.*h);
end
Sn = h/6*(f(a)+4*sum