变步长梯形法求积分matlab程序,变步长复化辛普森公式计算积分

变步长复化辛普森公式计算积分 matlab编程

2. 编写用变步长复化辛普森公式计算积分 b

af(x)dx 的程序。

1用上面编写的程序计算下列积分并分析计算结果 (1

1-22-jpg_6_0_______-24-0-0-24.jpg

)

0cosxdx (2

1-14-jpg_6_0_______-17-0-22-17.jpg

)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

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值