2017-08-28 110 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