蒲丰投针――MonteCarlo算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

蒲丰投针 ―― Monte Carlo 算法

背景:

蒙特卡罗方法(Monte Carlo ),也称统计模拟方法,是在二次世界大战期间随着科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为基础的一类非常重要的数值计算方法。蒙特卡罗方法在应用物理、原子能、固体物理、化学、生态学、社会学以及经济行为等领域中得到广泛利用。

蒙特卡罗方法的名字来源于世界著名的赌城 —— 摩纳哥的蒙特卡罗。其历史起源可追溯到1777年法国科学家蒲丰提出的一种计算圆周的方法 —— 随机投针法,即著名的蒲丰投针问题。

问题:

设在平面上有一组平行线,间距为d ,把一根长L 的针随机投上去,则这根针和平行线相交

的概率是多少?(其中 L < d )

分析:由于 L < d ,所以这根针至多只能与一条平行线相交。设针的中点与最近的平行线之间的距离为 y ,针与平行线的夹角为 (0 )。

相交情形 不相交情形

易知针与平行线相交的充要条件是:

sin 2

L

y x θ≤=

由于1

[0,

], [0, ]2

y d θπ∈∈,且它们的取值均满足平均分布。建立直角坐标系,则针与平行线的相交条件在坐标系下就是曲线所围成的曲边梯形区域(见右图)。所以有几何概率可知针与平行线相交的概率是

sin d 2212

L

L p d d π

θθππ=

=⎰

Monte Carlo 方法:

随机产生满足平均分布的 y 和

,其中1

[0,

], [0, ]2

y d θπ∈∈,判断 y 是否在曲边梯形内。重复上述试验,并统计 y 在曲边梯形内的次数 m ,其与试验次数 n 的比值即为针与平行线相交的概率的近似值。

clear;

n = 100000; L = 1; d = 2; m = 0;

for k = 1 : n

theta = rand(1)*pi; y = rand(1)*d/2;

if y < sin(theta)*L/2

m = m + 1; end end

fprintf('针与平行线相交的概率大约为 %f\n', m/n)

计算π的近似值

利用该方法可以计算

的近似值:

sin d 22 2

2 1n L

L m p d m d L d n π

θθπππ⇒≈=

=≈⎰

下面是一些通过蒲丰投针实验计算出来的

的近似值:

实验者 年代 投掷次数 相交次数 圆周率估计值 沃尔夫 1850 5000 2531 3.1596 史密斯 1855 3204 1219 3.1554 德摩根 1680 600 383 3.137 福克斯 1884 1030 489 3.1595 拉泽里尼 1901 3408 1808 3.1415929 赖纳

1925

2520

859

3.1795

蒲丰投针问题的重要性并非是为了求得比其它方法更精确的π值,而是在于它是第一个用几何形式表达概率问题的例子。计算π的这一方法,不但因其新颖,奇妙而让人叫绝,而且它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。

相关文档
最新文档