我正在尝试为矩阵计算双积分,我希望结果为矩阵
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更改,则会得到具有四个值的向量,并且不确定是否可以从该向量创建矩阵。
有没有一种方法可以计算积分并获得平方矩阵?非常感谢您的帮助。
答案 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
给出了很好的结果。