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でそのような主要な値を計算するより良い方法はありますか(必ずしも正確ではありません)