变步长梯形法求积分matlab程序,变步长复化辛普森公式计算积分
变步长复化辛普森公式计算积分matlab编程2. 编写用变步长复化辛普森公式计算积分 baf(x)dx 的程序。1用上面编写的程序计算下列积分并分析计算结果 (1)0cosxdx(2)0xcosxdx(3) 220xdx程序:function S=bianfuhuasimpson(fx,a,b,eps,M)% 变步长复合simpson求积公式% 调用...
变步长复化辛普森公式计算积分 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.9f\n',n,S2,abs(S2-S1)); if abs(S2-S1)
break;
else
T1=T2;
S1=S2;
n=2*n;
end
end
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)