library(pbivnorm)
rho <- 0.5
f1 <- function(x, y) {
pbivnorm(log(x)-10, log(y)-10, rho)*(exp(-(log(x)-10)^2/2)/(sqrt(2*pi)*x))*(exp(-(log(y)-10)^2/2)/(sqrt(2*pi)*y))
}
integration1 <- round(integrate(function(y) {
sapply(y, function(y) {
integrate(function(x) f1(x,y), 0, Inf, rel.tol = 1e-12)$value
})
}, 0, Inf, rel.tol = 1e-12)$value, 10)
该积分应该是0.3左右,但是R给出0。有人可以指出这个问题吗? R中积分的最佳功能是什么?非常感谢。
Package cubature
可以解决给出预期结果的问题。该函数必须重写为一个自变量函数,并且x
和y
的值在函数主体中设置。