我正在寻找比
更快的二重积分的解决方案integrate(function(y) {
sapply(y, function(y) {
integrate(function(x) myfun(x,y), llim, ulim)$value
})
}, llim, ulim)
例如
myfun <- function(x,y) cos(x+y)
llim <- -0.5
ulim <- 0.5
我找到了一个 old paper它引用了一个名为 quad2d
的 FORTRAN 程序,但除了 matlab 的一些帮助页面之外,我找不到其他任何东西。所以我正在寻找一个可以快速进行双积分(即没有 sapply 循环)并且可以从 R 调用的 C 或 FORTRAN 库。非常感谢所有想法,只要它们都与 GPL 兼容。
如果解决方案涉及从已随 R 提供的库中调用其他函数,我也很乐意听取他们的意见。
最佳答案
cubature包使用自适应算法进行 2D(和 N-D)集成。对于大多数被积函数,它应该优于更简单的方法。
关于快速计算R中的二重积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890732/