Благодаря вашей особой структуре интегрального выражения вы можете переписать вложенный интеграл в произведение интегралов.
Таким образом, приведенное ниже решение может быть примером (со случайным начальным числом set.seed(1)
) для вас:
g <- Vectorize(function(ker) {integrate(ker,0,1)}$value)
gE <- function(ker) {integrate(function(x) x*ker(x),0,1)}$value
res1 <- prod(c(gE(kernel1),g(c(kernel2,kernel3,kernel4))))
таким, что
> res1
[1] 0.01559343
Вложенный Integral : вам нужно сначала переписать вашу функцию f
, то есть
f <- function(x1,x2,x3,x4) {
return(x1*kernel1(x1)*kernel2(x2)*kernel3(x3)*kernel4(x4))
}
res2 <- integrate(Vectorize(function(x4)
integrate(Vectorize(function(x3,x4)
integrate(Vectorize(function(x2,x3,x4)
integrate(f,0,1,x2,x3,x4)$value),
0,
1,
x3,
x4)$value),
0,
1,
x4)$value),
0,
1)$value
так, чтобы
> res2
[1] 0.01559343