-1

是否可以对任何 matlab 积分函数使用向量限制?由于程序的速度,我必须避免使用 for 循环。你能给我一个关于做的线索吗

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

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

4

1 回答 1

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))

我希望这有帮助。

于 2013-02-07T16:12:28.753 回答