当前位置:文档之家› 晶粒生长的蒙特卡罗模拟

晶粒生长的蒙特卡罗模拟

晶粒生长的蒙特卡罗模拟
晶粒生长的蒙特卡罗模拟

《计算材料学》课程设计

指导老师:江建军教授

电子科学与技术系

2004年6月

晶粒生长的Monte Carlo 模拟

梁树雄,韩轲,张士亮,柏帆,胡斯杨,陈嵩,蒋雄军,严军刚,程晨

(华中科技大学电子科学与技术系,湖北 武汉 430074)

摘要:在实际生产中,晶粒的长大现象非常普遍的存在于金属、合金的凝固,陶瓷的烧结等过程中,直接影响着所得材料的性能。所以研究晶粒生长是材料工程中的重要课题,但直接研究速度慢,容易受到条件限制,而计算机模拟具有速度快,数据准确,成本低和直观简便等一系列优点,经多年发展,已成为除实验和理论外的第三种关于晶体生长的研究手段,有着不可比拟的优越性。对于晶体生长来说,所用的模型及方法大致分为蒙特卡罗方法(Monte Carlo)简称MC方法或改进的MC方法。

关键词:蒙特卡罗方法;晶体生长;计算机模拟

Monte Carlo Method simulation of the grain growth Abstract: Grain growth exists very frequently in the condense and amalgamation of metal or alleys, processes of sintering of pottery. As its position, the capability of the materials attribute directly to the phenomena. With the great topic of materials engineering, however, due to restriction conditions, no more progress has achieved in the research. Nowadays, with the rapid progress of computational simulation and the improvement of the exactness. Besides of the traditional experiment and ordinary theoretic analogy, computational simulation has been regard as the other method to the problem. All of the models and methods can be divided to Monte Carlo Method (short for MC) and Improved MC Method.

KEY WORDS:Monte Carlo Method;grain growth;computational simulation

一、引言

晶粒凝聚的理论过程:高温的液态晶体在降温后即会凝聚成固体晶体。

(1)成核现象

液态中随机在低温区凝聚的经理,发生在一个很小的过冷度范围内。

(2)晶体生长

液态晶体产生核化中心后,核化中心周围的液体开始逐渐凝固和生长。围绕着核化中心即种子生长,也称作晶粒长大。晶粒长大可以分正常晶粒长大和不正常晶粒长大。正常晶粒长大的基本特征是长大过程中晶粒尺寸保持基本均匀,相对晶粒尺寸分布具有不变性,通常称之为自相似性。不正常晶粒长大是指晶粒长大由于某种原因,如第二相粒子的钉轧作用而使长大受到限制,在某些条件如温差升到某临界值时,少数晶粒吞并其他晶粒而长大。(3)生长过程

初期,在液态环境下围绕晶核向四周无限制的等速生长知道碰到另一个生长的晶粒,二者中间形成晶界,此时停止生长。生长出的晶粒多不规则,晶界也没有特定的形态。后期,晶粒以吞食的形式逐渐长大,以牺牲小晶粒为代价。随着时间的推移,晶粒的晶界不断变化,

当时间足够长时,晶界多呈直线,晶界的边点多呈三叉状。

在实际生产中,晶粒的长大现象非常普遍的存在与金属,合金的凝固,陶瓷的烧结过程中,直接影响着所得材料的性能。因而,对材料的晶粒长大过程中的成核及晶粒生长进行设计,并用人工干预的方法,如控制炉温,加热时间,烧制方式及过程对材料进行性能上的改善,使其可以达到使用要求,这十分具有实际意义。

对晶粒生长的模拟,近年来突出的实现手段是:广泛利用了计算机系统来进行大量的计算和图形界面。模拟计算机模拟具有速度快,数据准确,成本低和直观简便等一系列优点,经多年发展,已成为除实验和理论外的第三种关于晶体生长的研究手段,有着不可比拟的优越性。对于教学来说,用计算机程序对传统的实验过程进行图形化的模拟,已成为最普遍,效果最好的模拟,设计方式。

计算机模拟晶粒生长的方法和思路越来越多,所用的模型及模拟方法大体可分3种:MC 方法或改进的(MC )方法、使用连续扩散界面场模型以及采用的其它模型; 如Languerre 模型,将细胞状的晶粒结构看作Languerre 棋盘形布局来处理。但最好的方法仍是MC 法。在过去的几十年里,主要应用计算机模拟技术定量地理解晶粒生长过程,尤其是运用MC 技术模拟等温条件下二维和三维的晶粒长大过程,并且从中获取从解析方程中难以得到的晶粒生长的拓扑学信息。在本文里,我们重点讨论MC 及其改进算法Q-state potts 算法在模拟正常晶粒生长中的作用,而对于异常晶粒生长,其物理模型构造及模拟过程存在一定的复杂性,在此我们先不以予讨论。相关资料可以查找文献资料]2[。并通过计算机构造一个V oronoi 网格模型来给出模拟的过程及结果统计。

二、基本模型

1.基本理论

对多晶材料, 在晶核形成之后, 其晶粒生长现象分为两种不同类型: 正常晶粒生长和异常晶粒生长:

(1)正常晶粒生长时, 晶粒尺寸呈一致增长的趋势, 主要特点是晶粒尺寸F (R/R ) 和拓扑分布函数P (Nc) 不随时间改变。其中, R 为晶粒半径, R 为平均晶粒半径,,Nc 是晶粒边数。在等温条件下,正常晶粒的晶粒生长可以推导出下抛物线型动力学方程:

n R Kt = (1) 或(0)m m

t R R Bt =?= (2)

在(1)式中,t 为时间,K 为生长率常数,n 晶粒生长指数,通过(1) 式对时间求导以及

变换后,在Hillert 的理论推导]3[中,理论预测稳态晶粒生长系数n 应该等于0.5,但是实验和模拟结果表明,在不忽略晶体拓扑结构影响的情况下,应当总是n<0. 5的这是由于实际材料和理想材料中存在的差异造成的。当时间t 很长时, 若晶体形貌出现R >>R 0 (0R 为初始时晶

粒半径) , 式(2)可以和式(1)等效,且m= 1/n ,b 为一常数,也就是说,(0)m m t R R =?与时

间成正比关系。

(2)对于异常晶粒生长,则是指在重结晶的显微结构中, 一些晶粒的尺寸迅速增加, 最大尺寸的晶粒以比算术平均速率大得多的速率增长。

异常晶粒生长的动力学方程可以表示为:

X = 1 - exp [- g (t)] (3)

其中, X 为二次重取向的晶粒的面积分数, g ( t) 为与时间有关的函数。通常g ( t) = a t 2 , 即修正方程:

X = 1 - bexp (- a t p ) (4)

其中, b 、p 为常数,且目前大部分p 的实测值为1. 8±0. 3 左右。

一般认为晶粒生长变化的直接原因是驱动力的改变。

晶粒生长的驱动力主要来自总的晶界能的减少。但由

于生长的复杂性, 迁移率、表面能、以及片材中的曲率、

应力等因素也将引起附加驱动力, 从而引起晶粒异常

生长。通过上边的晶粒的生长动力学理论,我们在下

边对正常晶粒生长进行建模和模拟。

2.基本模型

(1)二维正常晶粒生长初始状态模拟的构造:首

先将晶体平面拓扑结构用网络格点表示出来,在实际

构造中,把晶体的晶格微观结构划分为不连续的晶格

(正方形,三角型或六边型)我们参照了二维结构细

胞结构构造方法]4[,将微观结构划分成六边形结构,并映射到一个离散的V oronoi 网格中,如图1。初始图形的生成方法采用细胞几何扩散法:在平面上随机撒下一些晶向不同的格点,称为核点,核点取是一个从1到Q 的值,表明该点的晶粒取向。在这样的模型中,我们可以通过几何计算确定每个核点在等速扩散生长之后,与其他核点的交界,称之为晶界,晶界定义为具有不同取向的两个晶粒的公共边,

并且每个晶粒都是由离散化的晶格组成。这样,一个晶图1 V oronoi 网格

体的成核,以及晶粒均匀生长,直到晶粒间相互接触而停止生长,并形成晶界的一系列过程就完成了。下一步就是通过这样的V oronoi 网格初始图形模拟正常晶粒的后期生长过程,我们将采用MC 算法来完成。

(2)经典的蒙特卡罗(MC )算法模拟过程:

晶粒生长变化的显微结构的演化可由改变每一晶格的取

向数(自旋数翻转来实现),其中自旋数就是我们在前边撒点时

的核点取向数Q 。在我们构造好的网格当中,随机抽取一个

格点,如图2,计算它与周围所有近邻格点的相互作用一般认

为这种相互作用为

(_1)i j MN s s ij E J δ=?∑ (5) 其中, s i 是格点i 的晶向数,其数值为Q 个取向中的一个, s j 是格点i 的近邻格点的晶粒晶向数。δs i s j 为delta 函数 , M,N 为格点数。其中,计算出来的E 就是这个格点所具有的晶界能

i s 10

j s δ?=?≠?i j i j 当s =s 时 当s s 时 (6) 由式(5) 可见, 求和包括所有近邻格点。其实在计算晶界能时理论上应该计算所有格点对选取的格点的相互作用,但是对于实际应用,我们近似看成远邻格点对该格点的作用相等且远小于近邻格点的作用能,因此我们认为只有近邻格点才对试验格点的局部能量有贡献。

运用经典的MC 算法(6 ),我们模拟判断其每个格点的晶向变化步骤如下:

(1) 随机选取一个试验格点,其晶格取向为a1,计算其格点晶界能E 。

(3) 进行随机取向试验:在其余Q - 1 种晶格取值向中任选其一,赋予该晶格,即晶格的数字改变为a2 (21a a ≠),得到改变后的晶界能E2。

(4) 计算取向改变后相应的能量改变△E 。

(5) 通过由(7)式计算晶粒晶向改变的几率W , 判断取向改变是否可以实现。

exp(/)010B E K T E W E ???>???≤?

(7) ①若△E ≤0; 则认为取向改变是允许的;

②若△E> 0, 则取向概率为exp (- △E/KBT),此时, 在[0, 1 ]间产生一个均匀分布的随机数η, 如果exp (- △E/KBT) > η, 则取向改变允许, 否则不允许, 即只有使体系能量减少的转变才是允许的。

图2 六边形格点

模拟中,我们将判断N 取向实验的次数作为为一个时间单元,称蒙特卡罗时间步长(Monte Carlo Step,MCS), 其中N 为格点总数,。从MCS 到真实时间存在一个转换,即具有一个

简单的活化能因子

T

K

W B

e/ , 此因子对应于原子的跃迁频率。

3.MC模拟实际算法

由于上述经典的蒙特卡罗算法的计算机模拟时间相对较长,在通过实践验证后发现普通PC无法有效实现,因此实际上在晶粒生长过程中我们采用的算法是基于MC算法的Q-state potts 算法及其改进算法:

Q-state potts 算法的实现过程如下:

(1)首先随机选取一个格点,晶粒取向为a1,计算所选格点的六个最近的相邻格点中相同取向数字也为a的格点数目N1 ;

(2)将这个选定格点的取向数字,随机地变为1~Q 中的另一个数b,再计算与这个新取向数字b相同的近邻格点数N2 ;

(3)如果N2 >=N1 ,则将上述选取的晶格确定为新的取向b;否则,恢复原来的取向a;

(4)随机选取另一个格点,重复以上步骤。

(5)若V oronoi 网格总格点个数为n,则每完成n次随机抽取定为一个蒙特卡罗步(Monte Carlo Step)

Q-state potts 算法是建立在蒙特卡罗模拟基础上的改进算法。在简化能量的计算量的同时保留了蒙特卡罗算法随机性模拟的本质,但是也还存在一些问题:

(1)在对随机格点的选取上, Q-state potts要浪费大量的计算时间来进行判断,其实只有抽样点落在晶体的边界处时,才可能产生晶粒生长。而晶体的边界在实际晶体中所占面积很小,大部分判断都落在都是晶体的内部。

(2)另外经过模拟验证,晶粒取向变成所有可能的取向Q 中的一种的概率是极低的, 因此对晶粒取向变化可能值的确定是应该可以减少到一定程度的。

通过上边两缺点,对Q-state potts 算法作改进,可以得到另一种改进的Q-state potts算法:

(1)首先在晶界上选取一个格点,晶粒取向为a1,计算所选格点的六个最近的相邻格点中相同取向数字也为a的格点数目N1 ;

(2)随机地选取此晶粒最近邻另一个晶格的晶向b(b≠a),计算与这个新取向数字b相同的最近邻格点数N2 ;

(3)如果N2 >=N1 ,则将上述选取的晶格确定为新的取向b;否则,保留原来的取向a;

(4)随机选取晶界另一个格点,重复以上步骤。

(5)若晶界总格点个数为n ,则每完成n 次随机抽取定为一个蒙特卡罗步(Monte Carlo Step )

改进的Q-state potts 算法的特点主要依据了两个观点:

(1)晶粒取向数字发生变化的区域为晶粒的边界,如果在找到边界格点后再进行判断,可以大大缩短计算时间,并且此类忽略也是符合实际情况的。

(2)“近邻”优于“远邻”理论:近邻格点比远邻格点具有更低的能量, 并可以假设后远邻格点都具有相同的较低能量。依据近邻优于远邻理论,可以将取向数字判断变为:只取最近邻格点的取向数字中的一个,而忽略掉远邻格点的影响。

利用改进的Q-state potts 算法编写的程序,能够节省大量的计算时间,在较短时间内完成需要大量时间进行随机抽取并判断变化的晶粒生长的模拟,可以使基于MC 算法的晶粒生长演示在中低档个人PC 上得以顺利运行。

三、计算机的处理与作图

1.初始图形生成过程

初始图形将用V oronoi 网格表示215×255个晶格的区域,每个六边形代表一个晶格,此时代表晶格晶向的数字均置零。仿真开始时,利用计算机提供的随机函数产生2n 个随机数),(i i Y X ,即在网格区域内产生n 个晶核。如图3模拟中我们撒下了150个随机点。然后以这些晶核为核心,每个点都以匀速向四周扩散,扩散后的每个点的晶相都改变成晶核的晶向,直到晶粒间相互接触而停止生长,每两个晶粒间的交界即为晶界(本模拟实际通过求几何垂直平分线确定晶界)。此时晶体的初始生长完成(如图3)。

图 3 初始图形生成

图 6(400MCS )

3.结论分析和处理

利用一组统计数据来进行模拟结果的数值统计:

当前时间(MCS )晶向个数 平均面积

0 149 352

50 146 360

100 141 372

150 133 395

200 126 417

250 119 441

300 112 469

350 108 486

400 102 515

450 98 536

500 94 559

550 92 571

600 88 597

2

.对晶体的生长进行MC 方法的成长模拟(如图4~6)。

图 4(50MCS )

图 5(150MCS )

650 84 625

我们通过上述数据绘出晶粒平均面积S-t 图线(图7)和晶粒平均半径R-t 图线(图 8),其中R 近似取S R =。利用上述(0)m m

t R R Bt =?=,知道(0)m m

t R R =?与时间成正比关系。其中

我们取经验值n = 0.47,m=1/n 代入验证,通过matlab 绘图并拟合曲线得到图9曲线,可以看出和理论还是比较接近的,(0)m m

t R R =? - t 曲线呈线性关系变化,结论:本次晶体生长的

蒙特卡罗蒙模拟和真实情况相差不大,与实验数据较符合。

图 7 晶粒平均面积S-t 图线 图 8晶粒平均半径R-t 图线

图 9 (0)m m

t R R =?-t 图线

以上为运用蒙特卡罗(Monte Carlo) 方法模拟二维正常晶粒生长的方法。然而根据现有模拟算法对模拟晶粒生长的过程而言,仅仅是一个比较理想和约束性条件较多的模拟算法。晶粒生长是一个复杂的过程,要对其进行完全且准确的模拟,还有待进一步的研究。

参考材料:

[1] 钟晓征, 陈伟元, 王豪才等. 多晶材料晶体生长的Monte Carlo计算机模拟方法 I模拟

正常晶粒生长. 功能材料, 1999, 30 (3):232-235

[2] 钟晓征, 陈伟元, 王豪才等. 多晶材料晶体生长的Monte Carlo计算机模拟方法II模拟

异常晶粒生长. 功能材料, 1999, 30 (3):236-238

[3] Hillert M. Acta. Metall,1965,13:227-238

[4] 傅廷亮. 基于C语言的二维细胞结构蒙特卡罗法仿真. 微电子与计算机, 1998, 3:53-55

[5] 温俊芹,刘新田. 蒙特卡罗方法及其在晶粒生长模拟中的研究进展. Welding

Technology,2000, 31(2):1-2

[6] 莫春立, 丁春辉, 何若宏. 用Monte Carlo 方法模拟晶粒长大. 沈阳工业学院学报, 2001,

20(1):61-66

[7] 陈伟元, 钟晓征, 谭锐, 王豪才. 多晶材料晶粒生长的计算机模拟研究. 原子与分子物理

学报, 2000, 17(2):297-302

蒙特卡洛(Monte Carlo)模拟法

当科学家们使用计算机来试图预测复杂的趋势和事件时, 他们通常应用一类需要长串的随机数的复杂计算。设计这种用来预测复杂趋势和事件的数字模型越来越依赖于一种称为蒙特卡罗模似的统计手段, 而这种模拟进一步又要取决于可靠的无穷尽的随机数目来源。 蒙特卡罗模拟因摩纳哥著名的赌场而得名。它能够帮助人们从数学上表述物理、化学、工程、经济学以及环境动力学中一些非常复杂的相互作用。数学家们称这种表述为“模式”, 而当一种模式足够精确时, 他能产生与实际操作中对同一条件相同的反应。但蒙特卡罗模拟有一个危险的缺陷: 如果必须输入一个模式中的随机数并不像设想的那样是随机数, 而却构成一些微妙的非随机模式, 那么整个的模拟(及其预测结果)都可能是错的。 最近, 由美国佐治亚大学的费伦博格博士作出的一分报告证明了最普遍用以产生随机数串 的计算机程序中有5个在用于一个简单的模拟磁性晶体中原子行为的数学模型时出现错误。科学家们发现, 出现这些错误的根源在于这5个程序产生的数串其实并不随机, 它们实际上隐藏了一些相互关系和样式, 这一点只是在这种微小的非随机性歪曲了晶体模型的已知特 性时才表露出来。贝尔实验室的里德博士告诫人们记住伟大的诺伊曼的忠告:“任何人如果相信计算机能够产生出真正的随机的数序组都是疯子。” 蒙特卡罗方法(MC) 蒙特卡罗(Monte Carlo)方法: 蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,属于计算数学的一个分支,它是在本世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。这也是我们采用该方法的原因。 蒙特卡罗方法的基本原理及思想如下: 当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。 蒙特卡罗解题三个主要步骤: 构造或描述概率过程: 对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。 实现从已知概率分布抽样: 构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样

一、蒙特卡洛随机模拟

系列一 蒙特卡洛随机模拟 实验目的:学会用计算机随机模拟方法来解决随机性问题 蒙特卡洛模拟法简介 蒙特卡洛(Monte Carlo)方法是一种应用随机数来进行计算机摸你的方法。此方法对研究对象进行随机抽样,通过对样本值的观察统计,求得所研究系统的某些参数。作为随机模拟方法,起源可追溯到18世纪下半叶蒲峰实验。 蒙特卡洛模拟法的应用领域 蒙特卡洛模拟法的应用领域主要有: 1.直接应用蒙特卡洛模拟:应用大规模的随机数列来模拟复杂系统,得到某些参数或重要指标。 2.蒙特卡洛积分:利用随机数列计算积分,维数越高,积分效率越高。 蒙特卡洛模拟法求解步骤 应用此方法求解工程技术问题可以分为两类:确定性问题和随机性问题。解题步骤如下: 1.根据提出的问题构造一个简单、适用的概率模型或随机模型,使问题的解对应于该模型中随机变量的某些特征(如概率、均值和方差等),所构造的模型在主要特征参量方面要与实际问题或系统相一致 2 .根据模型中各个随机变量的分布,在计算机上产生随机数,实现一次模拟过程所需的足够数量的随机数。通常先产生均匀分布的随机数,然后生成服从某一分布的随机数,方可进行随机模拟试验。 3. 根据概率模型的特点和随机变量的分布特性,设计和选取合适的抽样方法,并对每个随机变量进行抽样(包括直接抽样、分层抽样、相关抽样、重要抽样等)。 4.按照所建立的模型进行仿真试验、计算,求出问题的随机解。 5. 统计分析模拟试验结果,给出问题的概率解以及解的精度估计。 在可靠性分析和设计中,用蒙特卡洛模拟法可以确定复杂随机变量的概率分布和数字特征,可以通过随机模拟估算系统和零件的可靠度,也可以模拟随机过程、寻求系统最优参数等。 一. 预备知识: 随机数的产生 提示:均匀分布(0, 1)U 的随机数可由C 语言或Matlab 自动产生,在此基础上可产生其他分布的随机数. 1.逆变换法: 设随机变量U 服从(0,1)上的均匀分布,则)(1U F X -=的分布函数为)(x F . 步骤:(1) 产生)1,0(U 的随机数U ;(2) 计算)(1 U F X -=, 则X 服从)(x F 分布. 问题:练习用此方法产生常见分布随机数.例如“指数分布,均匀分布),(b a U ”.还有其它哪种常见分布的随机数可用此方法方便产生?

蒙特卡洛方法

蒙特卡洛方法 1、蒙特卡洛方法的由来 蒙特卡罗分析法(Monte Carlo method),又称为统计模拟法,是一种采用随机抽样(Random Sampling)统计来估算结果的计算方法。由于计算结果的精确度很大程度上取决于抽取样本的数量,一般需要大量的样本数据,因此在没有计算机的时代并没有受到重视。 第二次世界大战时期,美国曼哈顿原子弹计划的主要科学家之一,匈牙利美藉数学家约翰·冯·诺伊曼(现代电子计算机创始人之一)在研究物质裂变时中子扩散的实验中采用了随机抽样统计的手法,因为当时随机数的想法来自掷色子及轮盘等赌博用具,因此他采用摩洛哥著名赌城蒙特卡罗来命名这种计算方法,为这种算法增加了一层神秘色彩。 蒙特卡罗方法提出的初衷是用于物理数值模拟问题, 后来随着计算机的快速发展, 这一方法很快在函数值极小化、计算几何、组合计数等方面得到应用, 于是它作为一种独立的方法被提出来, 并发展成为一门新兴的计算科学, 属于计算数学的一个分支。如今MC方法已是求解科学、工程和科学技术领域大量应用问题的常用数值方法。 2、蒙特卡洛方法的核心—随机数 蒙特卡洛方法的基本理论就是通过对大量的随机数样本进行统计分析,从而得到我们所需要的变量。因此蒙特卡洛方法的核心就是随机数,只有样本中的随机数具有随机性,所得到的变量值才具有可信性和科学性。

在连续型随机变量的分布中, 最基本的分布是[0, 1]区间上的均匀分布, 也称单位均匀分布。由该分布抽取的简单子样ξ1,ξ2ξ3……称为随机数序列, 其中每一个体称为随机数, 有时称为标准随机数或真随机数, 独立性和均匀性是其必备的两个特点。真随机数是数学上的抽象, 真随机数序列是不可预计的, 因而也不可能重复产生两个相同的真随机数序列。真随机数只能用某些随机物理过程来产生, 如放射性衰变、电子设备的热噪音、宇宙射线的触发时间等。 实际使用的随机数通常都是采用某些数学公式产生的,称为伪随机数。真随机数只是一种数学的理想化概念,实际中我们所接触到的和使用的都是伪随机数。要把伪随机数当成真随机数来使用, 必须要通过随机数的一系列的统计检验。 无论伪随机数用什么方法产生,它的局限性都在于这些随机数总是一个有限长的循环集合, 而且序列偏差的上确界达到最大值。所以若能产生低偏差的确定性序列是很有用的,产生的序列应该具有这样的性质, 即任意长的子序列都能均匀地填充函数空间。 人们已经产生了若干种满足这个要求的序列,如Halton序列、Faure序列、Sobol序列和Niederreiter序列等。称这些序列为拟随机数序列。伪随机序列是为了模拟随机性, 而拟随机序列更致力于均匀性。 3、蒙特卡洛方法的原理 当问题可以抽象为某个确定的数学问题时,应当首先建立一个恰当的概率模型,即确定某个随机事件A或随机变量X,使得待求的解等

蒙特卡罗仿真原理

蒙特卡罗仿真原理 蒙特卡罗(MonteCarlo)方法,又称随机抽样或统计模拟方法,泛指所有基于统计采样进行数值计算的方法。在第二次世界大战期间,美国参与“曼哈顿计划’’的几位科学家Stanislaw Ulam,John Von Neumann 和N.Metropolis等首先将这种方法用于解决原子弹研制中的一个关键问题。后来N.Metropolis用驰名世界的赌城---摩纳哥的MonteCarlo一来命名这种方法,为它蒙上了一层神秘色彩。随着现代计算机技术的飞速发展,蒙特卡罗方法已经在统计物理、经济学、社会学甚至气象学等方面的科学研究中发挥了极其重要的作用,将蒙特卡罗方法用于仿真即为蒙特卡罗仿真。蒙特卡罗方法适用于两类问题,第一类是本身就具有随机性的问题,第二类是能够转化为概率模型进行求解的确定性问题。 ※蒙特卡罗方法求解问题的一般步骤 用蒙特卡罗方法求解问题一般包括构造或描述概率过程、从已知概率分布抽样和建立估计量三个步骤。 构造或描述概率过程实际上就是建立随机试验模型,构造概率过程是对确定性问题而言的,描述概率过程是对随机性问题而言的,不同的问题所需要建立的随机试验模型各不相同。 所谓的从已知概率分布抽样指的是随机试验过程,随机模型中必要包含某些已知概率分布的随机变量或随机过程作为输入,进行随机试验的过程就是对这些随机变量的样本或随机过程的样本函数作为输入产生相应输出的过程,因此通常被称为对已知概率分布的抽样。如何产生已知分布的随机变量或随机过程是蒙特卡罗方法中的一个关键问题。 最后一个步骤是获得估计量,蒙特卡罗方法所得到的问题的解总是对真实解的一个估计,本身也是一个随机变量,这个随机变量是由随机试验模型输出通过统计处理得到的。

MATLAB的蒙特卡洛仿真

实验十五: MATLAB 的蒙特卡洛仿真 一、实验目的 1. 了解蒙特卡洛仿真的基本概念。 2. 了解蒙特卡洛仿真的某些应用 二.实验内容与步骤 1. 蒙特卡洛(Monte Carlo )仿真的简介 随机模拟方法,也称为Monte Carlo 方法,是一种基于“随机数”的计算方法。这一方法源于美国在第一次世界大战进行的研制原子弹的“曼哈顿计划”。该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo 来命名这种方法,为它蒙上了一层神秘色彩。冯·诺伊曼是公理化方法和计算机体系的领袖人物,Monte Carlo 方法也是他的功劳。 事实上,Monte Carlo 方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”。18世纪下半叶的法国学者Buffon 提出用投点试验的方法来确定圆周率π的值。这个著名的Buffon 试验是Monte Carlo 方法的最早的尝试! 历史上曾有几位学者相继做过这样的试验。不过他们的试验是费时费力的,同时精度不够高,实施起来也很困难。然而,随着计算机技术的飞速发展,人们不需要具体实施这些试验,而只要在计算机上进行大量的、快速的模拟试验就可以了。Monte Carlo 方法是现代计算技术的最为杰出的成果之一,它在工程领域的作用是不可比拟的。 蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数估计量和统计量,进而研究其分布特征的方法。具体的,当系统中各个单元的可靠性特征量已知,但系统的可靠性过于复杂,难以建立可靠性预计的精确数学模型或模型太复杂而不便应用时,可用随机模拟法近似计算出系统可靠性的预计值;随着模拟次数的增多,其预计精度也逐渐增高。由于涉及到时间序列的反复生成,蒙特卡洛模拟法是以高容量和高速度的计算机为前提条件的,因此只是在近些年才得到广泛推广。 2. MC 的原理 针对实际问题建立一个简单且便于实现的概率统计模型,使问题的解对应于该模型中随机变量的概率分布或其某些数字特征,比如,均值和方差等。所构造的模型在主要特征参量方面要与实际问题或系统相一致的。 根据模型中各个随机变量的分布,在计算机上产生随机数,实现一次模拟过程所需的足够数量的随机数。通常先产生均匀分布的随机数,然后生成服从某一分布的随机数,再进行随机模拟试验。 收敛性: 由大数定律, Monte-Carlo 模拟的收敛是以概率而言的. 误差: 用频率估计概率时误差的估计,可由中心极限定理,给定置信水平 的条件下,有: ? ? 模拟次数:由误差公式得 3. 定积分的MC 计算原理 N U σεα2 /1||-≤))((X g Var =σ2 2/1)(εσα-≥U N

蒙特卡洛模拟方法作业及答案(附程序)

蒙特卡洛习题 1.利用蒙特卡洛计算数值积分 () ()() 1280ln 1tan x x x xe dx +++? clear all ;clc;close all ; n=1000; count=0; x=0:0.01:1; y=log((1+x).^2+(tan(x).^8)+x.*exp(x)); plot(x,y,'linewidth',2) hold on for i=1:n x1=rand; y1=rand*y(end); plot(x1,y1,'g*') pause(0.01) if y1

2.分别用理论计算和计算机模拟计算,求连续掷两颗骰子,点数之和大于6且第一次掷出的点数大于第二次掷出点数的概率。 clear all;clc;close all; count=0; n=100000; for i=1:n x=floor(rand*6+1); y=ceil(rand*6); if x+y>6&&x>y count=count+1; end end P=count/n 3.

clear all;clc;close all; count=0; n=2000; ezplot('x^2/9+y^2/36=1'); hold on ezplot('x^2/36+y^2=1'); hold on ezplot('(x-2)^2+(y+1)^2=9') for i=1:n x=rand*12-6; y=rand*12-6; plot(x,y,'gh','linewidth',2) pause(0.01) if x^2/9+y^2/36<1&&x^2/36+y^2<1&&(x-2)^2+(y+1)^2<9

R软件 蒙特卡罗模拟

R使用指南 打开R 下图是R软件的主窗口,R软件的界面与Windows的其他编程软件类似,由一些菜单和快捷按钮组成。快捷按钮下面的窗口便是命令输入窗口,它也是部分运算结果的输出窗口,有些运算结果则会在新建的窗口中输出。 当一个R 程序需要你输入命令时,它会显示命令提示符。默认的提示符是>。技术上来说,R 是一种语法非常简单的表达式语言(expression language)。它大小写敏感,因此A 和a 是不同的符号且指向不同的变量。可以在R 环境下使用的命名字符集依赖于R 所运行的系统和国家(就是系统的locale 设置)。通常,数字,字母,. 和都是允许的(在一些国家还包括重音字母)。不过,一个命名必须以. 或者字母开头,并且以. 开头时第二个字符不允许是数字。基本命令要么是表达式(expressions)要么就是赋值(assignments)。如果一条命令是表达式,那么它将会被解析(evaluate),并将结果显示在屏幕上,同时清空该命令所占内存。赋值同样会解析表达式并且把值传给变量但结果不会自动显示在屏幕上。命令可以被(;)隔开,或者另起一行。基本命令可以通过大括弧(f和g) 放在一起构成一个复合表达式(compound expression)。注释几乎可以放在任何地方7。一行中,从井号(#)开始到句子收尾之间的语句就是注释。如果一条命令在一行结束的时候在语法上还不完整,R 会给出一个不同的提示符,默认是+。该提示符会出现在第二行和随后的行中,它持续等待输入直到一条命令在语法上是完整的。该提示符可以被用户修改。在后面的文档中,我们常常省略延续提示符(continuation prompt),以简单的缩进表示这种延续。 R的帮助

浅析蒙特卡洛方法原理及应用

浅析蒙特卡洛方法原理及应用 于希明 (英才学院1236103班测控技术与仪器专业6120110304) 摘要:本文概述了蒙特卡洛方法产生的历史及基本原理,介绍了蒙特卡洛方法的最初应用——蒲丰投针问题求圆周率,并介绍了蒙特卡洛方法在数学及生活中的一些简单应用,最后总结了蒙特卡洛方法的特点。 关键词:蒙特卡洛方法蒲丰投针生活应用 蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。它是以概率统计理论为基础, 依据大数定律( 样本均值代替总体均值) , 利用电子计算机数字模拟技术, 解决一些很难直接用数学运算求解或用其他方法不能解决的复杂问题的一种近似计算法。蒙特卡洛方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。 一、蒙特卡洛方法的产生及原理 蒙特卡洛方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼首先提出。数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。在这之前,蒙特卡洛方法就已经存在。1777年,法国数学家蒲丰(Georges Louis Leclere de Buffon,1707—1788)提出用投针实验的方法求圆周率π。这被认为是蒙特卡洛方法的起源。 其基本原理如下:由概率定义知,某事件的概率可以用大量试验中该事件发生的频率来估算,当样本容量足够大时,可以认为该事件的发生频率即为其概率。因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。蒙特卡洛法正是基于此思路进行分析的。 设有统计独立的随机变量Xi(i=1,2,3,…,k),其对应的概率密度函数分别为fx1,fx2,…,fxk,功能函数式为Z=g(x1,x2,…,xk)。首先根据各随机变量的相应分布,产生N组随机数x1,x2,…,xk值,计算功能函数值Zi=g(x1,x2,…,xk)(i=1,2,…,N),若其中有L组随机数对应的功能函数值Zi≤0,则当N→∞时,根据伯努利大数定理及正态随机变量的特性有:结构失效概率,可靠指标。 二、蒲丰投针问题 作为蒙特卡洛方法的最初应用, 是解决蒲丰投针问题。1777 年, 法国数学家蒲丰提出利用投针实验求解圆周率的问题。设平面上等距离( 如为2a) 画有一些平行线, 将一根长度为2l( l< a) 的针任意投掷到平面上, 针与任一平行线相交的频率为p 。针的位置可以用针的中心坐标x 和针与平行线的夹角θ来决定。任意方向投针, 便意味着x与θ可以任意取一值, 只是0≤x ≤a, 0≤θ≤π。那么, 投针与任意平行线相交的条件为x ≤ l sinθ。相交频率p 便可用下式求

蒙特卡罗也称统计模拟方法

蒙特卡罗也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。蒙特卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特·罗方法正是以概率为基础的方法。与它对应的是确定性算法。 蒙特卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。 基本思想 当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。有一个例子可以使你比较直观地了解蒙特卡罗方法:假设我们要计算一个不规则图形的面积,那么图形的不规则程度和分析性计算(比如,积分)的复杂程度是成正比的。蒙特卡罗方法是怎么计算的呢?假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。 工作过程 在解决实际问题的时候应用蒙特卡罗方法主要有两部分工作: 用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。 用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。 计算步骤 使用蒙特卡罗方法进行分子模拟计算是按照以下步骤进行的: ① 使用随机数发生器产生一个随机的分子构型。 ②对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。 ③计算新的分子构型的能量。 ④比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。 若新的分子构型能量低于原分子构型的能量,则接受新的构型,使用这个构型重复再做下一次迭代。 若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼常数,同时产生一个随机数。

蒙特卡罗方法(MC)

蒙特卡罗方法(MC) 蒙特卡罗(Monte Carlo)方法: 蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,属于计算数学的一个分支,它是在本世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。 传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。这也是我们采用该方法的原因。 蒙特卡罗方法的基本原理及思想如下: 当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并 用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。 蒙特卡罗解题三个主要步骤: 构造或描述概率过程: 对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。 实现从已知概率分布抽样: 构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。 建立各种估计量: 一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。 例如:检验产品的正品率问题,我们可以用1表示正品,0表示次品,于是对每个产品检验可以定义如下的随机变数Ti,作为正品率的估计量: 于是,在N次实验后,正品个数为:

蒙特卡洛模拟原理及步骤

二、蒙特卡洛模拟原理及步骤 (一)蒙特卡洛模拟原理:经济生活中存在大量的不确定与风险问题,很多确定性问题实际上是不确定与风险型问题的特例与简化,财务管理、管理会计中同样也存在大量的不确定与风险型问题,由于该问题比较复杂,一般教材对此问题涉及较少,但利用蒙特卡洛模拟可以揭示不确定与风险型问题的统计规律,还原一个真实的经济与管理客观面貌。 与常用确定性的数值计算方法不同,蒙特卡洛模拟是用来解决工程和经济中的非确定性问题,通过成千上万次的模拟,涵盖相应的可能概率分布空间,从而获得一定概率下的不同数据和频度分布,通过对大量样本值的统计分析,得到满足一定精度的结果,因此蒙特卡洛模拟是进行不确定与风险型问题的有力武器。 1、由于蒙特卡洛模拟是以实验为基础的,因此可以成为财务人员进行风险分析的“实验库”,获得大量有关财务风险等方面的信息,弥补确定型分析手段的不足,避免对不确定与风险决策问题的误导; 2、财务管理、管理会计中存在大量的不确定与风险型问题,目前大多数教材很少涉及这类问题,通过蒙特卡洛模拟,可以对其进行有效分析,解决常用决策方法所无法解决的难题,更加全面深入地分析不确定与风险型问题。 (二)蒙特卡洛模拟步骤以概率型量本利分析为例,蒙特卡洛模拟的分析步骤如下: 1、分析评价参数的特征,如企业经营中的销售数量、销售价格、产品生产的变动成本以及固定成本等,并根据历史资料或专家意见,确定随机变量的某些统计参数; 2、按照一定的参数分布规律,在计算机上产生随机数,如利用EXCEL提供的RAND函数,模拟量本利分析的概率分布,并利用VLOOKUP寻找对应概率分布下的销售数量、销售价格、产品生产的变动成本以及固定成本等参数; 3、建立管理会计的数学模型,对于概率型量本利分析有如下关系式,产品利润=产品销售数量×(产品单位销售价格-单位变动成本)-固定成本,这里需要说明的是以上分析参数不是确定型的,是依据某些概率分布存在的; 4、通过足够数量的计算机仿真,如文章利用RAND、VLOOKUP等函数进行30000次的模拟,得到30000组不同概率分布的各参数的排列与组合,由于模拟的数量比较大,所取得的实验数据具有一定的规律性; 5、根据计算机仿真的参数样本值,利用函数MAX、MIN、A VERAGE等,求出概率型量本利分析评价需要的指标值,通过对大量的评价指标值的样本分析,得到量本利分析中的利润点可能的概率分布,从而掌握企业经营与财务中的风险,为财务决策提供重要的参考。三、概率型量本利分析与比较 (一)期望值分析方法假设某企业为生产与销售单一产品的企业,经过全面分析与研究,预计未来年度的单位销售价格、销售数量、单位变动成本和固定成本的估计值及相应的概率如表1,其中销售数量单位为件,其余反映价值的指标单位为元,试计算该企业的生产利润。表1概率型量本利分析参数 项目概率数值 单位销售价格0.3 40 0.4 43 0.3 45 单位变动成本0.4 16 0.2 18 0.4 20 固定成本0.6 28000 0.4 30000

蒙特卡罗方法学习总结

图1-1 蒙特卡罗方法学习总结 核工程与核技术2014级3班张振华20144530317 一、蒙特卡罗方法概述 1.1蒙特卡罗方法的基本思想 1.1.1基本思想 蒙特卡罗方的基本思想就是,当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时,通过某种试验方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。 1.1.2计算机模拟打靶游戏 为了能更为深刻地理解蒙特卡罗方法的基本思想,我们学习了蒲丰氏问题和打靶游戏两大经典例子。下面主要对打靶游戏进行剖析、计算机模拟(MATLAB 程序)。 设某射击运动员的弹着点分布如表1-1 所示, 首先用一维数轴刻画出已知该运动员的弹 着点的分布如图1-1所示。研究打靶游戏,我 们不用考察子弹的运动轨迹,只需研究每次“扣动扳机”后的子弹弹着点。每一环数对应唯一确定的概率,且注意到概率分布函数有单调不减和归一化的性质。首先我们产生一个在(0,1)上均匀分布的随机数(模拟扣动扳机),然后将该随机数代表的点投到P 轴上(模拟子弹射向靶上的一个确定点),得到对应的环数(即子弹的弹着点),模拟打靶完成。反复进行N 次试验,统计出试验结果的样本均值。样本均值应当等于数学期望值,但允许存在一定的偏差,即理论计算值应该约等于模拟试验结果。 clear all;clc; N=100000;s=0; for n=1:N %step 4.重复N 次打靶游戏试验

x=rand(); %step 1.产生在(0,1)上均匀分布的随机数if(x<=0.1) %step 2.若随机数落在(0.0,0.1)上,则代表弹着点在7环g=7; s=s+g; %step 3.统计总环数elseif(x<=0.2) %step 2.若随机数落在(0.1,0.2)上,则代表弹着点在8环g=8;s=s+g; elseif(x<=0.5) %step 2.若随机数落在(0.2,0.5)上,则代表弹着点在9环g=9;s=s+g; else %step 2.若随机数落在(0.5,1.0)上,则代表弹着点在10环 g=10;s=s+g; end end gn_th=7*0.1+8*0.1+9*0.3+10*0.5; %step 5.计算、输出理论值fprintf('理论值:%f\n',gn_th); gn=s/N; %step 6.计算、输出试验结果 fprintf('试验结果:%f\n',gn);1.2蒙特卡罗方法的收敛性与误差 1.2.1收敛性 由大数定律可知,应用蒙特卡罗方法求近似解,当随机变量Z 的简单子样数N 趋向于无穷大(N 充分大)时,其均值依概率收敛于它的数学期望。 1.2.2误差 由中心极限定理可知,近似值与真值的误差为N Z E Z N αλ<-)(?。式中的αλ的值可以根据给出的置信水平,查阅标准正态分布表来确定。 1.2.3收敛性与误差的关系 在一般情况下,求具有有限r 阶原点矩()∞

蒙特卡罗方法及应用实验讲义2016资料

蒙特卡罗方法及应用 实验讲义 东华理工大学核工系 2016.8

实验一 蒙特卡罗方法基本思想 一、实验目的 1、了解蒙特卡罗方法方法的基本思想; 2、掌握蒙特卡罗方法计算面积、体积的方法; 3、掌握由已知分布的随机抽样方法。 二、实验原理 Monte Carlo 方法,又称统计模拟方法或计算机随机模拟方法,是一种基于“随机数”进行数值模拟的方法,一种采用统计抽样理论近似求解物理或数学问题的方法。 如待求量可以表述成某些特征量的期望值、某些事件出现的概率或两者的函数形式,那么可采用蒙特卡罗方法求解。在求解某些特征量的期望值或某些事件出现的概率时,必须构建合符实际的数学模型。例如采用蒙特卡罗方法计算某函数所围面积时,构建的数学模型是构造一已知面积的可均匀抽样区域,在该区域投点,由伯努利定理大数定理可知,进入待求区域投点的频率依概率1收敛于该事件出现的概率(面积之比)。 由已知分布的随机抽样方法指的是由已知分布的总体中抽取简单子样。具体方法很多,详见教材第三章。 三、实验内容 1、安装所需计算工具(MATLAB 、fortran 、C++等); 2、学习使用rand(m,n)、unifrnd(a,b,m,n)函数 3、求解下列问题: 3.0、蒲丰氏投针求圆周率。 3.1、给定曲线y =2 – x 2 和曲线y 3 = x 2,曲线的交点为:P 1( – 1,1 )、P 2( 1,1 )。曲线围成平面有限区域,用蒙特卡罗方法计算区域面积; 3.2 、计算1z z ?≥??≤??所围体积 其中{(,,)|11,11,02}x y z x y z Ω=-≤≤-≤≤≤≤。 4、对以下已知分布进行随机抽样:

蒙特卡洛仿真

实验12 检测性能的蒙特卡洛仿真 1、实验目的 了解蒙特卡洛仿真的基本概念,掌握蒙特卡洛仿真方法在分析检测性能方面的应用,通过蒙特卡洛仿真,对检测性能作出评估,通过和理论比较。 2、实验原理 正如(8.1.16)式所指出的那样,最佳检验总可以化简为 10() H T H >γ

可见积分的数值计算问题就转化成了一个概率的计算问题,而概率可以用相对频数来近似,相对频数可通过统计试验的方法求得。具体方法是将M 个随机点(X,Y)均匀地投放到x-y 平面上的正方形区域内,如果有N 个点落在区域G 内,那么相对频数为N/M ,因此, ?N I M = (4) (8.3.8)式是对积分I 的一个估计,很显然,估计的精度取决于试验次数M ,M 也称为蒙特卡洛仿真次数。下面给出了用蒙特卡洛方法计算积分I 的MATLAB 程序。 syms x; y1=int(0.5-(0.5-x).^2,0,1); zhenshizhi=eval(y1) N=0; x1=unifrnd(0,1,1,M); y1=unifrnd(0,1,1,M); for i=1:M if y1(i)<=(0.5-(0.5-x1(i)).^2) N=N+1; end end fangzhenzhi=N/M 从以上的例子可以看出应用蒙特卡洛仿真的一般步骤: 1 建立合适的概率模型; 2 进行多次重复试验; 3 对重复试验结果进行统计分析(估计相对频数、均值等)、分析精度。 利用蒙特卡洛仿真方法,可以仿真检测器的性能。假定判决表达式如(1)式所示,(3)式给出了检测概率的表达式,如果用蒙特卡洛仿真方法估计检测概率,则 11?(()M i i P U T M ==?γ∑z (5) 其中z i 表示第i 次仿真试验所用到的观测矢量。由于

蒙特卡罗方法简介

第三章蒙特卡罗方法简介 3.1 Monte Carlo方法简介 Monte Carlo方法是诺斯阿拉莫斯实验室在总结其二战期间工作(曼哈顿计划)的基础上提出来的。Monte Carlo的发明,主要归功于Enrico Fermi、Von Neumann和Stanislaw Ulam等。自二战以来,Monte Carlo方法由于其在解决粒子输运问题上特有的优势而得到了迅速发展,并在核物理、辐射物理、数学、电子学等方面得到了广泛的应用。Monte Carlo的基本思想就是基于随机数选择的统计抽样,这和赌博中掷色子很类似,故取名Monte Carlo。 Monte Carlo方法非常适于解决复杂的三维问题,对于不能用确定性方法解决的问题尤其有用,可以用来模拟核子与物质的相互作用。在粒子输运中,Monte Carlo技术就是跟踪来自源的每个粒子,从粒子产生开始,直到其消亡(吸收或逃逸等)。在跟踪过程中,利用有关传输数据经随机抽样来决定粒子每一步的结果[6]。 3.2 Monte Carlo发展历程 MCNP程序全名为Monte Carlo Neutron and Photon Transport Code (蒙特卡罗中子-光子输运程序)。Monte Carlo模拟程序是在1940年美国实施“发展核武器计划”时,由洛斯阿拉莫斯实验室(LANL)提出的,为其所投入的研究、发展、程序编写及参数制作超过了500人年。1950年Monte Carlo方法的机器语言出现, 1963年通用性的Monte Carlo方法语言推出,在此基础上,20世纪70年代中期由中子程序和光子程序合并,形成了最初的MCNP程序。自那时起,每2—3年MCNP更新一次, 版本不断发展,功能不断增加,适应面也越来越广。已知的MCNP程序研制版本的更新时间表如下:MCNP-3:1983年写成,为标准的FORTRAN-77版本,截面采用ENDF /B2III。 MCNP-3A:1986年写成,加进了多种标准源,截面采用ENDF /B2I V[20]。

运用蒙特卡罗模拟进行风险分析

运用蒙特卡罗模拟进行风险分析 蒙特卡罗模拟由著名的摩纳哥赌城而得名,他是一种非常强有力的方法学。对专业人员来说,这种模拟为方便的解决困难而复杂的实际问题开启了一扇大门。估计蒙特卡罗模拟最著名的早期使用是诺贝尔奖物理学家Enrico Fermi(有时也说是原子弹之父)在1930年的应用,那时他用一种随机方法来计算刚发现的中子的性质。蒙特卡罗模拟是曼哈顿计划所用到的模拟的核心部分,在20世纪50年代蒙特卡罗模拟就用在Los Alamos国家实验室发展氢弹的早期工作中,并流行于物理学和运筹学研究领域。兰德公司和美国空军是这个时期主要的两个负责资助和传播蒙特卡罗方法的组织,今天蒙特卡罗模拟也被广泛应用于不同的领域,包括工程,物理学,研发,商业和金融。 简而言之,蒙特卡罗模拟创造了一种假设的未来,它是通过产生数以千计甚至成千上万的样本结果并分析他们的共性实现的。在实践中,蒙特卡罗模拟法用于风险分析,风险鉴定,敏感度分析和预测。模拟的一个替代方法是极其复杂的随机闭合数学模型。对一个公司的分析,使用研究生层次的高等数学和统计学显然不合逻辑和实际。一个出色的分析家会使用所有他或她可得的工具以最简单和最实际的方式去得到相同的结果。任何情况下,建模正确时,蒙特卡罗模拟可以提供与更完美的数学方法相似的答案。此外,有许多实际生活应用中不存在闭合模型并且唯一的途径就是应用模拟法。那么,到底什么是蒙特卡罗模拟以及它是怎么工作的? 什么是蒙特卡罗模拟? 今天,高速计算机使许多过去看来棘手的复杂计算成为可能。对科学家,工程师,统计学家,管理者,商业分析家和其他人来说,计算机使创建一个模拟现实的模型成为可能,这有助于做出预测,其中一种方法应用于模拟真实系统,它通过调查数以百计甚至数以千计的可能情况来解释随机性和未来不确定性。结果通过编译后用于决策。这就是蒙特卡罗模拟的全部内容。 形式最简单的蒙特卡罗模拟是一个随机数字生成器,它对预测,估计和风险分析都很有用。一个模拟计算模型的许多情况,这通过反复地从预先定义的特定变量概率分布中采集数据并将之应用于模型来实现。因为所有的情况都产生相应的结果,每种情况都可以蕴含一种预测。预测的是你定义为重要模型结果的事项(通常含有公式或函数)。 将蒙特卡罗模拟法想象为从一个大篮子里可放回的反复拿出高尔夫球。拦在的大小和形

蒙特卡洛方法及其在风险评估中的应用

蒙特卡洛方法及其应用 1风险评估及蒙特卡洛方法概述 1.1蒙特卡洛方法。 蒙特卡洛方法,又称随机模拟方法或统计模拟方法,是在20世纪40年代随着电子计算机的发明而提出的。它是以统计抽样理论为基础,利用随机数,经过对随机变量已有数据的统计进行抽样实验或随机模拟,以求得统计量的某个数字特征并将其作为待解决问题的数值解。 蒙特卡洛模拟方法的基本原理是:假定随机变量X1、X2、X3……X n、Y,其中X1、X2、X3……X n 的概率分布已知,且X1、X2、X3……X n、Y有函数关系:Y=F(X1、X2、X3……X n),希望求得随机变量Y的近似分布情况及数字特征。通过抽取符合其概率分布的随机数列X1、X2、X3……X n带入其函数关系式计算获得Y的值。当模拟的次数足够多的时候,我们就可以得到与实际情况相近的函数Y的概率分布和数字特征。 蒙特卡洛法的特点是预测结果给出了预测值的最大值,最小值和最可能值,给出了预测值的区间范围及分布规律。 1.2风险评估概述。 风险表现为损损益的不确定性,说明风险产生的结果可能带来损失、获利或是无损失也无获利,属于广义风险。正是因为未来的不确定性使得每一个项目都存在风险。对于一个公司而言,各种投资项目通常会具有不同程度的风险,这些风险对于一个公司的影响不可小视,小到一个项目投资资本的按时回收,大到公司的总风险、公司正常运营。因此,对于风险的测量以及控制是非常重要的一个环节。 风险评估就是量化测评某一事件或事物带来的影响的可能程度。根据“经济人”假设,收益最大化是投资者的主要追求目标,面对不可避免的风险时,降低风险,防止或减少损失,以实现预期最佳是投资的目标。 当评价风险大小时,常有两种评价方式:定性分析与定量分析法。定性分析一般是根据风险度或风险大小等指标对风险因素进行优先级排序,为进一步分析或处理风险提供参考。这种方法适用于对比不同项目的风险程度,但这种方法最大的缺陷是在于,在多个项目中风险最小者也有可能亏损。而定量分析法则是将一些风险指标量化得到一系列的量化指标。通过这些简单易懂的指标,才能使公司的经营者、投资者对于项目分风险有正确的评估与判断,

蒙特卡洛方法模拟小例子

例在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点. 经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁伤敌人一门火炮,有1/6的射击效果能全部毁伤敌人火炮. 现在希望能用某种方式把我方将要对敌人实施的20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。 使用蒙特卡洛方法模拟50次打击结果: function [out1 out2 out3 out4]=Msc(N) % N开炮次数 % out1射中概率 % out2平均每次击中次数 % out3击中敌人一门火炮的射击总数 % out4击中敌人2门火炮的射击总数 k1=0; k2=0; k3=0; for i=1:N x0=randperm(2)-1; y0=x0(1); if y0==1 fprintf('第%d次:指示正确||',i); x1=randperm(6); y1=x1(1); if y1==1|y1==2|y1==3 fprintf('第%d次:击中0炮||',i); k1=k1+1; elseif y1==4|y1==5 fprintf('第%d次:击中1炮||',i); k2=k2+1; else

fprintf('第%d次:击中2炮||',i); k3=k3+1; end else fprintf('第%d次:指示错误,击中0炮||',i); k1+1; end fprintf('\n'); end out1=(k2+k3)/N; out2=(0*k1+k2+2*k3)/20; out3=k2/N; out4=k3/N; 运行: 1.[out1 out2 out3 out4]=Msc(50) 结果: 1.第1次:指示正确||第1次:击中2炮|| 2.第2次:指示错误,击中0炮|| 3.第3次:指示错误,击中0炮|| 4.第4次:指示正确||第4次:击中0炮|| 5.第5次:指示错误,击中0炮|| 6.第6次:指示正确||第6次:击中1炮|| 7.第7次:指示正确||第7次:击中0炮|| 8.第8次:指示错误,击中0炮|| 9.第9次:指示正确||第9次:击中2炮|| 10.第10次:指示正确||第10次:击中1炮|| 11.第11次:指示正确||第11次:击中1炮|| 12.第12次:指示正确||第12次:击中2炮|| 13.第13次:指示错误,击中0炮|| 14.第14次:指示正确||第14次:击中1炮|| 15.第15次:指示错误,击中0炮|| 16.第16次:指示错误,击中0炮|| 17.第17次:指示正确||第17次:击中0炮|| 18.第18次:指示错误,击中0炮||

相关主题
文本预览
相关文档 最新文档