Я использую cuhre из R2Cuba 1.1-0 для интеграции следующие функцииИнтеграция с cuhre
fn <- function(x) {
pnorm((-2-sum(sqrt(vecRho)*x))/sqrt(1-sum(vecRho)))*prod(dnorm(x))
}
где vecRho вектор из 6 чисел от 0 до 0,1, т.е.
vecRho<-runif(6,0,0.1)
По определению подынтегральное выражение fn находится между 0 и 1. Ожидается, что интеграция будет положительной. Однако, используя cuhre результат становится отрицательным, когда длина vecRho превышает 5.
NDIM<-length(vecRho)
cuhre(NDIM, 1, fn,
flags = list(verbose =0),
lower = rep(-10,NDIM),
upper = rep(10,NDIM))$value
[1] -0.4738284
Кроме того, когда длина vecRho> = 6 абсолютного значения интеграции возрастает как длину vecRho увеличивается.
Есть ли что-то, что я могу сделать, чтобы исправить это? Благодаря!
Неясно, что это значит 'прод (dnorm (х))'. Вам действительно нужен ПРОДУКТ всех гауссовых ядер? –
Да, prod (dnorm (x)) - функция плотности. Так как все переменные независимы, то плотность нормального распределения n-dim-ванов является эффектом dnorm (x). – Lamothy