蒙特卡罗方法: Monte Carlo Method - 核能革新 ChinaNet
热图推荐
    查看: 8429|回复: 3

    蒙特卡罗方法: Monte Carlo Method

    [复制链接]

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
    发表于 2015-4-8 10:48:28 | 显示全部楼层 |阅读模式
    计算方法的名称大多是与数学术语相关的,唯有蒙特卡罗方法(Monte Carlo method)这个名称的来历不大一样。
        蒙特卡罗(Monte Carlo)是地中海北岸的一个风景优美的城市,它是一座世界上有名的赌城。即便是没有去过蒙特卡罗的人,通过电影也会对那里的场景留下深刻的印象。每当提起蒙特卡罗这个名字,会不由地让人想起皮肤晒得黝黑的欧洲都市************,在地中海的微风中走进赌场。他擅长滑雪和打网球,但也能专心下下国际象棋、打打桥牌。他开着灰色的跑车,穿着笔挺的Italy手工制作的西装,谈起琐碎但真实的事情。对他谈的这些事,新闻记者通常只用简洁、措辞审慎且流畅的文字向一般人描述。在赌场内,他心思敏捷地算牌、娴熟赔率、郑重其事地下注,脑海里可以算出最适当的赌注金额是多少。他可能是 007 James Bond 失散多年但更聪明的兄弟...
        蒙特卡罗是那样地诱惑着世人,连纯粹的数学家也愿意用它的名字来命名一种数学计算方法。要知道,这些献身纯粹数学的科学家,通常给人的是最刻板的印象,任何时候总是面无血色、胡须蓬乱、指甲不修,悄无声息地埋首在书籍堆积如山、杂乱无章的书桌上,无论如何也不能设想他们能和赌场里的那个************有什么联系。唯一可能的相同点,就是双方都在关注赌博这件事。
        那么,赌博与数学家口中的随机模拟(亦称统计试验)有什么关系呢? 其实,赌博本身就可以看作是一种最简单的统计试验。
        例如掷骰子。一个均匀正方形的六面体,它在每一面刻有1到6的六个数码,如果要想知道掷骰子时某一面向上机会的多少,既可以用数学理论来证明,也可以用多次投掷方法来验证。只要投掷的数目足够多,就一定能证明每一面朝上的机会是1/6。
        类似的,扔硬币,其结果中正反面朝上的机会显然各都是1/2。有人做了30000次投掷试验,统计的结果正面向上的次数是14994次。也就是说,十分接近1/2了。
        这2个例子说明:少量的试验结果可能是毫无规律可言的,数学上称随机性。而大量的试验就能检验或发现某些规律,也就是说有必然性,数学上叫统计性。而当试验次数足够大以后所关注的机会能呈现出趋向某一个常数值这个现象,是具有普遍性的。最早,在18世纪由瑞士的Bernoulli认定,并以“Bernoulli大数定理”得到确定和公认。
        对赌博来说,既有随机性也有统计性。喜欢捣鼓股票和彩票的股民、彩民们最好多花点时间来深刻领悟这个性质,以便在与上帝玩掷骰子游戏时不再表现得那么傻气。
       
    回复

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:49:03 | 显示全部楼层
    当然,实际问题要比掷骰子和硬币复杂得多。但是,统计数学描述的那些现象、规律却和掷骰子、扔硬币这种事情所呈现出的规律性质是类似的。由于这种方法受到赌博的启示,所以有人就形象地用赌博城蒙特卡罗来命名这种独具风格的计算方法:MC(Monte Carlo)是上世纪四十年代,Los Alamos实验室(LANL)曼哈顿计划中由 Stanislaw Ulam 和 Von Neumann 两位数学家倡导和创建的一种独具特色的数值模拟方法。为体现方法的内涵,他们用世界著名赌城的名字将其命名为 Monte Carlo 方法。
        当然,MC方法也可被称为统计实验方法,从某种意义上说,就是一种经验法。当我们面对急需解决的棘手问题却又一时找不到可靠的解决办法时,就根据经验来应急。此时,过去已经被观察到的经历就能提供判断或者决策的依据。虽然暂时找不到完备的认识体系供我们放心使用,但也比一点依据也没有实用得多。平时我们是被动地去获得这些经历,因而时间方面可能拖得很长。现在我们想在短时间内主动地、集中地将未来可能的经历事先演绎一遍,从而获得足够的经验以供现在使用。如此这般,使我们有理由相信会把现在以及可预见的将来的事情处理得更好一点。这其实是具有普遍意义的一种方法,非常实用,值得我们去认真完善和巧妙使用。
        以方******角度看,当没有办法使用可使判断坚定不移的演绎法时,便退而求其次,使用归纳法。虽然我们对归纳而出的判断依据“知其然,还不知其所以然”,但能够及时找到,却对我们很重要。此时,主动地去获得足够多的、可供归纳时使用的素材(经历、经验),就能让我们节约很多时间,及时处理手中的问题,远胜于束手无策去麻烦上帝。
        归纳法其实就是假定历史中呈现的“规律”会重演,所以值得我们通过寻找这样的规律去指导现在和将来的事情。我们不得不这样假定,否则经验就失去了指导意义。不幸的是,随机结构的******本性根本就不赞成这样的假定。历史的经验除了能为我们提供否定归纳而出的规律的反例外,其实别无用处。这与我们“把历史经验可以当成肯定的判断依据”的直觉性假定背道而驰。如果一定要这样使用经验的话,头上必定会带着永远也挥之不去的风险,因为那些在历史中不曾出现的、可能是非常稀有的事件一旦出现,就可能会给我们带来灭顶之灾,让一切前功尽弃不说,还可能彻底让我们落入万劫不复的深渊,连从新来过的机会也没有!小到赌博,大到一个国家的基本制度以及人类在地球上的生存,皆是如此。因此,在我们了解了“由总结历史经验而得出的任何判断”的局限性和所冒的风险后,就不会死守着一个暂时成功的方法或者理论,在问题出现新状况时就能及时地扬弃手中的这些工具,转而拿起也许风格完全不同的其他工具。这样一来,便可保持我们永恒的创新精神,消除迷信,规避风险,同时又能解决我们面临的各种棘手的问题。创造和使用MC,也是这样的态度。
        实际使用 MC 求解问题时,首先要建立一个概率模型或随机过程,使它的参数等于问题的解,然后通过对模型或过程的观察或抽样试验来计算所求参数的统计特征,最后再输出所求解的近似值。
        其数学原理是这样的:根据从掷骰子、扔硬币这类事情所呈现出的规律性质概括而出的“概率”的定义知道,某事件的概率可以用大量试验中该事件发生的频率来估算,且当样本容量足够大时,可以认为该事件的发生频率即为其概率。因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。MC法正是基于此思路实现概率计算分析的。
        设有

               ·统计独立的随机变量 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→∞时,根据Bernoulli大数定理及正态随机变量的特性(概率的值不会小于0)可断定出结构失效概率,从而获得一种可靠的测量或判断指标。   

       
    回复 支持 反对

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:49:23 | 显示全部楼层
    解的精度可以用估计值的标准误差来表示。根据概率论的定理(例如Bernoulli大数定理),只要重复抽样随次数N趋向无穷大时,则其随机变量的算术平均将精确等于它的数学期望,即所求问题的解。
        当然,N 实际上不可能取无穷大,但只要取到与问题相应的足够大便可十分逼近于所求的真实解。反之,N 小了就得不到正确的结果。这就决定了只有在高速电子计算机上才能有效地应用这种方法,此时,搞出功能强大和计算高效的计算程序就是关键环节了。
        MCNP(蒙特卡罗大型科学计算程序)即是这样的一种程序,主要用于处理连续能量、时间相关、三维几何、中子-光子-电子辐射输运问题。
        蒙特卡罗方法不仅名称独特,它的计算模拟过程也独具风格,因而它常给人们带上一层神秘的色彩。但是,仔细了解一下这种方法的基本特点就会发现:它并不难掌握。
    蒙特卡罗方法既可求解随机性问题,又可以求解确定性问题。
        所谓随机性问题,是指问题的过程或参量受到随机性的影响,当然,最后结果遵从统计规律这件事依然是确定的。
        例如,在核反应或核武器爆炸中,中子或伽玛射线在介质中的输运问题是随机性问题。因为粒子和介质元素发生什么相互作用,碰撞后如何运动都有随机性。此时不妨就用蒙待卡罗方法直接模拟这种输运过程。只要足够多的抽样,便可获得精确解。
        1946年,美国科学家首先在电子计算机上对中子连锁反应进行了模拟,并且把第一个实验程序命名为蒙特卡罗程序。
        因此,蒙特卡罗方法首先在核科学研究中得到应用。其他问题,如
               ·运筹学中的库存问题,
               ·随机服务系统中的排队问题等
    都属随机性问题;
        另一类是确定性问题,如
               ·计算定积分
               ·解偏微分方程
               ·线性代数方程等,
    它们可以用差分法、数值积分法等方法求解,但同样也可以用 MC方法求解。
        在某些情况下,蒙特卡罗方法还更有优越性,如统计物理中常遇到的计算某物理系统的平均量,例如内能、自由能、熵等,都是高维积分,用通常数值积分法十分困难,而用 Metroplis 提出的特殊蒙特卡罗方法则能精确高效地求解出结果,从而使其在统计物理、凝聚态物理研究中成为一种标准算法。
        MC方法现在主要应用于粒子输运问题上,它的适用范围分为实验核物理、反应堆核物理以及粒子辐射效应、抗辐射加固等方面。
        MC方法求解粒子输运问题时,应该遵循4个主要的步骤:
               ·弄清楚粒子输运的全部物理过程;
               ·确定适用的MC技巧;
               ·确定描述粒子运动的状态参数和状态序列;
               ·确定粒子输运过程中有关分布的抽样方法。
        MC模拟粒子输运过程包括以下几个物理过程,它对于我们理解MCNP程序的运算是很有用的:
               ·源分布抽样,确定输运粒子的初始状态;
               ·空间、能量和运动的随机游动过程,确定粒子输运过程中的状态;
               ·记录贡献与分析结果。
        MC统计模拟方法可以采用一些基本技巧,包括
               ·直接模拟方法
               ·简单加权方法
               ·统计估计方法
               ·指数变换方法
    等等。通过程序设计者对模拟程序的优化,可以极大地提高MCNP的能力。
       
    回复 支持 反对

    使用道具 举报

    22

    主题

    57

    帖子

    152

    积分

    注册会员

    Rank: 2

    积分
    152
     楼主| 发表于 2015-4-8 10:49:42 | 显示全部楼层
    蒙特卡罗方法有其独特的优点:
           第一,与所求解问题的几何维数及问题条件关系不大,几何越复杂,它相对优点越明显。例如,在粒子输运问题中,用差分法解二维问题比一线问题几乎要多4倍以上的时间,而采用蒙特卡罗方法则几乎不受影响。
           第二,适应性强。例如,积分域形状特殊时,用一般积分法求解困难大,而蒙特卡罗法则不受影响,对问题也不一定要进行离散化,可连续处理,如粒子能量可以连续跟踪模拟等。
           第三,程序结构简单,所需计算机存贮单元比其他数值方法少,容易建立通用性很强的应用软件。
        应当指出,蒙特卡罗计算结果的收敛性(指概率意义下的收敛)与抽样数N的平方根成反比,这就决定了要得到高精度解就必须用高速电子计算机实现大N抽样。但是它的误差只依赖于标准方差σ。因此,要节省时间就既要研究各种模拟方法以减少方差、提高效率,所以降低方差的各种抽样技巧便成为研究该方法的关键内容。
        随着电子计算机的发展和科学技术问题的日趋复杂,蒙特卡罗方法的应用也越来越广泛。它不仅较好地解决了多重积分计算、微分方程求解、积分方程求解、特征值计算和非线性方程组求解等高难度和复杂的数学计算问题,而且在统计物理、核物理、真空技术、系统科学、信息科学、公用事业、地质、医学、可靠性及计算机科学等广泛的领域都得到成功的应用。
    本帖转自52mc论坛
       
    回复 支持 反对

    使用道具 举报

      关注我们
    • 微信公众号:
    • NuclearNet
    • 扫描二维码加关注

    Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc.

    联系我们|网站声明|中国核网-核能领域第一垂直门户网站

    快速回复 返回顶部 返回列表