概述
变步长复化辛普森公式计算积分 matlab编程
2. 编写用变步长复化辛普森公式计算积分 b
af(x)dx 的程序。
1用上面编写的程序计算下列积分并分析计算结果 (1
)
0cosxdx (2
)0xcosxdx (3) 220xdx
程序:
function S=bianfuhuasimpson(fx,a,b,eps,M)
% 变步长复合simpson求积公式
% 调用方式: S=fuhuasimpson(@fx,a,b,epsilon)
% fx -- 求积函数(函数文件)
% a, b -- 求积区间
% eps -- 计算精度
% M--最大允许输出划分数
n=1;
h=(b-a)/n;
T1=h*(feval(fx,a)-feval(fx,b))/2;
Hn=h*feval(fx,(a+b)/2);
S1=(T1+2*Hn)/3;
n=2*n;
% 最好与倒数第三行保持一致(变步长)
while n<=M
T2=(T1+Hn)/2;
Hn=0;
h=(b-a)/n;
for j=1:n
x(j)=a+(j-1/2)*h;
y(j)=feval(fx,x(j));
Hn=Hn+y(j);
end
Hn=h*Hn;
S2=(T2+2*Hn)/3;
fprintf(' n=%2d S2=%-12.9f S2-S1=%-12.9fn',n,S2,abs(S2-S1)); if abs(S2-S1)
break;
else
T1=T2;
S1=S2;
n=2*n;
end
end
最后
以上就是精明天空为你收集整理的变步长梯形法求积分matlab程序,变步长复化辛普森公式计算积分的全部内容,希望文章能够帮你解决变步长梯形法求积分matlab程序,变步长复化辛普森公式计算积分所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复