计算材料学概述-之--蒙特卡洛方法ppt课件.ppt
《计算材料学概述-之--蒙特卡洛方法ppt课件.ppt》由会员分享,可在线阅读,更多相关《计算材料学概述-之--蒙特卡洛方法ppt课件.ppt(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算材料学概述计算材料学概述第三章第三章蒙特卡罗方法蒙特卡罗方法(Monte Carlo)主要内容主要内容o Monte Carlo模拟发展简介模拟发展简介o Monte Carlo模拟基本原理模拟基本原理o Monte Carlo模拟典型算法模拟典型算法o Monte Carlo模拟典型应用模拟典型应用 蒙特卡洛法是什么?蒙特卡洛法是什么?o 蒙特卡洛蒙特卡洛(Monte Carlo)方法,方法,是在简单的理论准则基础上,采用反复随即抽样的方法,解决复杂系统的问题。其实质是一种概率和统计的问题。o 蒙特蒙特卡罗方法卡罗方法(Monte Carlo method),也称统计模拟方法统计模拟方法
2、,是二十世纪四十年代中期由于科学技术的发展和电子计算机电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。 MC的基本思想 MCMC基本思想很早以前就被人们所发现和利用。基本思想很早以前就被人们所发现和利用。1717世纪,人们就知道用事件发生的世纪,人们就知道用事件发生的“频率频率”来决定来决定事件的事件的“概率概率”。但要真正实现随机抽样是很困难。但要真正实现随机抽样是很困难的,甚至几乎是不可能的。的,甚至几乎是不可能的。 高速计算机的出现,使得用数学方法在计算机高速计算机的出现,使得用数学方法在计算
3、机上大量、快速地模拟这样的试验成为可能。上大量、快速地模拟这样的试验成为可能。确定性系统确定性系统随机性系统随机性系统模拟模拟自然界自然界Monte-Carlo模拟,即随机模拟(重复模拟,即随机模拟(重复“试验试验”)重复试验重复试验计算机模拟计算机模拟Monte Carlo方法:方法:亦称统计模拟方法,亦称统计模拟方法,statistical simulation method 利用随机数进行数值模拟的方法利用随机数进行数值模拟的方法Monte Carlo名字的由来:名字的由来: 是由是由Metropolis在二次世界大战期间提出的:在二次世界大战期间提出的:Manhattan计划,研究与原
4、子弹有关的中子输运过程;计划,研究与原子弹有关的中子输运过程; Monte Carlo是摩纳哥(是摩纳哥(monaco)的首都,该城以赌博闻名的首都,该城以赌博闻名Nicholas Metropolis (1915-1999)Monte-Carlo, MonacoMonte CarloMonte Carlo方法简史方法简史简单地介绍一下简单地介绍一下Monte Carlo方法的发展历史方法的发展历史1 1、BuffonBuffon投针实验:投针实验:18世纪,法国数学家世纪,法国数学家Comte de Buffon利用投针实验估计利用投针实验估计 的值的值dLp2dL1777年法国科学家布丰提
5、出的一种计算圆周率的方法年法国科学家布丰提出的一种计算圆周率的方法随机投随机投针法,即著名的针法,即著名的布丰投针布丰投针问题。这一方法的步骤是:问题。这一方法的步骤是: 1) 取一张白纸,在上面画上许多条间距为取一张白纸,在上面画上许多条间距为d的平行线。的平行线。 2) 取一根长度为取一根长度为l(ld) 的针,随机地向画有平行直线的纸上的针,随机地向画有平行直线的纸上掷掷n次,观察针与直线相交的次数,记为次,观察针与直线相交的次数,记为m 3)计算针与直线相交的概率)计算针与直线相交的概率 布丰本人证明了,这个概率是布丰本人证明了,这个概率是: p=2l/(d) ,为圆周率为圆周率 :利
6、用这个公式可以用概率的方法得到圆周率的近似值。下面是利用这个公式可以用概率的方法得到圆周率的近似值。下面是一些资料一些资料 实验者 年代 投掷次数 相交次数 圆周率估计值 沃尔夫 1850 5000 2531 3.1596 史密斯 1855 3204 1219 3.1554 德摩根 1880 600 383 3.137 福克斯 1884 1030 489 3.1595 拉泽里尼 1901 3408 1808 3.1415929 赖纳 1925 2520 859 3.1795 布丰投针实验是第一个用几何形式表达概率问题的例子,他首次使用随机实验处理确定性数学问题,为概率论和蒙特卡罗方法的发展起到
7、一定的推动作用。 Monte Carlo方法之方法之随机数的产生 许多计算机系统都有随机数生成函数F90: call random_seed call random_number(a)2、ISEED=RTC() X=RAN(ISEED)Y=RAN(ISEED)Matlab: x=rand(N) 产生元素在(0, 1)间随机分布的N*N矩阵 s= rand(state,0) 重设该生成函数到初始状态注意:上述随机数序列均具周期性,如上页random子程序的周期约230。实例一、计算值o 计算过程:计算过程:o 1 1、构造或描述问题的概率过程、构造或描述问题的概率过程o 2 2、从概率密度函数出
8、发进行随机抽样,实、从概率密度函数出发进行随机抽样,实现从已知概率分布的抽样,得到特征量的一现从已知概率分布的抽样,得到特征量的一些模拟结果些模拟结果计算均值计算均值Monte Carlo方法之方法之典型算法与应用o考虑平面上的一个边长为考虑平面上的一个边长为1 1的正方形及其内部的一个形状不规的正方形及其内部的一个形状不规则的则的“图形图形”,如何求出这个,如何求出这个“图形图形”的面积呢?的面积呢?Monte Monte CarloCarlo方法是这样一种方法是这样一种“随机化随机化”的方法:向该正方形的方法:向该正方形“随机随机地地”投掷投掷N N个点,若有个点,若有M M个点落于个点落
9、于“图形图形”内,则该内,则该“图形图形”的面积近似为的面积近似为M/NM/N。用该方法计算的基本思路是: 1 、根据圆面积的公式: s=R2 ,当R=1时,S=。 2、由于圆的方程是:x2+y2=1(x2为x的平方的意思),因此1/4圆面积为x轴、y轴和上述方程所包围的部分。 3、如果在1*1的正方形中均匀地落入随机点,则落入1/4圆中的点的概率就是1/4圆的面积。其4倍,就是圆面积。由于半径为1,该面积的值为的值。REAL R,R1,R2,PIISEED=RTC()N0=0N=300000DO I=1,NR1=RAN(ISEED)R2=RAN(ISEED)R=SQRT(R1*R1+R2*R
10、2)IF(R1.0)N0=N0+1END DOPI=4.0*N0/NWRITE(*,*)PIENDo面积的计算面积的计算f (x)x辛普逊方法辛普逊方法I = Sn蒙特蒙特-卡洛方法卡洛方法f (x)x在长方形中均匀投在长方形中均匀投N0组组(x,y)如如 yf(x), 则则 N=N+1I =(N/N0)S0SS011MC的优点oMCMC与传统数学方法相比,具有与传统数学方法相比,具有直观性强,简便易行的优点,直观性强,简便易行的优点,该方该方法能处理一些其他方法无法解决的负责问题,并且容易在计算机法能处理一些其他方法无法解决的负责问题,并且容易在计算机上实现,在很大程度上可以上实现,在很大程
11、度上可以代替许多大型、难以实现的复杂实验代替许多大型、难以实现的复杂实验和社会行为。无污染、无危险、能摆脱实验误差。和社会行为。无污染、无危险、能摆脱实验误差。Monte Carlo方法利用方法利用随机抽样随机抽样的方法来求解物理问题的方法来求解物理问题;数值解法数值解法:从一个物理系统的数学模型出发从一个物理系统的数学模型出发,通过求解一通过求解一系列的微分方程来的导出系统的未知状态系列的微分方程来的导出系统的未知状态;Monte Carlo方法方法并非只能用来解决包含随机过程并非只能用来解决包含随机过程的问题的问题: 例例如如:用用Monte Carlo方法计算定积分方法计算定积分. 对这
12、样的问题可将其转换成相关的随机过程对这样的问题可将其转换成相关的随机过程, 然后用然后用Monte Carlo方法进行求解方法进行求解注意以下两点:注意以下两点:MC的应用自然现象的模拟:自然现象的模拟:宇宙射线在地球大气中的传输过程;宇宙射线在地球大气中的传输过程;高能物理实验中的核相互作用过程;高能物理实验中的核相互作用过程;数值分析:数值分析:数学问题,求积分,求逆矩阵,解线性代数等数学问题,求积分,求逆矩阵,解线性代数等经济学模拟:经济学模拟:库存问题,随机服务系统中排队问题库存问题,随机服务系统中排队问题 人口问题:人口问题:人口的出生,传染病的蔓延;乃至动物的生态竞争人口的出生,传
13、染病的蔓延;乃至动物的生态竞争金属学:扩散、组织长大、相金属学:扩散、组织长大、相变过程变过程蒙特-卡洛模拟的意义o能研究不同边界、不同材料的影响能研究不同边界、不同材料的影响 理论不可能、实验耗费太大理论不可能、实验耗费太大 用于实验设计用于实验设计o无污染无污染 反应堆防护反应堆防护 核弹爆炸核弹爆炸o能摆脱实验误差能摆脱实验误差 作理论和实验的桥梁作理论和实验的桥梁Monte Carlo模拟的步骤:模拟的步骤:1. 根据欲研究的物理系统的性质,建立能够描述该根据欲研究的物理系统的性质,建立能够描述该系统特性的理论模型,导出该模型的某些特征量系统特性的理论模型,导出该模型的某些特征量的概率
14、密度函数;的概率密度函数; (即构造或描述问题的概率过程)(即构造或描述问题的概率过程)2. 从概率密度函数出发进行随机抽样,实现从已知从概率密度函数出发进行随机抽样,实现从已知概率分布的抽样,得到特征量的一些模拟结果;概率分布的抽样,得到特征量的一些模拟结果; 有了明确的概率过程后,为了实现过程的数有了明确的概率过程后,为了实现过程的数值模拟,必须实现从已知概率分布的随机数的抽值模拟,必须实现从已知概率分布的随机数的抽样,进行大量的随机模拟实验,从中获得随机变样,进行大量的随机模拟实验,从中获得随机变量的大量试验值。量的大量试验值。产生已知概率分布的随机变量,产生已知概率分布的随机变量,是实
15、现是实现MC方法的关键步骤方法的关键步骤,其中最基本的是(,其中最基本的是(0,1)均匀分布。)均匀分布。3. 对模拟结果进行分析总结,预言物理系统的某些特性。对模拟结果进行分析总结,预言物理系统的某些特性。4. 模拟结果的检验模拟结果的检验Monte Carlo算法的主要组成部分算法的主要组成部分概率密度函数概率密度函数(pdf) 必须给出描述一个物理系统的一组概必须给出描述一个物理系统的一组概率密度函数率密度函数;随机数产生器随机数产生器能够产生在区间能够产生在区间0,1上(均匀)分布的随机数上(均匀)分布的随机数抽样规则抽样规则如何从在区间如何从在区间0,1上均匀分布的随机数出发上均匀分
16、布的随机数出发,随随机抽取服从给定的机抽取服从给定的pdf的随机变量的随机变量;模拟结果记录模拟结果记录记录一些感兴趣的量的模拟结果记录一些感兴趣的量的模拟结果误差估计误差估计必须确定统计误差(或方差)随模拟次数以及其必须确定统计误差(或方差)随模拟次数以及其它一些量的变化;它一些量的变化;减少方差的技术减少方差的技术利用该技术可减少模拟过程中计算的次数;利用该技术可减少模拟过程中计算的次数;并行和矢量化并行和矢量化可以在先进的并行计算机上运行的有效算法可以在先进的并行计算机上运行的有效算法实例二 定积分计算o 事实上,不少的统计问题,如计算概率、各阶距等,最后都归结为定积分的近似计算问题。o
17、 下面考虑一个简单的定积分 dxxfbao ! 计算计算x*2在在(0,1)上积分上积分o 计算过程:计算过程:o 1、构造或描述问题的概率过程、构造或描述问题的概率过程:产生服从分产生服从分布布f(x)的随机变量)的随机变量Xi( )(i=1,2, ,N)o 2、从概率密度函数出发进行随机抽样,实现、从概率密度函数出发进行随机抽样,实现从已知概率分布的抽样,得到特征量的一些从已知概率分布的抽样,得到特征量的一些模拟结果模拟结果计算均值计算均值( )niix12nixiy12REAL YY=0N=300000ISEED=RTC()DO I=1,N X=RAN(ISEED) Y=Y+X*2/N
18、END DOWRITE(*,*)YEND limx2dx (dx 0)Monte Carlo方法另一个重要问题:方法另一个重要问题:随机数随机数 随机数:由单位矩阵分布中所产生的简单子样称为随机数序列,其中的每一个个体称为随机数。 但真正的随机数的不适合电子计算机上使用,因为它需要很大的存储量。利用某些物理现象可以在电子计算机上产生随机数,且其产生的序列无法重复实现,使程序无法复算,结果无法验证,同时需要增添随机数发生器和电路联系等附加设备。伪随机数:o 是有数学递推公式所产生的随机数。(近似的具备随机数的性质。) An+1=T(A);An+1= An+k+1o 伪随机的优点和缺点:o 判断伪
19、随机数好坏的方法: 1、它能够有较好的均匀性和独立性; 2、它的费用大小,即指所消耗计算机的时间; 3、容量要求尽可能大。随机数产生的办法o产生均匀分布随机数的几种方法; (1)物理方法;(2)数学方法。o伪随机数产生方法:加同余法乘同余法乘加同余法取中方法逆变换法合成法筛选法 。关于随机数的几点注意关于随机数的几点注意o 注注1 1 由于均匀分布的随机数的产生总是采用某个确定的模型进行的,从理论上讲,总会有周期现象出现的。初值确定后,所有随机数也随之确定,并不满足真正随机数的要求。因此通常把由数学方法产生的随机数成为伪随机数。 但其周期又相当长,在实际应用中几乎不可能出现。因此,这种由计算机
20、产生的伪随机数可以当作真正的随机数来处理。o 注注2 2 应对所产生的伪随机数作各种统计检验,如独立性检验,分布检验,功率谱检验等等。 FORTRAN 语言产生随机数的实例orandom_number(xrandom_number(x) )产生一个产生一个0 0到到1 1之间的随机数(之间的随机数(x x可以是向量),可以是向量),但是每次总是那几个数。但是每次总是那几个数。用了用了random_seedrandom_seed()()后,系统根据日期和时间随机地提供种子,后,系统根据日期和时间随机地提供种子,使得随机数更随机了。使得随机数更随机了。programrandomprogramran
21、domreal:xreal:xcallcallrandom_seedrandom_seed()!()!系统根据日期和时间随机地提供种子系统根据日期和时间随机地提供种子 callcallrandom_numberrandom_number(x)!(x)!每次的随机数就都不一样了每次的随机数就都不一样了 write(write(* *, ,* *)x)xstopstopendprogramrandom endprogramrandom Monte Carlo方法之方法之随机数的产生 许多计算机系统都有随机数生成函数F90: call random_seed call random_number(a
22、)2、ISEED=RTC() X=RAN(ISEED)Y=RAN(ISEED)Matlab: x=rand(N) 产生元素在(0, 1)间随机分布的N*N矩阵 s= rand(state,0) 重设该生成函数到初始状态注意:上述随机数序列均具周期性,如上页random子程序的周期约230。Finite difference approximation of differential equationso A differential equation can be approximated by a finite difference scheme. For exampletuudxduttt
23、Forward timexuudxdutxxtx2222xuuudxudtxxtxtxxBackward spaceCentral space21222 xuuutuuxututxxtxtxxtxtxForward t aime-Central spaceFICK 第二定律21222 xuuutuuxututxxtxtxxtxtxvxCCCDtCCxCDttxxtxtxxtxtx21222 C Fick 第二定律稳态扩散解 REAL C0(0:1000+1),C(0:1000+1) !C(DISTANCE)C0=0.1C0(0)=0.8 !BOUNDARY CONDITIONC0(1001)=
24、0.1 !BOUNDARY CONDITIONC=C0 OPEN(1,FILE=F:DIF.dat) DO JT=1,50000 !Time DO IX=1,1000 ! distanceC(IX)=C0(IX)+0.45*(C0(IX+1)+C0(IX-1)-2.0*C0(IX)!C(0)=0.8!C(1001)=0.1 IF(JT=50000) WRITE(1,*) IX,C(IX) END DO C0=C END DOEND21222 C xCCCDtCCxCDttxxtxtxxtxtx应用之二 生日问题MC模拟模拟假设有假设有n个人在一起,各自的生日为个人在一起,各自的生日为365天之
25、一,根据概率理论,与很多人的直天之一,根据概率理论,与很多人的直觉相反,只需觉相反,只需23个人便有大于个人便有大于50的几的几率人群中至少有率人群中至少有2个人生日相同。个人生日相同。365)1(365.3653633653643653651nn 理论几率 模拟几率100.117 0.110200.411 0.412230.527 0.520300.706 0.692450.941 0.93650 0.986 0.987INTEGER M(1:10000), NUMBER1(0:364), NUMBER2 REAL X,Y ISEED=RTC()DO J=1,10000NUMBER1=0X=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 材料 概述 蒙特卡洛 方法 ppt 课件
限制150内