【问题标题】:double integration in R with additional argumentR中带有附加参数的双重积分
【发布时间】:2014-05-28 10:03:20
【问题描述】:

我在这个问题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 的函数。

【问题讨论】:

    标签: r


    【解决方案1】:

    这个怎么样

    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 带出全局环境,然后将其传递到您需要的地方。

    【讨论】:

      【解决方案2】:

      刚刚发布了这个问题,我想我找到了答案。

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-28
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        • 2014-07-27
        • 2019-10-08
        • 1970-01-01
        相关资源
        最近更新 更多