%%%程序编写者 西北工业大学自动化学院 Email: yincwxa2013@mail.nwpu.edu.cn
%% All rights reserved
clear
clc
format long
syms x
f=input('输入被积函数f=')
a=input('输入积分区间[a b]=')
NN=input('输入整数(n>2)n=')
n=2^NN;
%%%%%%%%%%%%%%%%%%%%%
h=(a(2)-a(1))/2;
x=a(1);
f1=1;
x=a(2);
f2=eval(f)
T(1)=(a(2)-a(1))/2*(f1+f2);
N=log2(n)
for k=1:N
t=0;
for kk=1:2^(k-1)
x=a(1)+(2*kk-1)*(a(2)-a(1))/(2*(2^(k-1)));
t=t+eval(f);
end
T(2^k)=1/2*T(2^(k-1))+h/(2^(k-1))*t;
end
for k=1:N
S(2^(k-1))=4*T(2^k)/3-T(2^(k-1))/3;
end
for k=1:N-1
C(2^(k-1))=16*S(2^k)/15-S(2^(k-1))/15;
end
for k=1:N-2
R(2^(k-1))=64*C(2^k)/63-C(2^(k-1))/63;
end
R
for k=1:N+1
TT(k)=T(2^(k-1));
end
for k=1:N
SS(k)=S(2^(k-1));
end
for k=1:N-1
CC(k)=C(2^(k-1));
end
for k=1:N-2
RR(k)=R(2^(k-1));
end
('梯形计算结果')
TT
('辛普森计算结果')
SS
('柯特斯计算结果')
CC
('龙贝格计算结果')
RR
%输入被积函数f=sin(x)/x
%输入积分区间[a b]=[0 1]
%输入整数n=3
转载本文请联系原作者获取授权,同时请注明本文来自殷春武科学网博客。
链接地址:http://blog.sciencenet.cn/blog-748007-751150.html
上一篇:数值分析--拉格朗日插值matlab程序
下一篇:数值分析-----牛顿插值法matlab程序