
设是
方法1,把它化为积分区间[0,1],这样就可以转化为定积分的随机模拟(I)的问题。具体为
方法2,经变换,
由大数定律可知,若
显然,若
有了上面的准备,这样我们便得到
(1)生成随机数
(2)令
(3)
例子1 用R语言给出
Integral<-function(a,b,n=1000){#n表示生成的随机数的个数
u<-runif(n)
x=a+(b-a)*u
y<-exp(-x^2/2)
z<-(b-a)*mean(y)
z
}
Integral(1,5,1000)#运行得到结果如下
> Integral(1,5,100000)
[1] 0.3986286
作业
(1) 用MC方法估计
参考答案:
Integral<-function(a,b,n=1000){#n表示生成的随机数的个数
u<-runif(n)
x=a+(b-a)*u
y<-1/log(x)
z<-(b-a)*mean(y)
z
}> Integral(3,10,100000)
[1] 4.007214
(2) 用MC方法估计