matlab积分中的向量值极限
是否可以对任何matlab积分函数使用向量极限?由于我的程序的速度,我不得不避免for循环。你能给我一点做什么的线索吗matlab积分中的向量值极限,matlab,Matlab,是否可以对任何matlab积分函数使用向量极限?由于我的程序的速度,我不得不避免for循环。你能给我一点做什么的线索吗 k=0:5 f=@(x)x^2 quad(f,k,k+1) 如果有人需要,我找到了我问题的答案:我将根据我使用quad函数的经验,尝试给你一个答案 从这一点开始: k=0:5; f=@(x) x.^2; 请注意您的f定义(不正确)和我的定义(正确)之间的差异 如果您只想在(0,5)范围内集成f,您可以轻松调用 quad(f,k(1),k(end)) 如果没有handle函
k=0:5
f=@(x)x^2
quad(f,k,k+1)
如果有人需要,我找到了我问题的答案:我将根据我使用
quad
函数的经验,尝试给你一个答案
从这一点开始:
k=0:5;
f=@(x) x.^2;
请注意您的f
定义(不正确)和我的定义(正确)之间的差异
如果您只想在(0,5)
范围内集成f
,您可以轻松调用
quad(f,k(1),k(end))
如果没有handle函数,您可以通过使用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))
我希望这能有所帮助。但你是说
0
和5
之间的积分是积分极限吗?这与我在下文中给出的逐步积分的解决方案完全相同。谢谢你的回复,但我认为把“ii”也带到一些我想要避免的“循环”中:(通常arrayfun
是一个很好的折衷方案,可以加快MATLAB代码的速度。顺便说一句,除了我建议的方法之外,也许还有其他几种方法。