2017-08-28 42 views
1

我想計算下面的積分,即積分內有積分。計算R束中的定積分誤差

integrate(function(v){ 
    integrate(function(s){ 
    pnorm(qnorm(v)-qnorm(s)) 
    },0,1)$value 
},0,1) 

不幸的是我所有的時間得到兩種:

Error in integrate(function(v) { : 
    evaluation of function gave a result of wrong length 

或:

Error in integrate(function(s) { : maximum number of subdivisions reached 

回答

0

的錯誤,因爲integrate需要一個量化的功能。解決方法是在上部函數週圍使用Vectorize

integrate(Vectorize(function(v){ 
    integrate(function(s){ 
    pnorm(qnorm(v)-qnorm(s)) 
    },0,1)$value 
}),0,1) 

## 0.5 with absolute error < 5.6e-15