Я использую функцию интегрирования R, но подынтегральное выражение доставляет мне некоторые проблемы (у него есть особенность). Учти это,
distrib <- function(x){
dnorm(x, mean=700,sd=50)
}
phi <- function(nu, epsilon=20, maxi=Inf){
fun <- function(nup) {
lambdap <- 1e7/nup
distrib(lambdap) / (nup*(nup - nu))
}
# first part: from epsilon to nu - epsilon
I1 <- integrate(fun, epsilon, nu-epsilon, rel.tol = 1e-8,
subdivisions = 200L)
# second part: from nu + epsilon to Infty
I2 <- integrate(fun, nu+epsilon, maxi, rel.tol = 1e-8,
subdivisions = 200L)
I1$value + I2$value
}
x <- seq(1e7/500, 1e7/1000, length=200)
phi1 <- sapply(x, phi)
phi1 <- sapply(x, phi, epsilon=5)
#Error in integrate(fun, epsilon, nu - epsilon, rel.tol = 1e-08, subdivisions = #200L) :
# the integral is probably divergent
Есть ли лучший способ вычисления таких основных значений в R, чем играть с параметром отсечки и настраивать его вручную, пока он не даст результат (не обязательно точный)?
rel.tol = 1e-6
он сходится. - person agstudy   schedule 07.03.2013/(nup*(nup-nu))
- person Floris   schedule 07.03.2013