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