Monte_Carlo方法必备知识
计算物理学_蒙特卡罗方法
第八讲蒙特卡罗方法蒙特卡罗(Monte Carlo简称MC)方法又称随机抽样法(Random Sampling)、随机模拟(Random Simulation)或统计试验法(Statistic Testing)。
这个方法的起源可以追溯到十七世纪或更早的年代。
Monte Carlo 是摩纳哥(Monaco)的一个著名城市,位于地中海之滨,以旅游赌博闻名。
Von Neumann 等人把计算机随机模拟方法定名为Monte Carlo方法,显然反映了这种方法带有随机的性质。
简单地说,MC方法是一种利用随机统计规律,进行计算和模拟的方法。
它可用于数值计算,也可用于数字仿真。
在数值计算方面,可用于多重积分、线性代数求解、矩阵求逆以及用于方程求解,包括常微分方程、偏微分方程、本征方程、非齐次线性积分方程和非线性方程等。
在数字仿真方面,常用于核系统临界条件模拟、反应堆模拟以及实验核物理、高能物理、统计物理、真空、地震、生物物理和信息物理等领域。
§8.l蒙特卡罗方法的基础知识8.1.1 基本概念为了对MC方法有一点初步的认识,请先看使用MC方法的几个例子。
蒲丰投针问题:蒲丰(Buffon-法国著名数学家)在1777年发现随机投针的概率与无理数π之间的关系.这个问题是说,若在平面上画有距离为a的平行线束,向平面上投掷长为()<的针,试求针与一平行线相交的概率。
l l a这个问题的解法如下:以M表示落下后针的中点,x表M与最近一平行线的距离,ϕ表针与此线的交角,见上图。
可见,02 0≤≤≤≤/,x a ϕπ这两式决定x ϕ平面上一矩形R ;为了使针与一平行线(这线必定是与针中点M 最近的平行线)相交,充分而且必要条件是2ϕ≤sin lx 这个不等式决定R 中一个子集G 。
因此,我们的问题等价于向R 中均匀分布地掷点而求点落于G 中的概率P.根据概率的几何意义,得222sin ()ld l P a a πϕϕππ==⎰此式提供了求π值的一个方法:可以通过投针事件求得针与平行线相交概率P ,求得π值:2/()l Pa π= (8.1)若投掷次数为m ,针与平行线相交的次数为n ,那么/p n m ≈即 2/()lm an π≈于是,可用投针试验来求无理数π的近似值.下表列举了历史上若干学者投针试验计算π值的结果:射击问题(打靶游戏):设r 表示射击运动员的弹着点到靶心的距离,()g r 表示击中r 处相应的得分数(环数),分布密度函数()f r 表示该运动员的弹着点分布,它反映运动员射击水平。
蒙特卡洛方法
其中Dg s为N区域D N sDiN s的1g体(x积1(i),。x2 (这i), 是,数xs(值i))方法难以作到的。
另外,在具有随机性质的问题中,如考虑的系统 形状很复杂,难以用一般数值方法求解,而使用蒙特 卡罗方法,不会有原则上的困难。
通常,蒙特卡罗方法的误差ε定义为
N
上式中 与置信度α是一一对应的,根据问题的要 求确定出置信水平后,查标准正态分布表,就可以确 定出 。
下面给出几个常用的α与的数值:
α 0.5 0.05 0.003
0.674 1.96 3 5
关于蒙特卡罗方法的误差需说明两点:第一,蒙特
卡罗方法的误差为概率误差,这与其他数值计算方法 是有区别的。第二,误差中的均方差σ是未知的,必须 使用其估计值
• 对于任意离散型分布:
F(x) Pi xi x
• 其P离2散中,型x…1分,为布x相2,的应直…的接为概抽离率样散,方型根法分据如布前下函述:数直的接跳抽跃样点法,,P有1,
• 间接蒙特卡洛模拟方法。人为地构造出一 个合适的概率模型,依照该模型进行大量 的统计实验,使它的某些统计参量正好是 待求问题的解。
例:布冯(Buffon)投针实验
• 在平滑桌面上划一组相距为s的平行线,向 此桌面随意地投掷长度l=s的细针,那末从 针与平行线相交的概率就可以得到π的数值。
针与线相交概率
lim P
N
NXNE (X)x 2 1
xet2/2dt
x
平均值
当N充分大时,有如下的近似式
P X N E (X ) N 2 20 e t2/2 d t1
其中α称为置信度,1-α称为置信水平。
Monte Carlo 方法资料
Monte Carlo方法的基本思想
Monte Carlo 方法的基本思想是: 为了求解某个问题 , 建立一个恰 当的概率模型或随机过程 , 使得其参量(如事件的概率、随机变 量的数学期望等)等于所求问题的解 , 然后对模型或过程进行反 复多次的随机抽样试验 , 并对结果进行统计分析 , 最后计算所求 参量 , 得到问题的近似解。
③ 收敛速度与问题的维数无关 , 因此 , 较适用于求解多维问题。
④ 问题的求解过程取决于所构造的概率模型 , 而受问题条件限制的 影响较小 , 因此 , 对各种问题的适应性很强。
随机数的产生
1 随机数与伪随机数
Monte Carlo 方法的核心是随机抽样。 在该过程中往往需要各种各样分 布的随机变量其中最简单、最基本的是在[0 ,1]区间上均匀分布的 随机变量。 在该随机变量总体中抽取的子样 ξ 1 ,ξ 2 , … ,ξN 称为随 机数序列 , 其中每个个体称为随机数。 用数学的方法产生随机数是目前广泛使用的方法。 该方法的基本思想 是利用一种递推公式 :
"quantum" Monte Carlo: random walks are used to compute quantum-mechanical energies and wavefunctions, often to solve electronic structure problems, using Schrödinger’s equation as a formal starting point;
即当 N 充分大时 , 有 成立的概率等于1 , 亦即可以用 ξN 作为所求量 x 的估计值。
根据中心极限定理 , 如果随机变量 ξ的标准差 σ 不为零 , 那么 Monte Carlo 方法的误差ε为
蒙特卡罗方法
感谢观看!
蒙特卡罗方法的基础知识
1. 连续型分布 2. 离散型分布 3. 概率密度分布
a) 均匀密度分布函数 b) 正态分布 c) 指数分布
蒙特卡罗方法的基础知识
蒙特卡罗方法的基础知识
随机数和随机
02
抽样
随机数和随机抽样
用蒙特卡罗方法在计算机上模拟一个随机过程,就是要产 生满足这个随机过程概率分布的随机变量。最简单和最基础的 随机变量就是[0,1]区间上均匀分布的随机变量,这些随机变 量的抽样值成为随机数。所以以后谈到随机数,如果不加特别 说明,就是指[0,1]区间上均匀分布的随机数。其他分布的随 机变量的抽样值可借助均匀分布的随机数得到。
蒙特卡罗方法的计算过程就是用统计方法模拟实际的物理过程,它主 要是在计算机上产生已知分布的随机变量样本,以代替昂贵的甚至难以实 现的实验。蒙特卡罗方法又被看作是用计算机来完成物理实验的一种方法。
随机数和随机抽样
蒙特卡罗方法可以求解的另一类问题就是确定性问题。在 求解确定性问题时,首先要建立一个有关这个确定性问题的概 率统计模型,是所求的解就是这个模型的概率分布或数学期望; 然后对这个模型做随机抽样;最后用其算数平均值作为求解的 近似值。
因此,用蒙特卡罗方法求解问题时,首先要建立一个随机模型,然后 要构造一系列的随机变量用以摸你这个的基础知识
随机变量及其分布函数 在一定条件下发生的事件分为必然事件(必然发生)、不可能事件
(恒不发生)和随机事件(可能发生也可能不发生)。事件发生的可能性 大小用概率p表示。必然事件发生的概率为1,不可能事件的概率为0;随机 事件发生的概率为0≤p≤1.由于测量的随机误差和物理现象本身的随机性, 一次测量得到的某个值是随机的。因此,实验观测的物理量实随机变量, 被研究的物理问题是一个随机事件。通常,描写随机事件A发生的概率用 p(A)表示,显然,0≤ p(A) ≤ 1。经常碰到的随机变量有两类:一类是离散型 随机变量,这种随机变量只能取有限个数值,能够一一列举出来:另一类 是连续型随机变量,这种随机变量的可能值是连续的分布在某个区间。
Monte-Carlo模拟教程
举例
例1 在我方某前沿防守地域,敌人以一个炮排(含两门火炮) 为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地 进行了伪装并经常变换射击地点.
经过长期观察发现,我方指挥所对敌方目标的指示有50%是准 确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁 伤敌人一门火炮,有1/6的射击效果能全部毁伤敌人火炮.
蒙特卡罗方法的关键步骤在于随机数的产生, 计算机产生的随机数都不是真正的随机数(由算 法确定的缘故),如果伪随机数能够通过一系列 统计检验,我们也可以将其当作真正的随机数 使用。
rand('seed',0.1);
rand(1) %每次运ra行nd程('s序tat产e',s生um的(1值00*是clo相ck同)*r的and);
E = P(A0) = P(j=0)P(A0∣j=0) + P(j=1)P(A0∣j=1)
= 1 0 1 1 0.25 2 22
P(A1) = P(j=0)P(A1∣j=0) + P(j=1)P(A1∣j=1)
= 10 11 1 2 23 6
P(A2) = P(j=0)P(A2∣j=0) + P(j=1)P(A2∣j=1)
非常见分布的随机数的产生
• 逆变换方法
由定理 1 ,要产生来自 F(x) 的随机数,只要先 产生来自U (0,1) 随机数 u ,然后计算 F 1(u) 即 可。具体步骤如下:
(1) 生成 (0,1)上 均匀分布的随机数U。
(2) 计算 X F -1(U ) ,则 X 为来自 F(x) 分布的随机数.
蒙特卡罗方法的基本思想很早以前就被人们所发现和 利用。早在17世纪,人们就知道用事件发生的“频率” 来决定事件的“概率”。19世纪人们用蒲丰投针的方法 来计算圆周率π,上世纪40年代电子计算机的出现,特别 是近年来高速电子计算机的出现,使得用数学方法在计算 机上大量、快速地模拟这样的试验成为可能。
第七章 蒙特卡罗方法.
满足如下关系:
F ( x ) = p(ξ ≤ x ) = ∫
−∞
f ( x )dx
(1)均匀密度分布函数
在区间[a,b] 均匀密度分布定义为
⎧ 1 a≤ x≤b ⎪ f ( x) = ⎨ b − a ⎪ x < a, x > b ⎩0
其中重要的特殊情况是 [0,1] 均匀密度分布:
⎧1 f ( x) = ⎨ ⎩0
存在
则函数
f ( x)
描写了
ξ
ξ
取值
x
的概率密度
f ( x ):随机变量
的概率分布密度
-0.6 0.5 f(v) 0.4 0.3 0.2 0.1 0 0
0.5
1
1.5
2 v/vp
2.5
3
3.5
4
概率密度函数的直方图: 处于平衡状态(温度T)N个粒子麦克斯韦速率
¾ 伪随机数(赝随机数): 是指按照某种算法可以给出的似乎随机地出现的数 具有一定的周期 设其周期为 n,则第 n+l 个数就等于第一个数,此后均依次重复出现。 当然,如果周期 n 足够大,可使在整个使用过程中不表现出其周期性。 例如:计算机中的伪随机数发出器要求其周期大于计算机的记忆单元数。 具有统计性质是表征随机数品质的另一重要指标。 9 总之,对随机数要求: 随机性+分布均匀
蒙特卡罗方法的基本思想:
A.直接蒙特卡洛模拟方法 • 对求解问题本身就具有随机性(宏观物理规律具有必然性):
例如: 等离子体放电,中子在介质中的传播,核衰变过程,电子在固体中的散射等 ----按照实际问题所遵循的概率统计规律,用计算机进行直接抽样试 验,然后计算其统计参数。
直接蒙特卡洛模拟法最充分体现出蒙特卡洛方法无可比拟的特殊性 和优越性,因而在物理学的各种各样问题中得到广泛的应用 ----“计算机实验”
第六章 M onte-Carlo 方法
10
1、离散型分布随机变量的直接抽样 对一个可以取两个值的随机变量x,如果它以几率p1取值x1, 而以几率p2取值x2。则:p2=(1-p1)。如果取(0,1)间一个随机数, 若满足: x < p 1 , 则取: x = x 1
第六章 Monte-Carlo 方法 第一节 Monte-carlo 方法概述 Monte-Carlo(蒙特卡罗)是摩纳哥闻名的赌城的名字,其本意具 有“随机”、“机遇”之意,从而Monte-Carlo方法又称为随机 抽样技巧或统计模拟方法(statistical simulation method )。 是利用随机数进行数值模拟的方法。 是由Metropolis在二次世界大战期间提出的,Nouman命名。在 Manhattan计划中,研究与原子弹有关的中子输运过程。 Monte Carlo方法是现代计算技术的最为杰出的成果之一。
由于试验次数不能太少,进行大量模拟就有很大的运算量, 从而只有在计算机出现和发展后,该方法才得到有效应用,所 以说,Monte-Carlo方法是和计算机紧密联系在一起的。
5
三. Monte-Carlo 方法的适用范围非常广泛
由于空间维数的多少对于Monte-Carlo方法的影响不大,且受问 题 的条件限制小,另外用该方法解决问题所编写的程序结构简 单,所以该方法已广泛应用在许多领域。 它可以解决一些典型的数学问题, 如多重积分的计算、线性代 数方程组、线性积分方程求解、齐次线性积分方程本征值的计 算、微分方程边值的计算等; 另外生物、 物理、材料、化学、经济、通讯等 科学方面许多 复杂问题用该方法来解决相对来说比较简单。
蒙特卡洛法的基本原理
蒙特卡洛法的基本原理蒙特卡洛法(Monte Carlo method)是一种基于随机抽样的数值计算方法,用于解决难以通过解析方法或传统数学模型求解的问题。
它在物理学、化学、工程学、计算机科学、金融学、生物学等领域都有广泛应用。
本文将介绍蒙特卡洛法的基本原理,包括随机数生成、统计抽样、蒙特卡洛积分、随机漫步等方面。
一、随机数生成随机数是蒙特卡洛法中的基本元素,其质量直接影响着计算结果的准确性。
随机数的生成必须具有一定的随机性和均匀性。
常见的随机数生成方法有:线性同余法、拉斯维加斯法、梅森旋转算法、反序列化等。
梅森旋转算法是一种广泛使用的准随机数生成方法,其随机数序列的周期性长、随机性好,可以满足大多数应用的需要。
二、统计抽样蒙特卡洛法利用抽样的思想,通过对输入参数进行随机取样,来模拟整个系统的行为,并推断出某个问题的答案。
统计抽样是蒙特卡洛方法中最核心的部分,是通过对概率分布进行样本抽取来模拟随机事件的发生,从而得到数值计算的结果。
常用的统计抽样方法有:均匀分布抽样、正态分布抽样、指数分布抽样、泊松分布抽样等。
通过对这些概率分布进行抽样,可以在大量随机取样后得到一个概率分布近似于输入分布的“抽样分布”,进而求出所需的数值计算结果。
三、蒙特卡洛积分蒙特卡洛积分是蒙特卡洛法的重要应用之一。
它利用统计抽样的思想,通过对输入函数进行随机抽样,计算其随机取样后的平均值,来估算积分的值。
蒙特卡洛积分的计算精度与随机取样的数量、抽样分布的质量等因素有关。
蒙特卡洛积分的计算公式如下:$I=\frac{1}{N}\sum_{i=1}^{N}f(X_{i})\frac{V}{p(X_{i})}$$N$为随机取样的数量,$f(X_{i})$为输入函数在点$X_{i}$的取值,$V$为积分区域的体积,$p(X_{i})$为在点$X_{i}$出现的抽样分布的概率密度函数。
通过大量的样本拟合,可以估算出$I$的值接近于真实积分的值。
经典蒙特卡罗算法入门
十二、Monte Carlo 形式与一般步骤 (一)积分形式
做 Monte Carlo 时,求解积分的一般形式是:
X 为自变量,它应该是随机的,定义域为(x0, x1),f(x)为被积函数,ψ(x)是 x 的概率密 度。在计算欧式期权例子中,x 为期权到期日股票价格,由于我们计算期权价ห้องสมุดไป่ตู้的时候该期 权还没有到期,所以此时 x 是不确定的(是一随机变量),我们按照相应的理论,假设 x 的概率密度为ψ(x)、最高可能股价为 x1(可以是正无穷)、最低可能股价为 x0(可以是 0), 另外,期权收益是到期日股票价格 x 和期权行权价格的函数,我们用 f(x)来表示期权收益。
PDF 函数本身不是概率,只有对 x 的某段区间中的 PDF 积分得到的数值才有概率的含 义。CDF 是概率的意思,点 x 上 CDF 的值表示该随机变量可能取值小于 x 的概率的大小。 如图是正态分布的 PDF 和 CDF
3.到达停止条件后退出 常用的停止条件有两种,一种是设定最多生成 N 个 x,数量达到后即退出,另一种是检 测计算结果与真实结果之间的误差,当这一误差小到某个范围之内时退出。 有趣的类比:积分表达式中的积分符合类比为上式中累加符号,dx 类比为 1/N(数 学知识告诉我们积分实质是极限意义下的累加;f(x)还是它自己,积分中的ψ(x)可类比 为依据ψ(x)生成随机数 4.误差分析 Monte Carlo 方法得到的结果是随机变量,因此,在给出点估计后,还需要给出此估计 值的波动程度及区间估计。严格的误差分析首先要从证明收敛性出发,再计算理论方差,最 后用样本方差来替代理论方差。 在本课程中我们假定此方法收敛, 同时得到的结果服从正态 分布,因此可以直接用样本方差作区间估计。详细过程在例子中解释。
蒙特卡罗方法概述
因此,可以通俗地说,蒙特卡罗方法是用随机试 验的方法计算积分,即将所要计算的积分看作服从某
种分布密度函数f(r)的随机变量g(r)的数学期望
g0 g(r)f(r)dr
率rg通2(,r语过2)…,言某…,来种,r说试N,g,验(r)N从,)的,分得算将到布术相N密平应个度均的观函值察N数值个f(rr)随1中,机抽r2变,取量…N的,个值r子N(g样(r用r1)1,概,
3) 收敛速度与问题的维数无关。 小有关。
4) 具有同时计算多个方案与多 个未知量的能力。
5) 误差容易确定。
6) 程序结构简单,易于实现。
1) 能够比较逼真地描述具有随机性质 的事物的特点及物理实验过程
从这个意义上讲,蒙特卡罗方法可以部分代替物 理实验,甚至可以得到物理实验难以得到的结果。用 蒙特卡罗方法解决实际问题,可以直接从实际问题本 身出发,而不从方程或数学表达式出发。它有直观、 形象的特点。
样数N充分大时,以概率1收敛于它的期望值E(X)。
➢ 误差
蒙特卡罗方法的近似值与真值的误差问题,概率论 的中心极限定理给出了答案。该定理指出,如果随机 变零的量方序差列σX21,,即X2,…,XN独立同分布,且具有有限非
0 2(x E (X )2 ) f(x )d x
f(X)是X的分布密度函数。则
4) 具有同时计算多个方案与多个未知 量的能力
对于那些需要计算多个方案的问题,使用蒙特卡 罗方法有时不需要像常规方法那样逐个计算,而可以 同时计算所有的方案,其全部计算量几乎与计算一个 方案的计算量相当。例如,对于屏蔽层为均匀介质的 平板几何,要计算若干种厚度的穿透概率时,只需计 算最厚的一种情况,其他厚度的穿透概率在计算最厚 一种情况时稍加处理便可同时得到。
Monte-Carlo(蒙特卡洛方法)解析
常用的线性同余生成器
Modulus m 2^31-1
=2147483647
2147483399 2147483563
Multiplier a 16807
在 n 次中出现的频率。假如我们取 fn ( A) 作为 p P(A) 的估计,即 pˆ fn ( A) 。
然后取 ˆ
2l afn ( A)
作为
的估计。根据大数定律,当 n 时,
pˆ
fn ( A) a.s.
p.
从而有ˆ 2l P 。这样可以用随机试验的方法求得 的估计。历史上 afn ( A)
(2) 计算 X F -1(U ) ,则 X 为来自 F(x) 分布的随机数.
例 1 :设 X ~ U (a,b) ,则其分布函数为
0
F
(
x)
x b
a a
1,
xa a xb
xb
F -1( y) a (b a) y , 0 y 1
生成 U (0,1) 随机数 U,则 a (b - a)U 是来自
算法实现
许多程序语言中都自带生成随机数的方法, 如 c 中的 random() 函数, Matlab中的rand()函数等。 但这些生成器生成的随机数效果很不一样, 比如 c 中的函数生成的随机数性质就比较差, 如果用 c , 最好自己再编一个程序。Matlab 中的 rand() 函数, 经过了很多优化。可以产生性质很好的随 机数, 可以直接利用。
U (a,b) 的随机数。
例 2:
设 X ~ exp( ) 服从指数分布,则 X 的分布函数为:
蒙特卡罗(Monte Carlo method)方法知识详解
蒙特卡罗(Monte Carlo method)方法知识详解蒙特卡罗方法(英语:Monte Carlo method),也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。
是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。
20世纪40年代,在冯·诺伊曼,斯塔尼斯拉夫·乌拉姆和尼古拉斯·梅特罗波利斯在洛斯阿拉莫斯国家实验室为核武器计划工作时,发明了蒙特卡罗方法。
因为乌拉姆的叔叔经常在摩纳哥的蒙特卡洛赌场输钱得名,而蒙特卡罗方法正是以概率为基础的方法。
与它对应的是确定性算法。
蒙特卡罗方法在金融工程学、宏观经济学、生物医学、计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)机器学习等领域应用广泛。
一、蒙特卡罗方法的基本思想通常蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。
例如在核物理研究中,分析中子在反应堆中的传输过程。
中子与原子核作用受到量子力学规律的制约,人们只能知道它们相互作用发生的概率,却无法准确获得中子与原子核作用时的位置以及裂变产生的新中子的行进速率和方向。
科学家依据其概率进行随机抽样得到裂变位置、速度和方向,这样模拟大量中子的行为后,经过统计就能获得中子传输的范围,作为反应堆设计的依据。
另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或者随机变量的期望值。
通过随机抽样的方法,以随机事件出现的频率估计其概率,或者以抽样的数字特征估算随机变量的数字特征,并将其作为问题的解。
这种方法多用于求解复杂的多维积分问题。
假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。
蒙特卡罗方法基于这样的思想:假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。
蒙特卡洛方法的基本概念与应用
蒙特卡洛方法的基本概念与应用蒙特卡洛方法(Monte Carlo method)是一种基于随机取样的计算方法,通过大量的随机实验来近似计算数学问题。
它的基本思想是通过生成随机数来模拟实验过程,然后利用实验结果进行统计分析,从而得到所求解的数值。
一、蒙特卡洛方法的基本原理蒙特卡洛方法的基本原理是基于概率统计的思想,通过随机实验来获取近似计算结果。
其基本步骤如下:1. 建立数学模型:首先要确定问题的数学模型,即问题的数学表达式或方程。
2. 生成随机变量:通过随机数生成器生成服从特定分布的随机变量,这些随机变量将作为模型中的变量进行计算。
3. 执行实验模拟:根据模型和生成的随机变量,进行大量实验模拟并记录每次实验的结果。
4. 统计分析:对实验结果进行统计分析,如计算平均值、方差等。
5. 得出结论:利用统计分析的结果进行推断,得到问题的近似解。
二、蒙特卡洛方法的应用领域蒙特卡洛方法广泛应用于科学、工程、金融等领域,以解决大量变量和复杂概率分布下的问题。
以下是蒙特卡洛方法的一些应用场景:1. 金融领域:用于期权定价、风险度量和投资组合优化等问题。
例如,通过大量模拟实验可以计算期权的风险价值,从而评估期权的风险敞口。
2. 物理学领域:用于模拟粒子的轨迹、计算物理量等。
例如,在高能物理实验中,经常用蒙特卡洛方法来模拟粒子在探测器中的传输和相互作用过程。
3. 工程领域:用于模拟流体力学、应力分析等问题。
例如,在航空航天领域中,可以利用蒙特卡洛方法来计算飞机飞行过程中的结构应力。
4. 生物学领域:用于基因分析、蛋白质折叠等。
例如,在分子生物学中,可以通过蒙特卡洛方法来模拟蛋白质分子的折叠过程,以探索其结构和功能。
5. 计算机科学领域:用于算法优化、机器学习等问题。
例如,在优化算法中,可以利用蒙特卡洛方法来评估算法的性能,并选择最佳参数配置。
三、蒙特卡洛方法的优缺点蒙特卡洛方法具有以下优点:1. 灵活性:适用于各种复杂的问题,不受问题形式和维度的限制。
蒙特卡罗法(Monte Carlo method)
实验十二计算机仿真实验实验目的:1. 掌握全概率公式与贝叶斯公式;2. 了解计算机仿真方法;3. 了解蒙特卡罗法(Monte Carlo method), 具有初级编程能力.实验原理:全概率公式: 设A 1, A 2, …, A n 为两两互斥事件,B 是A 1 + A 2 + … + A n 的子事件,则P(B )=P(A 1)P(B |A 1) + P(A 2)P(B |A 2) + … + P(A n )P(B |A n ).贝叶斯公式: P(A k |B )= P(A k )P(B | A k )/P(B ).计算机仿真: 就是在计算机上模拟各种实际系统的运行过程. 计算机仿真通常用来产生规定分布的随机变量.对于任意随机变量ξ ,其分布函数为F (x ),设 η = F (ξ )的分布函数为G (y ),则G (y ) = P{η ≤y }= P{F (ξ ) ≤y }= P{ξ ≤F -1( y )}= y ,这说明η 服从[0,1]的均匀分布.一般的编程语言都提供了均匀分布随机数发生器.应用随机数模拟试验的方法通常称为蒙特卡罗法(Monte Carlo method). 蒙特卡罗法不仅适用于处理随机性问题, 如存贮、排队、质量检验、市场营销、社会救急、生态竞争和传染病等问题;也可处理定性问题, 如计算多重积分、解积分方程及微分方程、解整数规划(特别是非线性整数规划)等.应用蒙特卡罗法解规划问题的基本思想是:先估计各个变量的大致取值范围,每次试验从中随机取出一个样本点,然后判断它是否为可行点. 若是则将其目标函数值与上一次的目标函数值相比较,记录下较优目标函数值与其样本点;否则重新抽样。
直到试验次数达到指定值或可行点数达到指定值为止.实验内容:1. 设有两个口袋,甲袋中盛有两个白球,一个黑球,乙袋中盛有一个白球,两个黑球.由甲袋任取一个球放入乙袋,再从乙袋中取出一个球.若从乙袋中取出的球是白球,那么从甲袋中取出放入乙袋的球是白球还是黑球? 用计算机模拟上述过程1000次,问理论判断是正确的有多少次?2. 用计算机模拟随机变量ξ ~ϕ (x ) =⎩⎨⎧≤>-0,0,0,e 55x x 的取值200次. 3. 用计算机模拟随机变量ξ ~N (120,102 )的取值800次,并画出统计直方图.4. 应用蒙特卡罗法解非线性规划问题:max z = - 2x 2 - y 2 + xy + 8x + 3ys.t. 3 x + y = 10x ≥0, y ≥0.C 语言简介(仅介绍本实验所用到的)1.标识符标识符是由程序员定义的单词,如函数名、变量名等. 标识符是由大小写字母、数字和下划线组成的,并以字母和下划线开始.2.关键字void (无值型) char (字符型) int (整数型) long (长整数型) float (浮点型) double (双精度浮点型)if (如果) else (或者)for (循环) while (循环) break (满足一定的条件终止循环)return (返回函数值)3.函数形式类型函数名(参数){}4.库函数简介double sin(double x) double cos(double x) double exp(double x) double log(double x) double sqrt(double x) double pow(double x, double y)double fabs(double x) int abs(int x)int printf(const char *format, ...); 屏幕格式化输出函数FILE *fopen(const char *filename, const char *mode); 文件打开int fprintf(FILE *fp, const char *format, ...); 文件格式化输出函数int fgetc(FILE *fp); 从文件中读出一字符int fclose(FILE *fp); 文件关闭void far setcolor(int color); 设置输出颜色void far line(int x1, int y1, int x2, int y2); 画直线void far rectangle(int left, int top, int right, int bottom); 画矩形unsigned far getpixel(int x, int y); 读出点(x, y)的颜色void far putpixel(int x, int y, int pixelcolor); 画点int random(int Num), 均匀产生0到Num-1中的一个随机数5.示例计算9!#include<stdio.h>void main(void){int i;long n;n=1;for(i=1;i<=9;i++)n*=i;printf("\n9!=%ld\n",n);getch();}6. Turbo C(2.0) 编辑命令F3 录入文件F9 编译Ctrl+F9 运行Ctrl+KB 定义块首Ctrl+KK 定义块尾Ctrl+KC 块粘贴Ctrl+KV 块移动Ctrl+Y 删除当前行7.部分源程序程序LAB1_1.C 求出方程sin x- x = 1在( -2,2)内的近似根#include<stdio.h>#include<math.h>float f(float x){ return sin(x)-x-1; }void main(void){float r=0.618,x0=-2,x1=2,x;int n=0;while(1){n++;x=(1-r)*x0+r*x1;if(f(x)*f(x0)<0.0)x1=x;else if(f(x)*f(x1)<0.0)x0=x;else break;if(fabs(x1-x0)<0.001)break;}printf("n=%d, x=%f\n",n,x);getch();}程序LAB2_3.C 给出正态分布函数表#include<stdio.h>#include<math.h>float f(float x){ return exp(-x*x/2); }void main(void){float x,x0,x1=0.0,F=0,h=0.0001;long n=0;FILE *fp;int i=0,p;fp=fopen("x.c","w");for(x1=0.0;x1<0.04;x1+=0.001){n=0; F=0; x0=-10;for(x=x0+h;x<x1;x+=h){if(n%2)F+=2*f(x);else F+=4*f(x);n++;}F+=f(x0)+f(x1);F/=3; F*=h; F*=0.39894;printf("x=%5.3f, F=%6.4f\n",x1,F);i++;p=F*10000;fprintf(fp,"%d,",p);if(i==10){i=0;fprintf(fp,"\n ");}if(p==9999)break;}fclose(fp);getch();}程序LAB3_2_1.C 解下列微分方程y - y tan x = sec x ,y (0) = 0, 并画出其图形: #include <stdio.h>#include <math.h>#include <graphics.h>float f(float x,float y){ return y*sin(x)/cos(x)+1/cos(x); }void main(void){int i=DETECT,j;float x=0.0,y=0.0,h=0.005;char *str="0.00";initgraph(&i,&j," ");setviewport(0,0,639,479,1);cleardevice();setbkcolor(BLUE);setcolor(WHITE);line(20,200,620,200);for(i=0;i<10;i++){line(20+i*60,195,20+i*60,200);str[0]=48+3*i/10;str[2]=48+3*i%10;outtextxy(20+i*60,205,str);}for(i=0;i<600;i++){y=y+f(x,y)*h;x+=h;putpixel(i+20,200-y*10,GREEN);}getch();closegraph();}程序LAB3_2_2.C 解下列微分方程组⎪⎪⎩⎪⎪⎨⎧+-=-=.01.0d d ,25.02d d xy y t y xy x t x x (0) = 100, y (0) = 8, 并画出其图形:#include <stdio.h>#include <math.h>#include <graphics.h>float f1(float x,float y){ return 2*x-0.25*x*y; }float f2(float x,float y){ return -y+0.01*x*y; }void main(void){int i=DETECT,j;float x=99.0,y=7.9,h=0.015;initgraph(&i,&j," ");setviewport(0,0,639,479,1);cleardevice();for(i=0;i<600;i++){x=x+f1(x,y)*h;y=y+f2(x,y)*h;putpixel(i+20,(102.5-x)*60,GREEN);putpixel(i+20,(8.6-y)*600,WHITE);}getch();closegraph();}程序LAB4.C 将矩阵化为行阶梯型,化为行最简型#include<stdio.h>#include<math.h>#define MAXR 20#define MAXC 40/*解线性方程组,以下是其增广矩阵*/float M_B[MAXR][MAXC]={{1,-2,2,1,-3},{2,1,1,-2,-1},{3,4,0,-5,1}}; void f1(int m,int n){int i,j,r=0,c=0;float x0;printf("\n以下将矩阵化为行阶梯型\n");for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%8.2f",M_B[i][j]);printf("\n");}printf("按任一健继续...\n");getch();while(c<n){for(i=r;i<m;i++)if(fabs(M_B[i][c])>=0.0001)break;if(i<m){if(i!=r)for(j=0;j<n;j++){x0=M_B[i][j];M_B[i][j]=M_B[r][j];M_B[r][j]=x0;}x0=M_B[r][c];for(j=0;j<n;j++)M_B[r][j]/=x0;for(i=r+1;i<m;i++){x0=M_B[i][c];for(j=0;j<n;j++)M_B[i][j]-=x0*M_B[r][j];}r++;for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%8.2f",M_B[i][j]);printf("\n");}printf("按任一健继续...\n");getch();}c++;if(r==m)break;}printf("\n以下将行阶梯型化为行最简型\n");while(r){r--;for(j=0;j<n-1;j++)if(fabs(M_B[r][j])>=0.0001)break; c=j;for(i=0;i<r;i++){x0=M_B[i][c];for(j=0;j<n;j++)M_B[i][j]-=x0*M_B[r][j];}for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%8.2f",M_B[i][j]);printf("\n");}printf("按任一健继续...\n");getch();}printf("完毕,按任一健退出...\n");getch();}void f2(int n){int i,j;for(i=0;i<n;i++)for(j=0;j<n;j++){if(i!=j)M_B[i][n+j]=0;else M_B[i][n+j]=1;}f1(n,2*n);}void main(void){ f1(3,5); }程序LAB6_3.C 模拟产生服从N(120,400)分布的随机变量800次,并画出统计直方图#include <stdio.h>#include <stdlib.h>#include <math.h>#include <graphics.h>int Np[4000]={/*下列数据为标准正态分布函数值×10000, 由程序LAB2_3.C 产生*/ 5000,5003,5007,5011,5015,5019,5023,5027,5031,5035,…};int f(int p){int i;for(i=0;i<4000;i++)if(Np[i]>=p)break;return i;}void main(void){int i,j,x;float F,X[800];randomize();printf("\n\n");for(i=0;i<800;i++){x=random(10000);if(x<5000)F=-f(10000-x);else F=f(x);F*=0.001;X[i]=120+20*F;printf("%8.2f",X[i]);}getch();i=DETECT;initgraph(&i,&j," ");setviewport(0,0,639,479,1);cleardevice();setbkcolor(BLUE);setcolor(WHITE);line(20,400,620,400);j=20;for(F=90;F<150;F+=3){x=0;for(i=0;i<800;i++)if(X[i]>=F&&X[i]<F+5)x+=4;rectangle(j,400-x,j+30,400);j+=30;}getch();closegraph();}程序2000A01.C 统计文件2000A1.txt中A TCG的个数#include<stdio.h>void main(void){int n=-1,ATCG[40][4]={0,0};char c;FILE *fp;fp=fopen("2000A1.txt","r");while((c=fgetc(fp))!=EOF){if(c=='.')n;else if(c=='a')ATCG[n][0];else if(c=='t')ATCG[n][1];else if(c=='c')ATCG[n][2];else if(c=='g')ATCG[n][3];}fclose(fp);for(n=0;n<40;n)printf("{%d,%d,%d,%d},\n",ATCG[n][0], ATCG[n][1],ATCG[n][2],ATCG[n][3]);getch();}。
monte+carlo(蒙特卡洛方法)解析
蒙特卡洛方法是一种基于随机抽样的数值计算方法,广泛应用于金融学、物理学、工程学和计算机科学等领域。
它的原理是通过随机抽样来估计数学模型的结果,通过大量重复实验来逼近真实值。
在本文中,我们将探讨蒙特卡洛方法的原理、应用和局限,并共享个人对这一方法的理解和观点。
1. 蒙特卡洛方法的原理蒙特卡洛方法的核心思想是利用随机数来处理问题。
它通过生成大量的随机数,利用这些随机数的统计特性来近似求解问题。
在金融衍生品定价中,我们可以使用蒙特卡洛方法来模拟股票价格的随机漫步,从而估计期权合约的价格。
通过不断模拟股票价格的变化,并计算期权合约的价值,最终得到一个接近真实值的结果。
2. 蒙特卡洛方法的应用蒙特卡洛方法在金融领域被广泛应用于期权定价、风险管理和投资组合优化等问题。
在物理学中,蒙特卡洛方法可以用于模拟粒子的运动,求解无法用解析方法求解的复杂系统。
在工程学和计算机科学中,蒙特卡洛方法可以用于求解概率分布、优化问题和模拟系统行为。
3. 蒙特卡洛方法的局限虽然蒙特卡洛方法有着广泛的应用,但也存在一些局限性。
蒙特卡洛方法通常需要大量的随机抽样,计算成本较高。
随机性导致了结果的不确定性,需要进行大量的实验才能得到可靠的结果。
蒙特卡洛方法在高维问题和高精度要求下计算效率低下,需要借助其他数值方法进行辅助。
4. 个人观点和理解个人认为蒙特卡洛方法是一种非常强大的数值计算方法,能够解决复杂问题和高维问题。
它的随机性使得结果更加贴近真实情况,有利于处理实际情况中的不确定性和风险。
但是在实际应用中,需要注意随机抽样的方法和计算成本,并且需要结合其他数值方法进行验证和辅助,以确保结果的准确性和可靠性。
总结回顾蒙特卡洛方法是一种基于随机抽样的数值计算方法,通过大量重复实验来逼近真实值。
它在金融学、物理学、工程学和计算机科学等领域有着广泛的应用。
然而,蒙特卡洛方法也存在一些局限性,需要结合其他数值方法来弥补其不足。
个人认为蒙特卡洛方法是一种强大的数值计算方法,能够处理复杂和高维问题,但在实际应用中需要注意其随机性和计算成本。
蒙特卡罗(Monte Carlo算法)算法
随机数的取得
• 如果你对随机数有更高的要求,需要自己 编辑“随机数生成器”
• 最简单、最基本、最重要的一个概率分布 是(0,1)上的均匀分布(或称矩形分布)
• 例如在Matlab中,命令“rand()”将产生 一个(0,1)中均匀分布的随机数
• 你可以根据需要给随机数一个“种子”, 以求不同的数
Matlab 的随机数函数
• 大大改善了结果!
随机数的产生
• 随机数是我们实现蒙特卡罗模拟的基本工具。 • 随机数的产生就是抽样问题。可以用物理方法
产生随机数,但价格昂贵,不能重复,使用不 便。另一种方法是用数学递推公式产生。这样 产生的序列,与真正的随机数序列不同,所以 称为伪随机数,或伪随机数序列。不过,经过 多种统计检验表明,它与真正的随机数,或随 机数序列具有相近的性质,因此可把它作为真 正的随机数来使用。
用Monte Carlo 计算定积分
• 考虑积分 • 假定随机变量具有密度函数 •则
用Monte Carlo 计算定积分-
• 抽取密度为e^{-x}的随机数X_1,…X_n • 构造统计数
•则
用Monte Carlo 计算定积分--
•且
•即
用Monte Carlo 计算定积分---
• 例如 α=1.9
Monte Carlo Simulation 简介
概述
• 蒙特卡罗(Monte Carlo)方法,或称计算 机随机模拟方法或随机抽样方法或统计 试验方法 ,属于计算数学的一个分支。 是一种基于“随机数”的rlo方法的基本思想很 以前就 被人们所发现和利用。 在17世纪,人 们就知道用事件发生的“频率”来决定 事件的“概率”。19世纪人们用投针试
• 它是以一个概率模型为基础,按照这个模型所 描绘的过程,通过模拟实验的结果,作为问题 的近似解。。
(完整版)蒙特卡洛算法详讲
(完整版)蒙特卡洛算法详讲Monte Carlo 法§8.1 概述Monte Carlo 法不同于前⾯⼏章所介绍的确定性数值⽅法,它是⽤来解决数学和物理问题的⾮确定性的(概率统计的或随机的)数值⽅法。
Monte Carlo ⽅法(MCM ),也称为统计试验⽅法,是理论物理学两⼤主要学科的合并:即随机过程的概率统计理论(⽤于处理布朗运动或随机游动实验)和位势理论,主要是研究均匀介质的稳定状态[1]。
它是⽤⼀系列随机数来近似解决问题的⼀种⽅法,是通过寻找⼀个概率统计的相似体并⽤实验取样过程来获得该相似体的近似解的处理数学问题的⼀种⼿段。
运⽤该近似⽅法所获得的问题的解in spirit 更接近于物理实验结果,⽽不是经典数值计算结果。
普遍认为我们当前所应⽤的MC 技术,其发展约可追溯⾄1944年,尽管在早些时候仍有许多未解决的实例。
MCM 的发展归功于核武器早期⼯作期间Los Alamos (美国国家实验室中⼦散射研究中⼼)的⼀批科学家。
Los Alamos ⼩组的基础⼯作刺激了⼀次巨⼤的学科⽂化的迸发,并⿎励了MCM 在各种问题中的应⽤[2]-[4]。
“Monte Carlo ”的名称取⾃于Monaco (摩纳哥)内以赌博娱乐⽽闻名的⼀座城市。
Monte Carlo ⽅法的应⽤有两种途径:仿真和取样。
仿真是指提供实际随机现象的数学上的模仿的⽅法。
⼀个典型的例⼦就是对中⼦进⼊反应堆屏障的运动进⾏仿真,⽤随机游动来模仿中⼦的锯齿形路径。
取样是指通过研究少量的随机的⼦集来演绎⼤量元素的特性的⽅法。
例如,)(x f 在b x a <<上的平均值可以通过间歇性随机选取的有限个数的点的平均值来进⾏估计。
这就是数值积分的Monte Carlo ⽅法。
MCM 已被成功地⽤于求解微分⽅程和积分⽅程,求解本征值,矩阵转置,以及尤其⽤于计算多重积分。
任何本质上属随机组员的过程或系统的仿真都需要⼀种产⽣或获得随机数的⽅法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Grain Boundary Dynamics as a Tool for Microstructure Control
Plastic Deformation & Heat Treatment
Motion Motion of of Grain GrainBoundaries Boundaries
different
Recrystallization & Grain Growth Structure
Thermodynamics
Kinetics
Mikrostructure
Control & Analysis
Grain Boundary Dynamics
Material Properties 材料设计优化与生物医用材料研究室
•
•
材料设计优化与生物医用材料研究室
• 研究晶粒长大的目的之一是控制晶粒尺寸。晶粒尺寸既反 映金属材料的微观组织特征,又直接影响材料的性能。例 如低碳钢中晶粒尺寸与材料的机械性能、脆性转变温度有 直接关系。 1.细化晶粒
结构钢: 改善韧性同时提高强度 变形铝合金:提高强度,改善产品表面粗糙度和提高变形能力 超塑性合金:提高其常温强度而降低其高温强度,实现超塑性的关键
材料设计优化与生物医用材料研究室
NN考虑单元的6个最近邻格点与12个次近邻格点以及8个第三近邻的格点。
材料设计优化与生物医用材料研究室
界面能由描述原子相互作用的哈密尔顿算子来定义。下式中J>0可以理解 为相邻原子间的相互作用能。对于任意格点 i,其界面能Ei为:
Ei J (1 Si S j ), Si S j
•
晶粒长大:无应变多晶体材料在退火过程中系统平均晶粒尺寸逐渐增 大的现象。晶粒长大可以是初次再结晶的后继过程,即发生于形变试 样初次再结晶完成以后的继续退火过程中,也可以发生在无原始形变 试样的退火处理过程中。晶粒长大可以分为正常晶粒长大和异常晶粒 长大。 正常晶粒长大的特点是长大速度比较均匀,在长大过程中晶粒的尺寸 分布和形状分布几乎不变。异常晶粒长大是组织中少数晶粒吞并基体 中其他较小的晶粒而长大。 某种意义上讲,晶粒长大研究是一个金属学理论问题,但就这一研究 的起源和最终服务目的而言,晶粒长大研究是与材料性能密切相关 的。随着人们对材料的组织、结构与性能之间相互关系认识的深入, 越来越显出晶粒长大研究对控制和改善材料性能的重要性。
j 1
NN
1, Si S j 0, S i S j
H J
i 1
N
(
j 1
NN
Si S j
1), Si S j
1, Si S j 0, Si S j
其中,J是正的常数,正比于晶界能,为相邻单元对晶界能所做的贡献。 Si、Sj分别对应于单元i和j的取向(1≤Si≤Q)
材料设计优化与生物医用材料研究室
• 蒙特卡罗方法在金融工程学、宏观经济学,生物医 学,计算物理学(如粒子输运计算、量子热力学计 算、空气动力学计算)等领域应用广泛。 • Monte Carlo方法在材料学中的应用主要涉及到表面 与界面、扩散、相变、聚合物、外延生长及结构、异 相界面、晶体生长、断裂及材料热力学性质等方面。
2.避免晶粒过细
高温合金、某些镁铝合金(防止产生应变痕迹)等
3.控制材料的织构组态
深冲加工的板材:为防止产生制耳,需防止过分强烈的单一织构 硅钢片:为获得高的磁导率,降低能耗,需控制织构组态
材料设计优化与生物医用材料研究室
3D晶粒长大动画 MCS=100~5000, step=100
作者:秦湘阁博士
材料设计优化与生物医用材料研究室
1777年 比丰针问题
材料设计优化与生物医用材料研究室
•
•
从表中数据可以看到,一直到公元20世纪初期,尽管实验次数数以千 计,利用蒙特卡罗方法所得到的圆周率,还是达不到公元5世纪祖冲 之的推算精度。这可能是传统蒙特卡罗方法长期得不到推广的主要原 因。 计算机技术的发展,使得蒙特卡罗方法得到快速的普及。现代的蒙特 卡罗方法,已经不必亲自动手做实验,而是借助计算机的高速运转能 力,使得原本费时费力的实验过程,变成了快速和轻而易举的事情。 它不但用于解决许多复杂的科学方面的问题
S S 是Kronecker delta函数,当S 和S 取向相同时,等于1,反之则 i j 等于0。
i j
材料设计优化与生物医用材料研究室
ΔE=2-4=-2<0
E0=4 E1=2
材料设计优化与生物医用材料研究室
• • •
•
随机地选取一个单元i,计算该单元的界面能E0 从其他Q-1个可能的取向中随机地选取一个赋给该单元,并且计算其自 由能E1 比较单元取向改变前后的能量差ΔE(ΔE=E1-E0) 如果ΔE≤0,则新取向被接受,即晶界迁移的驱动力为晶界能的减小; 否则,新取向以概率W=exp(-ΔE/kT)被接受。 用公式表示,单元成功再取向的概率为:
(Qin X. PhD Dissertation, USTB, Beijing2003, p.113)
材料设计优化与生物医用材料研究室
1、标准Potts Monte Carlo模拟的原理及方法
• 晶粒组织的晶界在本质上是取向不同的晶粒之间的界面,而晶粒又是 处于晶格点阵位置上的原子所组成的。如果将原子所处晶格点阵的取 向(即原子所属晶粒的取向)称为该原子的“取向属性”,则晶粒组织 中的晶界可理解为是由取向属性不同的原子之间的交界点连接构成 的。
第三章 介观尺度Monte Carlo方法
材料设计优化与生物医用材料研究室
目录
Monte Carlo方法简介 Potts模型Monte Carlo方法的应用 课堂思考题
材料设计优化与生物医用材料研究室
材料设计优化与生物医用材料研究室 (Raabe D,计算材料学, 北京,化学工业出版社,2002
退火过程中晶界的移动即晶粒长大过程可理解为晶界附近原子按一 定规律改变其取向属性所引起的“宏观”效应。
材料设计优化与生物医用材料研究室
假设模拟系统中有N个原子(点阵位置),点阵的排列有几种,在 二维模拟中可采用简单正方点阵或三角点阵,三维模拟大都采用简单立 方点阵,也有一部分采用面心立方点阵、体心立方点阵或密排六方点 阵。 取向属性总共有Q个(Q>2),则在模拟时首先对每个原子随机赋予 一个取向属性值S(1<S<Q)。 Q值一般取32、48、64等值。 然后将所有取向取向相同的相邻原子组合成晶粒,由此构造原始的 模拟晶粒组织。
Exner H E. Practical Metallography,1999;36(3):115-137 材料设计优化与生物医用材料研究室
材料设计优化与生物医用材料研究室
材料设计优化与生物医用材料研究室
• 显微组织形态
a
b
图1 Radhakrishnan改进Monte Carlo算法晶粒长大过程不同阶段的两个多晶体组织三 维组织模型 晶粒数目分别为a)10085和b)2009
1 , E 0 W exp(E / kT ) , E 0
其中,k为Boltzman常数;T为温度。
当晶界附近某原子的取向属性从Si转为Sj时,晶界相应的向i原子原来的 晶粒一侧移动了一个原子间距。 • N个这样的再取向尝试就构成一个Monte Carol Step (MCS),这样,晶界 处一系列单元取向的转变就构成了晶界的迁移。 采用周期性边界条件。
材料设计优化与生物医用材料研究室
(3)建立各种估计量 一般说来,构造了概率模型并能从中抽样后,即实现模拟 实验后,我们就要确定一个随机变量,作为所要求的问 题的解,我们称它为无偏估计。建立各种估计量,相当 于对模拟实验的结果进行考察和登记,从中得到问题的 解。
材料设计优化与生物医用材料研究室
一般步骤 将所研究的物理问题演变为类似的概率或 统计模型 通过数值随机抽样实验对概率模型进行求 解,其中包括大量的算术运算和逻辑操作 用统计方法对得到的 结论进行分析处理
.
(Raabe D,计算材料学, 北京,化学工业出版社,2002
)
蒙特卡罗方法概述: 一种随机模拟(random simulation)方法,有时也称作随 机抽样(random sampling)技术或统计实验(statistical testing)方法。以概率和统计理论方法为基础的一种计算 方法,是使用随机数(或更常见的伪随机数)来解决很多 计算问题的方法。将所求解的问题同一定的概率模型相联 系,用电子计算机实现统计模拟或抽样,以获得问题的近 似解。
材料设计优化与生物医用材料研究室
一 Monte Carlo方法简介
• 1.蒙特卡罗(Monte Carlo)方法
这一方法作为一种模拟工具,其系统发展始于1944年。冯.诺伊曼 (J.von.Neumann)、N. Metropolis、乌拉姆(S.Ulam) 在其参加的“曼哈顿计 划”研究时引入了蒙特卡罗方法,他们用其模拟了中子在可裂变材料中 的无相关空间扩散(即无规行走问题)。同时迈耶(J.E.Mayer)也独立的 提出了一种类似的数值方法,通过非权重随机抽样过程用其计算积分问 题。人们认识到确定性问题可以通过恰当的概率模型来很容易的解决。 Monte Carlo模拟通常是采用无相关随机数进行大量的计算机实验。 鉴于大量运用随机抽样, Monte Carlo方法的发展是与计算机技术的进 步密切相关的。
材料设计优化与生物医用材料研究室
• 由于不透明材料3D微观组织的不直接可视性,导致许多重要的 3D组织表征参量无法直接测量,许多涉及3D显微组织演变的材 料理论模型无法得到验证。 • 采用Potts模型Monte Carlo方法研究晶粒长大,则可以有效避 免上述缺点。利用这种既遵从材料显微组织形成和演变规律, 又已数字化且可视化的显微组织仿真的静态或动态模型,可以 进行晶粒或任何组织组成物及其动态演变过程的直观分析和定 量研究(Exner教授将其称为“虚拟金相学”),获得若干真实金 相学所无法获得的组织表征信息和含时间变量的动力学显微组 织数据,将有助于我们对真实材料显微组织及其各种演变过程 的进一步了解。