我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合公式 > 放弃序列 >

蒙特卡罗方法(Monte Carlo Method)概述——概念、起源、思路、应

归档日期:07-27       文本归类:放弃序列      文章编辑:爱尚语录

  原标题:蒙特卡罗方法(Monte Carlo Method)概述——概念、起源、思路、应用、特点、计算程序、计算举例和文献资料(21k)

  数据简化DataSimp导读:蒙特卡罗(Monte Carlo)方法,也叫随机模拟方法,是一种基于随机数的逼近计算方法。本文概述蒙特卡罗方法(Monte Carlo Method)的概念、起源、思路、应用、特点、计算程序、计算举例和文献资料。文末列出20篇延申阅读文献资料,可用于后续学习。关键词:蒙特卡洛/蒙特卡罗(Monte Carlo)、蒙特卡洛方法/蒙特卡罗方法(Monte Carlo Mehtod)、随机模拟、随机计算、计算、模拟。

  蒙特卡罗方法(Monte CarloMethod)概述——概念、起源、思路、应用、特点、计算程序、计算举例和文献资料

  二十世纪四十年代(1940s)中期,由于科学技术的发展和电子计算机的发明,产生了以概率统计理论为指导的非常重要的一类数值计算方法,使用随机数(或易实现的伪随机数)来解决很多计算问题——蒙特·卡罗(Monte Carlo)方法。一般称为蒙特卡洛方法/蒙特卡罗方法、统计模拟方法(随机模拟方法),属于非确定性算法,与其对应的是确定性算法。它的原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值[1]。它非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行的方法。蒙特卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。

  蒙特卡罗方法(Monte Carlo Method)也称为计算机随机模拟方法,是一种基于随机数的计算方法,是一类随机方法的统称。这类方法的特点是,可以在随机采样上计算得到近似结果,随着采样的增多,得到的结果是正确结果的概率逐渐加大,但在(放弃随机采样,而采用类似全采样这样的确定性方法)获得真正的结果之前,无法知道目前得到的结果是不是真正的结果。

  1946年,美国拉斯阿莫斯国家实验室(Los Alamos National Lab)的三位科学家John von Neumann(冯诺依曼),Stan Ulam(斯坦乌尔姆)和Nick Metropolis(尼克梅特珀利斯)共同发明,被称为蒙特卡洛方法。具体定义是:在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形,现在要计算这个不规则图形的面积,蒙特卡洛(Monte Carlo)方法告诉我们,均匀的向该正方形内撒N(N是一个很大的自然数)个黄豆,随后数数有多少个黄豆在这个不规则几何形状内部,比如说有M个,那么,这个奇怪形积与正方形的面积之比便近似于M/N,N越大,算出来的值便越精确。在这里我们要假定豆子都在一个平面上,相互之间没有重叠。

  举例说明,一个有10000个整数的集合,要求其中位数,可以从中抽取m10000个数,把它们的中位数近似地看作这个集合的中位数。随着m增大,近似结果是最终结果的概率也在增大,但除非把整个集合全部遍历一边,无法知道近似结果是不是真实结果。

  另外一个例子,给定数N,要求它是不是素数,可以任选m个小于N的数,看其中有没有能整除N的数,如果没有则判断为素数。这和通常见到的蒙特卡罗例子不同,近似结果往往错得更离谱,但随着m增大,近似结果是最终结果的概率也在增大。

  把蒙特卡罗方法和另外一类方法——拉斯维加斯方法[2]对比一下,更容易了解哪些方法属于蒙特卡罗,哪些不属于。拉斯维加斯方法是另一类随机方法的统称。这类方法的特点是,随着采样次数的增多,得到的正确结果的概率逐渐加大,如果随机采样过程中已经找到了正确结果,该方法可以判别并报告,但在但在放弃随机采样,而采用类似全采样这样的确定性方法之前,不保证能找到任何结果(包括近似结果)。

  举例说明,有一个有死胡同但无环路的迷宫,要求从入口走到出口的一条路径。可以从入口出发,在每个叉路口随机选择一个方向前行,到死胡同则报告失败并回到入口重新试探,到出口则报告成功。随着试探次数增多,找到一条入口到出口的路径的概率增大,但除非全枚举,即使试10000年,也无法保证找到任何要求的路径。

  蒙特卡罗方法(下文简称为MC方法)也称为计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法诞生于上世纪40年代美国的曼哈顿计划,名字来源于赌城蒙特卡罗(Monte Carlo)——位于法国的国中之国摩纳哥的一个以赌博业闻名的城市。而赌博象征概率;蒙特卡罗方法正是以概率为基础的方法,属于非确定性算法,与它对应的是确定性算法。

  蒙特卡罗是一个多义词(共3个义项):▪随机模拟方法▪摩纳哥公国城市▪2011年托马斯·伯祖查执导的一部美国电影。我们先简单了解一下这个以赌博为生的地方——摩纳哥公国(法语La Principauté de Monaco,英语The Principality ofMonaco)及其最大城市——蒙特卡罗(Monte Carlo)。

  在欧洲大陆上,从挪威到荷兰,从英国到丹麦,无一不是一个个君主制国家,但在君主立宪的时代,这些国度的帝王们并无实权。而在摩纳哥,却有着整个欧洲唯一的一个实权王室,在这个极度发达的小国里,王权是至高无上的,在这里的每一项大小事情几乎全都须经亲王的允许才能实行。但摩纳哥的传奇并不仅限于此,1899-1922年在位公爵阿尔贝一世是位出色的航海家,他将赌场的大笔收入用于海洋科学研究,先后组织过28次海洋考察,并于1910年建起举世闻名的海洋博物馆。世人称之为“赌博之国”、“袖珍之国”、“邮票小国”的摩纳哥公国,位于欧洲地中海之滨、法国的东南方,属于一个版图很小的国家。蒙特卡罗的赌业,海洋博物馆的奇观,格蕾丝王妃的下嫁,都为这个小国增添了许多传奇色彩,作为世界上人口最密集的一个国度,摩纳哥在仅有1.95平方千米的国土上聚集了3.3万的人口,可谓地窄人稠。但相对于法国,摩纳哥的地域实在是微乎其微,在法国地图上,这个国中之国就像一小滴不慎滴在法国版图内的墨汁,小得不大会引起人去注意它的存在。

  蒙特卡罗(Monte Carlo)是摩纳哥公国的标志、最大城市、世界著名的三大赌城之一(美国超级赌城拉斯维加斯、号称东方拉斯维加斯的中国澳门)。1856年,查尔三世亲王为解除财政危机,在旧市区北边岬角上开设首家赌场,后人为了纪念他,将该地区命名为蒙特卡罗。在这个小而精致的城市里,拥有世界闻名的大赌场,赌博之余还可以去豪华的歌剧院听歌剧,去明媚的海滩洗日光浴。蒙特卡罗的大赌场、海滨俱乐部、体育俱乐部、高尔夫球乡村俱乐部、歌剧院都是世界一流的。赌博业收入曾占该国年总收入70%以上,现如今仍保持在40%左右。同时旅游业和房地产业也相应蓬勃发展,近年形成“寸土寸金”局面,土地每平方米价格竟高达八万至十万法国法郎,平均房价高达每平方英尺4420美元。(1平方英尺≈0.09290304平方米,蒙特卡罗房价每平米约32万人民币)。每年来此旅游的赌客总在二十万人次以上。蒙特卡罗也由此成就“世界赌城”称号。[2]

  始建于1863年的蒙特卡罗赌场,是一幢古色古香又巍峨的宫殿式建筑物,加上山明水秀,富丽堂皇,使游客抵达门前,立生好感,是蒙特卡罗的缩影。但按照摩纳哥法律,本国人不准入内赌博,观光客凭护照交十法朗便成为一日会员,凭此证才能进入赌场。赌场内满铺红地毯,有适合歌剧表演的大舞台,再过一道门进入一间大厅,便是著名的赌场,侍者穿着整齐的礼服,气氛不同凡响。赌场以轮盘为主,只要下点小赌注,桌上筹码搬家的声音就会响起,想像着财富不知几时会从天而降,那种经验和感觉,紧紧地吸引着世界赌徒。这里宾馆的房间号码、早餐用的盘子、盛牛奶的杯子以及集邮册等等一切无不成为赌博工具。1967年,赌场由政府接管,到上个世纪末,赌场里随着“大轮盘”昼夜不停地飞转,年收入超过了四千万法国法郎。[3]

  20世纪40年代,第二次世界大战中美国研制的“曼哈顿计划”计划成员S.M.乌拉姆和J.冯·诺伊曼首先提出蒙特卡罗方法(MonteCarlo Method)。该计划的主持人之一、数学家数学家冯·诺伊曼用驰名世界的赌城——摩纳哥的MonteCarlo来命名这种方法,为它蒙上了一层神秘色彩。蒙特卡罗方法(Monte Carlo Method)的创始人主要是四位美国人:Stanislaw Marcin Ulam(乌拉姆,波兰裔数学家)、Enrico Fermi(恩里科·费米,意大利裔物理学家)、Johnvon Neumann(约翰·冯·诺伊曼,计算机结构奠基人)和Nicholas ConstantineMetropolis(尼古拉斯·康斯坦丁·美特普利斯,希腊裔数学家)。

  现代的统计模拟方法最早由数学家乌拉姆提出,被Metropolis(美特普利斯)命名为蒙特卡罗方法,蒙特卡罗是著名的赌场,赌博总是和统计密切关联的,所以这个命名风趣而贴切,很快被大家广泛接受。被不过据说费米之前就已经在实验中使用了,但是没有发表。乌拉姆(Stanislaw Marcin Ulam)是波兰裔美籍数学家,早年是研究拓扑的,后因参与曼哈顿工程,兴趣遂转向应用数学,他首先提出用蒙特卡罗方法(Monte Carlo Method)解决计算数学中的一些问题,然后又将其应用到解决链式反应的理论中去,在美国洛斯阿拉莫斯国家实验室(Los Alamos NationalLab)研究裂变物质的中子连锁反应的时候,开始使用统计模拟的方法,并在最早的计算机上进行编程实现,是蒙卡MC方法的奠基人。意大利裔美国人恩里科·费米(Enrico Fermi)是个物理大牛,理论和实验同时都是大牛,这在物理界很少见,但英年早逝(上帝都嫉妒)。约翰·冯·诺伊曼(John von Neumann)是计算机界的牛顿,发明计算机硬件著名的冯诺依曼架构,也是非常厉害,结果和Fermi一样英年早逝(被上帝嫉妒死了)。尼古拉斯·美特普利斯(Nicholas Metropolis)是希腊裔美籍数学家、物理学家、计算机科学家,对Monte Carlo方法做的贡献相当大,1953年他和别人共同提出模拟退火算法(SimulatedAnnealing),使得Monte Carlo方法得到广泛应用,Metropolis一生主要的贡献就是Monte Carlo方法,很专一;他硕士毕业于BSc (1937) and PhD(1941)博士毕业,生于Born: Jun 11, 1915,Chicago,IL,逝于Died: Oct 17, 1999,LosAlamos, NM,活了84岁,是这四个人里唯一长寿的科学家。

  蒙特卡罗(Monte Carlo)方法的基本思想很早以前就被人们所发现和利用。在这四人发明现代统计模拟方法,即蒙特卡罗方法(Monte Carlo Method)之前,类似蒙特卡罗方法的算法就已经存在。早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”。蒙特卡罗方法的源头,可以追溯到18世纪,布丰当年用于计算π的著名的投针实验就是蒙特卡罗模拟实验。【例1】1777年,法国数学家布丰(Georges Louis Leclerede Buffon, 1707-1788)提出用投针实验的方法求圆周率π,共投针2212次,与直线,得数是圆周率π的近似值,后来他把实验写进他的论文《或然性算术尝试》[4]。这被认为是蒙特卡罗方法的起源。19世纪人们用投针试验的方法来决定圆周率π。统计采样的方法其实数学家们很早就知道,但是在计算机出现以前,随机数生成的成本很高,所以该方法也没有实用价值。随着计算机技术在二十世纪后半叶的迅猛发展,随机模拟技术很快进入实用阶段。类比到深度学习,算力对算法的推动也是非常明显,令人感叹!~对那些用确定算法不可行或不可能解决的问题,蒙特卡罗方法常常为人们带来希望。

  一句话,蒙特卡罗基本思想:利用大量采样的方法来求解一些难以直接计算得到的积分。例如,假想你有一袋豆子,把豆子均匀地朝这个图形上撒,然后数这个图形之中有多少颗豆子,这个豆子的数目就是图形的面积。当你的豆子越小,撒的越多的时候,结果就越精确。借助计算机程序可以生成大量均匀分布坐标点,然后统计出图形内的点数,通过它们占总点数的比例和坐标点生成范围的面积就可以求出图形面积。又例如,考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的“图形”,如何求出这个“图形”的面积呢?Monte Carlo方法是这样一种“随机化”的方法:向该正方形“随机地”投掷N个点落于“图形”内,则该“图形”的面积近似为M/N。这种方法对规则图形和不规则图形都适用,甚至很多情况下,对某些不规则图形的求解,只能采用蒙卡法(MC)计算。

  为了说明Monte Carlo方法的基本思想,我们再看一个简单例子,从此例中你可以感受如何用Monte Carlo方法考虑问题。

  【例2】比如,求y=x^2(对x)从0积到1的面积。结果就是下图红色部分的面积:

  注意到函数在(1,1)点的取值为1,所以整个红色区域在一个面积为1的正方形里面。所以所求区域的面积即为在正方形区域内任取点,点落在所求区域的概率。这个限制条件是yx^2。用matlab模拟,做一百万次(即共取1000000个点),结果为0.3328。

  当所求解问题是某种随机事件(如,随机事件A)出现的概率,或者是某个随机变量(如,随机变量B)的期望值时,通过某种“实验”的方法,以这种事件(如,随机事件A)出现的频率,估计这一随机事件(如,随机事件A)的概率,或者得到这个随机变量(如,随机变量B)的某些数字特征(得出B的期望值),并将其作为问题的解。🏆蒙特卡罗方法的解题过程,可以归结为三个主要步骤(工作过程):构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。

  对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。

  构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。

  一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。

  例如:【例3】检验产品的正品率问题,我们可以用1表示正品,0表示次品,于是对每个产品检验可以定义如下的随机变数Ti,作为正品率的估计量:Ti={1, 为正品; 2, 为次品};于是,在N次实验后,正品个数为:n=Σ(i=1 to n)Ti;显然,正品率p为:p≈{n/N-1/N×[Σ(i=1to n) Ti]};不难看出,Ti为无偏估计。当然,还可以引入其它类型的估计,如最大似然估计,渐进有偏估计等。

  但是,在蒙特卡罗计算中,使用最多的是无偏估计。用比较抽象的概率语言描述蒙特卡罗方法解题的手续如下:构造一个概率空间(W,A,P),其中,W是一个事件集合,A是集合W的子集的s体,P是在A上建立的某个概率测度;在这个概率空间中,选取一个随机变量q(w),w Î W,使得这个随机变量的期望值正好是所要求的解Q,然后用q (w)的简单子样的算术平均值作为Q的近似值。【注:符号Î(Î),如果a是集合A的元素,记作aÎA,否则记作Ï,集合N,Q,R分别表示自然数集、有理数集、实数集.要注意符号的规范书写.数集的范围不明或数集的符号记忆错误是出错的主要原因.元素在集合中时,用符号“Δ,而元素不在集合内时,用符号“Ï”.】

  数学应用:通常蒙特·卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特·卡罗方法是一种有效的求出数值解的方法。一般蒙特·卡罗方法在数学中最常见的应用就是蒙特·卡罗积分。而在蒙特卡罗模拟中,与随机数产生的快慢有何关系?——蒙卡计算的最大缺陷是收敛速度慢,导致计算过程时间很长很长。相对而言,随机数产生的快慢,在整个计算过程中,就显得不是什么特别大的问题;随机数最大的问题,在于它的“周期性问题”,因为不管是乘同余方法还是在此基础上转变的复杂的随机数产生办法,都是伪随机数序列。当然,对于使用者而言,只要“随机数”够用即可。

  蒙卡法与一般计算法有很大区别,一般计算方法对于解决多维或因素复杂的问题非常困难,而蒙卡法对于解决这方面的问题却比较简单。使用MC方法的特点及其优缺点:

  🏆②采用随机抽样的方法,较真切的模拟粒子输运的过程,反映了统计涨落的规律。

  🏆③不受系统多维、多因素等复杂性的限制,是解决复杂系统粒子输运问题的好方法。

  🏆⑤研究人员采用MC方法编写程序来解决粒子输运问题,比较容易得到自己想得到的任意中间结果,应用灵活性强。

  🏆MC方法主要弱点是收敛速度较慢和误差的概率性质,其概率误差正比于,如果单纯以增大抽样粒子个数N来减小误差,就要增加很大的计算量。

  可用民意测验来作一个不严格的比喻。民意测验的人不是征询每一个登记选民的意见,而是通过对选民进行小规模的抽样调查来确定可能的优胜者。其基本思想是一样的。科技计算中的问题比这要复杂得多。比如金融衍生产品(期权、期货、掉期等)的定价及交易风险估算,问题的维数(即变量的个数)可能高达数百甚至数千。对这类问题,难度随维数的增加呈指数增长,这就是所谓的“维数的灾难”(CourseDimensionality),传统的数值方法难以对付(即使使用速度最快的计算机)。MC方法能很好地用来对付维数的灾难,因为该方法的计算复杂性不再依赖于维数。以前那些本来是无法计算的问题现在也能够计算量。为提高方法的效率,科学家们提出了许多所谓的“方差缩减”技巧。

  另一类形式与Monte Carlo方法相似,但理论基础不同的方法——“拟蒙特卡罗方法”(Quasi-MonteCarlo Method)近年来也获得迅速发展。我国数学家华罗庚、王元提出的“华-王”方法即是其中的一例。这种方法的基本思想是“用确定性的超均匀分布序列(数学上称为LowDiscrepancy Sequences)代替Monte Carlo方法中的随机数序列。对某些问题该方法的实际速度一般可比Monte Carlo方法提出高数百倍,并可计算精确度。[7]

  蒙特卡罗方法在金融工程学,宏观经济学,生物医学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算、核工程)、计算机科学与工程(非确定性计算)等领域应用广泛。

  若新的分子构型能量低于原分子构型的能量,则接受新的构型,使用这个构型重复再做下一次迭代。若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼因子,并产生一个随机数。若这个随机数大于所计算出的玻尔兹曼因子,则放弃这个构型,重新计算。若这个随机数小于所计算出的玻尔兹曼因子,则接受这个构型,使用这个构型重复再做下一次迭代。

  1.对每一项活动,输入最小、最大和最可能估计数据,并为其选择一种合适的先验分布模型;

  4.对求出的结果进行统计学处理,求出最小值、最大值以及数学期望值和单位标准偏差

  5.根据求出的统计学处理数据,让计算机自动生成概率分布曲线和累积概率曲线(通常是基于正态分布的概率累积S曲线.依据累积概率曲线进行项目风险分析

  ③力学在力学中,蒙特卡罗方法多被用来求解稀薄气体动力学问题,其中最为成功的是澳大利亚G.A.伯德等人发展的直接模拟统计试验法。此法通过在计算机上追踪几千个或更多的模拟分子的运动、碰撞及其与壁面的相互作用,以模拟真实气体的流动。它的基本假设与玻耳兹曼方程一致,但它是通过追踪有限个分子的空间位置和速度来代替计算真实气体中分布函数。模拟的相似条件是流动的克努曾数(Kn)相等,即数密度与碰撞截面之积保持常数。对每个分子分配以记录其位置和速度的单元。在模拟过程中分别考虑分子的运动和碰撞,在此平均碰撞时间间隔内,分别计算分子无碰撞的运动和典型碰撞。若空间网格取得足够小,其中任意两个分子都可以互相碰撞。具体决定哪两个刚体分子相撞,是随机取一对分子,计算它们的相对速度,根据此值与最大相对速度的比值和随机取样比较的结果,来决定该对分子是否入选。碰撞后分子的速度根据特定分子模型的碰撞力学和随机取样决定。分子与壁面碰撞后的速度,则根据特定的反射模型和随机取样决定。对于运动分子的位置和速度的追踪和求矩可以得出气体的密度、温度、速度等一些感兴趣的宏观参量。而对于分子与壁面间的动量和能量交换的记录则给出阻力、举力和热交换系数等的数学期望值。[8]

  法早期发展运用从理论上来说,蒙特卡罗方法需要大量的实验。实验次数越多,所得到的结果才越精确。

  【例4】从表中数据可以看到,一直到公元20世纪初期,尽管实验次数数以千计,利用蒙特卡罗方法所得到的圆周率π值,还是达不到公元5世纪祖冲之的推算精度。这可能是传统

  计算机技术的发展,使得蒙特卡罗法在近10年得到快速的普及。现代的蒙特卡罗

  项目管理中获得应用的技术基础。蒙卡法有很强的适应性,问题的几何形状的复杂性对它的影响不大。该方法的收敛性是指概率

  维数的增加不会影响它的收敛速度,而且存贮单元也很省,这些是用该方法处理大型复杂问题时的优势。因此,随着电子计算机的发展和科学技术问题的日趋复杂,蒙特卡罗方法的应用也越来越广泛。它不仅较好地解决了多重积分计算、微分方程求解、积分方程求解、特征值计算和非线性方程组求解等高难度和复杂的数学计算问题,而且在统计物理、核物理、真空技术、系统科学、信息科学、公用事业、地质、医学,可靠性及计算机科学等广泛的领域都得到成功的应用。

  (MonteCarlo Method)的计算程序蒙特卡罗方法是一种数学思想,不是具体一个软件或者算法。为此,科研机构开发了不同领域的MC法相关计算程序。关于蒙特卡罗方法的计算程序已经有很多,如:EGS4、FLUKA、ETRAN、ITS、MCNP、GEANT等。下面列举的这些蒙卡软件,大都是蒙特卡罗方法在核科学中放射性粒子输运模拟的应用软件。这些程序大多经过了多年的发展,花费了几百人年的工作量。除了欧洲核子研究中心

  (CERN)发行的GEANT主要用于高能物理探测器响应和粒子径迹的模拟外,其它程序都深入到低能领域,并被广泛应用。就电子和光子输运的模拟而言,这些程序可被分为两个系列:1

  .ETRAN、ITS、MCNP这两个系列的区别在于:对于电子输运过程的模拟根据不同的理论采用了不同的算法。

  美国国家标准局辐射研究中心开发,主要模拟光子和电子,能量范围可从1KeV到1GeV。🏆

  (MonteCarlo Method)计算编程举例小时候在课外书上学过一个计算pi值的算法,用一根长度为2r的小木棍,随机地丢在行间距为r的信纸上(就是那种很常见的一行一行的信纸),然后数木棍和线的交叉点,然后除以丢的次数,就可以得到pi的近似值,用的就是MC方法。这是布丰投针实验,在概率论的发展史上很有名。用简单的几何概型知识可以知道,如果将一个半径为r/pi的圆随机地丢在行间距为r的一组数目足够多的等距平行线之间,则圆与平行线/pi。布丰的想法,可以简单地理解为,布丰认为将这个圆从中间剪开,拉直为一个线段之后,这条线个公共点的概率不变,仍为2/pi。易知,这条线r。进行大量的“投针”实验后,这条线段与平行线有公共点的概率可以近似地认为等于实验中线段与平行线有公共点的次数除以总的投针次数。简单的运算之后,大家就可以知道,总的投针次数除以实验中线段与平行线有公共点的次数的结果即为pi/2的近似值。

  现在,在这个正方形内部,随机产生10000个点,即10000个坐标对(x,y),计算它们与中心点的距离,从而判断是否落在圆的内部。

  如果这些点均匀分布,那么圆内的点应该占到所有点的π/4,因此将这个比值乘以4,就是π的值。通过R语言

  用py和c各编程计算,每次都在3.7,误差太大了。我的方法是取一组两个0-1的随机数,(x,y)在第一象限,四分之一圆弧,面积为pi*1*1/4,正方形面积为1*1,比值也是pi/4。程序如下。

  【分析】若用点阵,虽然均匀,但由于点间距必须是固定的,人为地影响了圆周附近部分点是否在圆内,因此这个固定的点间距会对计算结果产生影响。因此若要减小误差,就得不断提高点阵密度,所需计算量/工作量要大一些(个人认为)。若采用随机点,相当于任意精度的点阵,消除了固定间距的影响,因此可以用更少的点取得差不多的结果。你所说的概率2/pi并不是这么简单得来的。建议大家不妨查阅其它更为详细的资料。用Matlab模拟了一下,程序如下。

  积分的计算【例6,同例2】上面的方法加以推广,就可以计算任意一个积分的值。

  比如,计算函数y=x2在[0,1]区间的积分,就是求出下图红色部分的面积。

  【解】这个函数在(1,1)点的取值为1,所以整个红色区域在一个面积为1的正方形里面。在该正方形内部,产生大量随机点,可以计算出有多少点落在红色区域(判断条件yx2)。这个比重就是所要求的积分值。用Matlab模拟100万个随机点,结果为0.3328。

  交通堵塞蒙特卡罗方法不仅可以用于计算,还可以用于模拟系统内部的随机运动。下面的例子模拟单车道的交通堵塞。

  上图中,横轴代表距离(从左到右),纵轴代表时间(从上到下),因此每一行就表示下一秒的道路情况。可以看到,该模型会随机产生交通拥堵(图形上黑色聚集的部分)。这就证明了,单车道即使没有任何原因,也会产生交通堵塞。

  【疑问】交通拥堵这个例子,貌似和蒙特卡罗没有太大关系吧?NaSch模型仿真用的是元胞自动机模型,随机刹车概率是固定的p。

  产品厚度【例8】某产品由八个零件堆叠组成。也就是说,这八个零件的厚度总和,等于该产品的厚度。

  已知该产品的厚度,必须控制在27mm以内,但是每个零件有一定的概率,厚度会超出误差。请问有多大的概率,产品的厚度会超出27mm?

  【解】取100000个随机样本,每个样本有8个值,对应8个零件各自的厚度。计算发现,产品的合格率为99.9979%,即百万分之21的概率,厚度会超出27mm。

  模拟计算得到,平均净利润为92, 427美元。【注意】有个固定支出成本fixed costs=$120000,即(4.5*5+1.5*10+3.5*7.5)/3-12=9.25(万),必须有个12万才对。最后结果减去这个数就对了,网上文章这个地方也是自己找的资料,翻译时忽略了。

  讲蒙特卡罗模拟的用途,至于蒙特卡罗如何计算,都有软件。比如证券这个例子,1000次抽样,每次按均匀分布随机选定一个成本值、同时按1/3的概率选中一个市场情境,然后拿这两个参数可计算出净利润、平均利润,千次加总并取均值就是结果。1000次抽样的技术本身就是蒙特卡罗模拟,这个没必要讲,毕竟,本文只是在介绍蒙特卡罗模拟的用途。

  小尺寸半导体器件的蒙特卡罗模拟,叶良修编著,科学出版社1997.2.🏆6.

  蒙特卡罗方法及其在粒子输运问题中的应用,裴鹿成,张孝泽著,科学出版社1980.10.🏆7.

  统计试验法:(蒙特卡罗法)及其在电子数字计算机上的实现(苏),布斯连科(Н. П.Бусленко),(苏)上海科学技术出版社.

  中文图书和网文🏆8.高分子科学中的MonteCarlo方法,杨玉良,复旦大学出版社1993.1-1

  蒙特卡罗(Monte Carlo)方法简介,by王晓勇. (有照抄错误,本文已找到原文并更正) 🏆18.

  补充说明MC和LV两类随机算法理工科学算法的时候,书上的蒙特卡罗算法只讲计算圆周率的例子,有的还讲不清楚。让很多学生误以为那就是蒙特卡罗的全部内容。其实,随机算法分为两类:蒙特卡罗和拉斯维加斯。

  74卷(第一版)力学词条:蒙特卡罗方法:中国大百科全书出版社,1985:354页10.

  .西方哲学与人工智能、计算机;人工智能编年史;人工智能达特茅斯夏季研究项目提案(1955年8月31日)中英对照版;人工智能研究现状及教育应用;计算机操作系统的演进、谱系和产品发展史;数据科学与大数据技术专业概论;数据资源概论;文本数据溯源与简化;大数据简化技术体系;数据简化社区概述. [EB/OL],数据简化DataSimp(微信公众号),.—END—

  :公开期刊媒体资料汇编,只为学术新闻信息传播,注明出处素材可溯源。本公众号不持有任何倾向性,亦不表示认可其观点或其所述。

  蒙特卡罗方法(Monte Carlo Method)概述——概念、起源、思路、应用、特点、计算程序、计算举例和文献资料(21k字)(

  简介:蒙特卡罗方法(Monte Carlo Method)概述——概念、起源、思路、应用、计算程序、举例和文献资料。作者:秦陇纪。素材:维基网文/秦陇纪微信群聊公众号,素材附引文出处。下载:如需本文21k字19图17页PDF资料,赞赏支持后,公号发送“蒙特卡罗方法”获取链接。版权:科普文章仅供学习,公开部分资料©版权归原作者,请勿用于商业非法目的,数据简化社区保留相应版权。有事留言或。转载:请保留作者、出处、时间等信息,如“出自公号©数据简化DataSimp,作者:秦陇纪,时间:20190703Wed©数据简化SataSmip社区NC非商业授权”等字样。

  :“数据简化DataSimp、科学Sciences、知识简化”新媒体聚集专业领域一线研究员;研究技术时也传播知识、专业视角解释和普及科学现象和原理,展现自然社会生活之科学面。PhDS01秦陇纪发起,期待您参与各领域;科学技术论文投稿邮箱。只会敲门呐喊,不能推动领域;只有空想设计,无法实现生产,就虚度一生。工程技术能力至关重要,秦陇纪与君共勉之。欢迎科学、工程、技术、教育、传媒等业界专家投稿、加入数据简化社区!欢迎大家分享、赞赏、支持科普~~

本文链接:http://renfriends.com/fangqixulie/779.html