Monte Carlo exp(-x^2) 从 -Infinity 到 +Infinity 的积分

Monte Carlo Integration of exp(-x^2) from -Infinity to +Infinity

我必须积分 ∫(-∞)^∞〖e^(-x^2 ) dx,我不知道如何解决极限,我目前的结果还差得远,这是我的代码:

`ok<-function(x) exp(-x^2)
set.seed(999)
n.sim<-10^5
x1<-ok(runif(n.sim))
theta1<-mean(x1)
theta1
[1] 0.7468196 `

您可以为 runif() 指定下限和上限。您需要使限制足够大以捕获分布的尾部(默认的 (0,1) 范围绝对不够大!)但您需要使其足够小以实现良好的覆盖。 +/- 3 似乎是合理的(基于我们已经知道的正态分布的尾部......)你还必须乘以域的大小......

set.seed(101)
mean(exp(-(runif(1e7,-3,3))^2))*6
## [1] 1.771848

integrate()比较:

integrate(function(x)exp(-x^2), -3,3)
## 1.772415 with absolute error < 6.4e-11