使用MATLABD数值法计算定积分或反常积分

trapz是用梯形法求积分,要求输入一个数列,或两个一样长的数列,而最后输出积分值。

cumtrapz输入与trapz一样,但是最后输出的是与输入等长的数列,其最后一个值为积分值,如果计算二重积分,而输入一个矩阵,那么cumtrapz是按照列进行计算的,最后输出矩阵的最后一行为内积分的值。此外,cumtrapz默认的积分步长为1,若要修改,只需在使用这个函数时乘以积分步长即可

dg=0.01;

x=1:0.01:2;

fun=1./x;

func=dg*cumtrapz(fun);

result=func(end);

而计算积分限为无穷时,可以将积分区间进行划分,然后将每个积分区间的计算结果相加,当某个积分区间的结果小于某个值时,停止计算。

例:

D=1;

T=1;

I=0;

a=0;

dg=0.01;

pre=10^(-5);

while T>pre

          b=a+D;

          x=a:0.01:(b-0.01);

          fun=exp(-x);

          func=dg*cumtrapz(fun);

         T=func(end);

         I=I+T;

        a=b;

        D=2*D;

end

result=I

注意:其中dg与pre决定了运算的速度,与所使用的设备有关。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值