当前位置:
文档之家› 蒙特卡洛方法在材料学中的应用讲解
蒙特卡洛方法在材料学中的应用讲解
是蒙特卡罗方法研究的一个重要内容。如果得到[0,1]区间均匀 分布的随机数,则任何区间[a,b]之内的随机数都可以得到:
[0,1]
R a b a
随机数的要求:
1,足够多个随机数能遍布[0,1]范围,非周期性,遍历性。 2,在[0,1]中每个小区间出现的机会相等,等概率性。 并不是一个简单的问题。stdlib.h里面的random()函数可以在低 精度的情况下使用。
蒙特卡洛方法
蒙特卡罗方法又称统计模拟(Statistical Simulation)方 法,它用随机数对问题的概率模型进行数值模拟从而 获得问题的解。
蒙特卡洛方法的由来
• 是由Metropolis在二次世界大战期间提出的:Manhattan计 划,研究与原子弹有关的中子输运过程;
• Monte Carlo是摩纳哥(monaco)的首都,该城以赌博闻名
2,随机方法要达到一定的精度,所耗时间较长。(缺点)
3,用随机方法计算,一个关键的问题是随机数的取得。(关 键)
蒙特卡洛方法的原理
蒙特卡洛模拟方法的原理是当问题或对象本身具有 概率特征时,可以用计算机模拟的方法产生抽样结 果,根据抽样计算统计量或者参数的值;随着模拟 次数的增多,可以通过对各次统计量或参数的估计 值求平均的方法得到稳定结论。
(一)随机数表
为了产生随机数,可以使用随机数表。随机数表是 由0,1,…,9十个数字组成,每个数字以0.1的等 概率出现,数字之间相互独立。这些数字序列叫作 随机数字序列。如果要得到n位有效数字的随机数, 只需将表中每n个相邻的随机数字合并在一起,且 在最高位的前边加上小数点即可。例如,某随机数 表的第一行数字为7634258910…,要想得到三位有 效数字的随机数依次为0.763,0.425,0.891。
用物理方法产生的随机数序列无法重复实现(缺 点),不能进行程序复算,给验证结果带来很大 困难。而且,需要增加随机数发生器和电路联系 等附加设备,费用昂贵。因此,该方法也不适合 在计算机上使用。
(三)伪随机数
在计算机上产生随机数最实用、最常见的方法是数学方法, 即用如下递推公式:
nk T ( n , n1 ,, nk1 ), n 1,2,
蒙特卡洛的模拟步骤
1.根据提出的问题构造一个简单、适用的概率模型或随 机模型,使问题的解对应于该模型中随机变量的某些 特征(如概率、均值和方差等),所构造的模型在主 要特征参量方面要与实际问题或系统相一致
2 .根据模型中各个随机变量的分布,在计算机上产生 随机数,实现一次模拟过程所需的足够数量的随机数。 通常先产生均匀分布的随机数,然后生成服从某一分 布的随机数,方可进行随机模拟试验。
因为随机数表需在计算机中占有很大内存,而且也 难以满足蒙特卡罗方法对随机数需要量非常大的要 求,因此,该方法不适于在计算机上使用。
(二)物理方法产生随机数
用物理方法产生随机数的基本原理是:利用某些 物理现象,在计算机上增加些特殊设备,可以在 计算机上直接产生随机数。这些特殊设备称为随 机数发生器。用来作为随机数发生器的物理源主 要有两种:一种是根据放射性物质的放射性,另 一种是利用计算机的固有噪声。
Nicholas Metropolis (1915-1999)
Monte-Carlo, Monaco
掷针实验(蒲丰实验)
为了求得圆周率π值,在十九世纪后期,有很多人作了这样 的试验:将长为2l的一根针任意投到地面上,用针与一组相 间距离为2a( l<a)的平行线相交的频率代替概率P,再利 用准确的关系式:
由于这两个问题的存在,常称用数学方法产生的随机数 为伪随机数。
(四)利用计算机产生随机数的方法:
1, 乘方取中法:
设x0为一个4s位数。把x02截头去尾,只保留中间2s位,作为 数列的下一个数x1。
对于十进制:
xn1
MOD
xn2 10s
,102s
——MOD是求余数运算。则[0,1]区间的随机数为:
经常使用的是k=1的情况,其递推公式为:
n1 T (n )
用数学方法产生的随机数,存在两 个问题:
1, 递推公式和初始值确定后,整个随机数序列便被唯一确 定。不满足随机数相互独立的要求。
2, 由于随机数序列是由递推公式确定的,而在计算机上所 能表示的[0,1]上的数又是有限的,因此,这种方法产生 的随机数序列就不可能不出现无限重复。对于k=1的情况, 只要有一个随机数重复,其后面的随机数全部重复,这与 随机数的要求是不相符的。
3. 根据概率模型的特点和随机变量的分布特性,设计和 选取合适的抽样方法,并对每个随机变量进行抽样(包 括直接抽样、分层抽样、相关抽样、重要抽样等)。
4.按照所建立的模型进行仿真试验、计算,求出问题的 随机解。
5. 统计分析模拟试验结果,给出问题的概率解以及解的 精度估计。
[0,1]区间均匀分布的随机数
P 2l
a
求出π值
2l 2l ( N )
aP a n
其中N为投计次数,n为针与平行线相交次数。这就是古典 概率论中著名的蒲丰问题。
一些人进行了实验,其结果列于下表 :
实验者
年份 投计次数 π的实验值
沃尔弗(Wolf) 1850 5000
斯密思(Smith) 1855 3204
的范围限于[0,a],夹
角θ的范围限于[0,π]。
在此情况下,针与平行线
相交的数学条件是x ≤
l ·sinθ针在平行线来自的位置则投针N次,相交次数为n,则相交的概率为:
P 0
l sind a
2l
a
n N
2l 2l ( N )
aP a n
说明:
1,用随机方法可以解决一些比较难于用确定性方法解决的问 题。(优点)
福克斯(Fox)
1894 1120
拉查里尼 (Lazzarini)
1901 3408
3.1596 3.1553 3.1419 3.1415929
设针投到地面上的
位置可以用一组参数 (x,θ)来描述,x为针 中心的坐标,θ为针与
平行线的夹角,如图所 示。
任意投针,就是意味
着x与θ都是任意取的,但x