1 / 5
文档名称:

蒙特卡洛方法与定积分计算.doc

格式:doc   大小:121KB   页数:5页
该资料是网友上传,本站提供全文预览,预览什么样,下载就什么样,请放心下载。
点击预览全文
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

蒙特卡洛方法与定积分计算.doc

上传人:zxwziyou8 2018/7/11 文件大小:121 KB

下载得到文件列表

蒙特卡洛方法与定积分计算.doc

文档介绍

文档介绍:蒙特卡洛方法与定积分计算
作者信息:来自中央财经大学;统计学专业。
常规引用方式
邓一硕. 蒙特卡洛方法与定积分计算. 统计之都, . URL: -carlo-method-pute-integration/.
BibTeX引用
***@ARTICLE{,
AUTHOR = {邓一硕},
TITLE = {蒙特卡洛方法与定积分计算},
JOURNAL = {统计之都},
YEAR = {2010},
month = {03},
URL = {-carlo-method-pute-integration/},
}
本文讲述一下蒙特卡洛模拟方法与定积分计算,首先从一个题目开始:设,用蒙特卡洛模拟法求定积分的值。
随机投点法
设服从正方形上的均匀分布,则可知分别服从[0,1]上的均匀分布,且相互独立。记事件,则的概率为
即定积分的值就是事件出现的频率。同时,由伯努利大数定律,我们可以用重复试验中出现的频率作为的估计值。即将看成是正方形内的随机投点,用随机点落在区域中的频率作为定积分的近似值。这种方法就叫随机投点法,具体做法如下:
图1 随机投点法示意图
1、首先产生服从上的均匀分布的个随机数( 为随机投点个数,可以取很大,如)并将其配对。
2、对这对数据,记录满足不等式的个数,这就是事件发生的频数,由此可得事件发生的频率,则。
举一实例,譬如要计算,模拟次数时,R代码如下:
n=10^4;
x=runif(n);
y=runif(n);
f=function(x)
{
exp(-x^2/2)/sqrt(2*pi)
}
mu_n=sum(y<f(x));
J=mu_n/n;
J
模拟次数时,令,其余不变。
定积分的精确值和模拟值如下:
表1
精确值






注:精确值用integrate(f,0,1)求得
扩展
如果你很细心,你会发现这个方法目前只适用于积分区间,且积分函数在区间上的取值也位于内的情况。那么,对于一般区间上的定积分呢?一个很明显的思路,如果我们可以将与建立代数关系就可以了。
首先,做线性变换,令,此时,
,。
进一步如果在区间上有,令
,
则。此时,可以得到。
其中,,。
这说明,用随机投点法计算定积分方法具有普遍意义。
举一个实例,求定积分。
显然,,由于在上时单调减函数,所以,。R中代码为
a=2;
b=5;
g=function(x)
{
exp(-x^2/2)/sqrt(2*pi);
}
f=function(y)
{
(g(a+(b-a)*y)-c)/(d-c);
}
c=g(5);d=g(2);s_0=(b-a)*(d-c);
n=10^4;
x=runif(n);y=runif(n);
mu_n=sum(y<=f(x));
J=mu_n/n;
J_0=s_0*J+c