在矩阵被积分的R中计算多维积分

时间:2019-11-20 15:39:27

标签: r integral

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

enter image description here

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维的方阵,这是我期望的结果,但是由于某些原因,我只能使用带有参数fDim = 1的cubature :: cubintegrate从我得到标量。如果我将fDim = 4更改,则会得到具有四个值的向量,并且不确定是否可以从该向量创建矩阵。

有没有一种方法可以计算积分并获得平方矩阵?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

让我们以一个简单的整数为例,我们知道积分的值:

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给出了很好的结果。