(MATLAB)了解quadl与quadv

(MATLAB)了解quadl与quadv,matlab,math,Matlab,Math,我想知道为什么这样的电话 G = const * quadv(fun,a,b,tol) 返回不同于的值 lenB = length(b) for 1 = 1:lenB G(i) = const .* quadl(fun,a,b,tol) end 如何实现两个调用返回相同的值 编辑: 我也希望对阵列更快地运行quadl。因此,我会提出上述问题: 如果可能,如何为阵列调用quadl(类似于上面的quadv调用),从而通过计算提高性能?Matlab的quadl使用自适应Lobatto求积

我想知道为什么这样的电话

G = const * quadv(fun,a,b,tol)
返回不同于的值

lenB = length(b)
for  1 = 1:lenB
    G(i) = const .* quadl(fun,a,b,tol)
end
如何实现两个调用返回相同的值

编辑: 我也希望对阵列更快地运行quadl。因此,我会提出上述问题:


如果可能,如何为阵列调用quadl(类似于上面的quadv调用),从而通过计算提高性能?

Matlab的
quadl
使用自适应Lobatto求积
quadv
使用自适应辛普森规则

您得到的答案的质量可能取决于您假设的函数。你的测试
乐趣是什么

我假设您向两个调用传递相同的函数、限制和容差。这意味着差异小于公差

这两种方法不同-高斯求积与辛普森法则不同:


如果查看和的帮助,您会发现
quadl
使用不同的算法来集成函数


数值分析几乎从来不会产生完美的结果,所以你不能期望得到相同的结果。

谢谢,显然这是因为底层算法。我承认,我没有注意到quadv的(隐藏)算法描述,我只是被两个函数的共同前导“quad”误导了。所以,现在的问题仍然是,如何使四边形对向量起作用,否则它的性能会非常慢。谢谢,显然这是因为算法。它没有明确说明,quadv没有使用与quadl相同的算法。我只是在函数描述中忽略了这一点。即使我阅读了手册:“在fun的定义中使用数组运算符。*、./和.^,以便可以使用向量参数对其进行计算。”以及“quadv函数将quad向量化为数组值的fun”。我也无法检索到相同的结果。