matlab积分中的向量值限制

时间:2013-02-07 15:56:59

标签: matlab quad

是否可以将矢量限制用于任何matlab集成功能?由于程序的速度,我必须避免for循环。能不能给我一个关于做什么的线索

k=0:5
f=@(x)x^2
quad(f,k,k+1)

如果有人需要,我找到了我的问题的答案:quad with vector limit

1 个答案:

答案 0 :(得分:1)

根据我对quad函数的经验,我会尝试给你一个答案。

从这开始:

k=0:5;
f=@(x) x.^2;

注意f定义(不正确)和我的(正确)之间的差异。

如果您只想在f范围内整合(0,5),可以轻松致电

quad(f,k(1),k(end))

如果没有句柄功能,您可以通过使用trapz以不同的方式获得相同的结果:

x = 0:5;
y = x.^2;
trapz(x,y)

相反,如果您想在小范围[k(i),k(i+1)]中执行逐步整合,则可以输入

arrayfun(@(ii) quad(f,k(ii),k(ii+1)),1:numel(k)-1)

为了方便起见,请注意

sum(arrayfun(@(ii) quad(f,k(ii),k(ii+1)),1:numel(k)-1)) == quad(f,k(1),k(end))

我希望这会有所帮助。