是否可以对任何 matlab 积分函数使用向量限制?由于程序的速度,我必须避免使用 for 循环。你能给我一个关于做的线索吗
k=0:5
f=@(x)x^2
quad(f,k,k+1)
如果有人需要,我找到了我的问题的答案:quad with vector limit
是否可以对任何 matlab 积分函数使用向量限制?由于程序的速度,我必须避免使用 for 循环。你能给我一个关于做的线索吗
k=0:5
f=@(x)x^2
quad(f,k,k+1)
如果有人需要,我找到了我的问题的答案:quad with vector limit
根据我对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))
我希望这有帮助。