R中的双重积分与附加参数

时间:2014-05-28 01:57:16

标签: r

我在这个问题中学到了calculating double integrals in R quickly如何进行双积分。

我的问题是当函数还有一个参数时。 请参阅示例。

z = 2
fun0 = function(x,y) { tan(x+y)*z }
fun01 = integrate(function(y) { 
   sapply(y, function(y) {
      integrate(function(x) fun0(x,y), -.5, y)$value
   })
}, 0, .5)$value

结果如下。

 > fun01
[1] 0.1447771

我想把这个'fun01'变成z的函数。

2 个答案:

答案 0 :(得分:2)

这个怎么样

fun0 = function(x,y,z) { tan(x+y)*z }
fun01 <- function(z) {
    integrate(function(y) { 
        sapply(y, function(y) {
            integrate(function(x) fun0(x,y,z), -.5, y)$value
        })
    }, 0, .5)$value
}

fun01(2)

只需将z移出全球环境,然后根据需要将其传递给您。

答案 1 :(得分:0)

发布此问题后,我想我找到了答案。

fun0 = function(x,y,z) { tan(x+y)*z }
fun01 = function(z) {
  integrate(function(y,z) {
    sapply(y, function(y) {
      integrate(function(x,z) fun0(x,y,z), -.5, y, z=z)$value
    })
  }, 0, .5, z=z )$value
}

它的工作原理如下。

> fun01(2)
[1] 0.1447771
> fun01(3)
[1] 0.2171656