(MATLAB)理解quadl与quadv

时间:2012-02-21 18:30:02

标签: 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调用),从而通过计算提高性能?

2 个答案:

答案 0 :(得分:2)

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

您获得的答案质量可能取决于您所假设的功能。您的测试fun看起来像什么?

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

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

http://en.wikipedia.org/wiki/Gaussian_quadrature

答案 1 :(得分:2)

如果您查看quadlquadv的帮助,您会发现quadl使用不同的算法来集成该功能。

数值分析几乎从未产生完美的结果,因此您不能指望获得相同的结果。