Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 快速计算R中的二重积分_C_R_Fortran_Integral - Fatal编程技术网

C 快速计算R中的二重积分

C 快速计算R中的二重积分,c,r,fortran,integral,C,R,Fortran,Integral,我在寻找一个二重积分的解,它比 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 myfun约书亚指出的pracma软件包包含一个版本的qua

我在寻找一个二重积分的解,它比

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

myfun约书亚指出的
pracma
软件包包含一个版本的
quad2d

quad2d(myfun, llim, ulim, llim, ulim)
这将使用示例函数给出与循环相同的答案(在数值公差范围内)


默认情况下,对于示例函数,
quad2d
比循环慢。如果你把
n
放下来,你可以使它更快,但我想这取决于你的函数有多平滑,以及你愿意为速度牺牲多少精度。

该软件包使用自适应算法进行2D(和n-D)积分。对于大多数被积函数,它的性能应该优于更简单的方法。

您是否考虑过:
pracma::dblquad
pracma:simpson2d
,或者cuburation和r2cumba包中的函数?对于指针,我将在本周末运行测试,看看哪一个是我最满意的。供将来参考,
cubature
方法将是:
adaptIntegrate(函数(x)cos(x[1]+x[2]),c(llim,llim),c(ulim,ulim))
。例如,Thx。我将在实际函数上测试它,因为它们有点复杂。我最需要准确度,但速度确实是个问题。我会随时告诉你最新情况。