【问题标题】:compute multidimensional integral in R of matrix integrand计算矩阵被积函数 R 中的多维积分
【发布时间】:2019-11-20 15:39:27
【问题描述】:

我正在尝试计算矩阵的双积分,我希望结果是矩阵

fn <- function(u, z){
  h <- function(z) exp(sum(z*u))
  res <- h(z)
  uut <- u %*% t(u) 
  return(res * uut)
}

I <- cubature::cubintegrate(f = fn, lower = c(-3.5,-3.5), upper = c(4,4), method = "cuhre", z = 0.5)

如您所见,fn 的输出是具有 u 维的方阵,这是我所期望的,但由于某种原因,我只使用 cubature::cubintegrate 和参数 fDim =1 得到一个标量。如果我更改 fDim = 4,我会得到具有四个值的向量,但我不确定从该向量创建矩阵是否正确。

有没有办法计算积分并得到方阵?非常感谢您的帮助。

【问题讨论】:

    标签: r integral


    【解决方案1】:

    让我们取一个简单的被积函数,我们知道它的积分值:

    fn <- function(u){
      u %*% t(u) 
    }
    
    cubature::cubintegrate(f = fn, lower = c(0,0), upper = c(1,1), method = "cuhre", 
                           fDim = 4)$integral
    # [1] 0.3333333 0.2500000 0.2500000 0.3333333
    
    # integral_0^1 integral_0^1 x^2 dxdy = 1/3
    # integral_0^1 integral_0^1 x*y dxdy = 1/2*1/2 = 1/4
    

    所以看来fDim = 4 给出了很好的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-10
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 2015-09-03
      • 2018-10-06
      • 2011-02-15
      相关资源
      最近更新 更多