我正在做一些整合到一個使用integrate
循環,我想出了一個我無法理解的錯誤既沒有擺脫。這裏是一個MWE我可以提取:積分:積分可能發散
u_min = 0.06911363
u_max = 1.011011
m = 0.06990648
s = 0.001092265
integrate(f = function(v){pnorm(v, mean = m, sd = s, lower.tail = FALSE)}, u_min, u_max)
這將返回一個錯誤「的Integrale的可能是發散」這顯然是錯誤的。我試圖修改參數一點點,得到了這個工作,例如:
u_min <- 0.07
u_max <- 1.1
m <- 0.0699
s <- 0.00109
integrate(f = function(v){pnorm(v, mean = m, sd = s, lower.tail = FALSE)}, u_min, u_max)
我想看看與debug
的integrate
功能,但它是一個C
代碼的包裝。另外我不是正交技術的專家。我看到這個SO post,但無法從中做出任何事情。
感謝
從'integrate':'像所有的數值積分程序,這些評估上的有限集合點的 功能。如果在幾乎所有的 範圍內該函數是大致恆定的(特別是零),則結果和誤差估計可能是嚴重錯誤的[ ]。你的功能基本上總是0. – nicola
@nicola那麼你會怎麼做不會返回錯誤?我將如何解決這個問題? – Plinth
@Plinth你必須縮小函數不爲零的值周圍的間隔,看看nicola的回答低於 – clemlaflemme