0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

非常重要和有趣的计算方法——蒙特卡洛方法

中科院半导体所 来源:中科院近代物理所 2023-01-04 09:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将向大家介绍一种在科学研究中非常重要和有趣的计算方法——蒙特卡洛方法,这种方法在数学、物理学、化学、工程、经济学、环境动力学等多个领域都有广泛的应用。

到底什么是蒙特卡洛方法?我们可以先从它的名字开始了解,蒙特卡洛(Monte Carlo)是摩纳哥公国的一座城市,是世界著名的“赌城”。以“蒙特卡洛”来命名这种计算方法就是因为其本身便是一种概率算法,其核心思路是通过概率实验所求的概率来计算我们感兴趣的一个量。

概率算法的1.0版

为了更好地理解蒙特卡洛方法,我们先简单了解一下“蒲丰投针问题”,这个问题的提出被认为是蒙特卡洛方法的起源。 18世纪,法国数学家蒲丰提出了一种计算圆周率π的方法——随机投针法:假设我们有一个以平行且等距为a的木纹铺成的地板,随意抛一支长度为l(比木纹之间距离小)的针,通过针和其中一条木纹相交的概率p,即可计算圆周率π。计算公式为:

7781c09c-8ba2-11ed-bfe3-dac502259ad0.png

,其中n是投针的总次数,m是针与平行直线交点的总数目。

778f98ca-8ba2-11ed-bfe3-dac502259ad0.png

图 蒲丰投针问题示意图

这个方法的原理可以通过概率学的推导计算来进行证明。由于投针掉落的位置与方向都是随机且独立的。我们假定落地后针的中心距最近的地板条纹的距离为X,那么X在[0,a/2]上均匀分布;针与地板条纹的夹角为Y,则Y在[0, π/2]之间均匀分布。当

77a00822-8ba2-11ed-bfe3-dac502259ad0.png

时,针与木纹相交,因此(X,Y)的概率密度函数和相交的概率P分别为:

77ac5906-8ba2-11ed-bfe3-dac502259ad0.png

77b87182-8ba2-11ed-bfe3-dac502259ad0.png

相信大家都听懂了,下面我们可以…… 好吧,这里还有一种虽然不够严谨、但易于理解的解释: 我们想象一个长度为πa的铁丝,被绕成了一个直径为a的圆环。那么无论我们怎么扔这个铁环,它与条纹的交点恒为两个,因此当投针n次后,相交的次数恒为2n。如果我们把铁丝拉直再扔,这样的铁丝扔下时与平行线相交的情形要比圆圈复杂些,可能有4个交点、3个交点、2个交点、1个交点,甚至于都不相交。由于圆圈和直杆的长度同为πa,根据机会均等的原理,投掷n次,直杆与平行线组交点的总数期望也是2n。同时还有一个规律,当投针次数n固定时,铁丝的长度l与交点总数m应为正比关系,即m=kl。考虑到l=πa时,m=2n,将

77d5f8e2-8ba2-11ed-bfe3-dac502259ad0.png

代入前式可得:

77e35e4c-8ba2-11ed-bfe3-dac502259ad0.png

。 投针试验既然是依靠概率的算法,那么随着投针次数越来越多,计算求得的π值也会越来越接近于真实值。下表给出了一些比较出名的投针试验得到的圆周率估计值,可以看到在投掷数千次后,计算得到的圆周率与我们所熟知的π值的误差仍较大。

77ef7dbc-8ba2-11ed-bfe3-dac502259ad0.png

表 一些投针试验的计算结果

1995年,马修斯发表了他如何通过观察天空中亮星的分布计算圆周率。他的试验方法基于一个基本的原理:任意两个自然数互质的概率为77fce0e2-8ba2-11ed-bfe3-dac502259ad0.png。他从众多星星中选择100个亮星,将这些亮星两个分成一对,然后计算每对星之间的角距,得出一堆数据,然后检查这些数据的因子情况,从中计算出π值约为3.12772。

从上述两个例子来看,依靠重复的物理、观测等试验行为来获取随机性数据的方法往往很难得到令人满意的计算结果,这主要是受到了样本数量的限制。而早在魏晋时,我国的刘徽便通过割圆术求得了π的近似值3.1416。

77772df8-8ba2-11ed-bfe3-dac502259ad0.svg

“史诗级加强”X.0版

20世纪40年代,美国“曼哈顿计划”的成员S.M.乌拉姆和J·冯·诺伊曼第一次把这种通过概率事件来计算关注的确定值的方法命名为“蒙特卡洛方法”。随着电子计算机的发明和科学技术的发展,蒙特卡洛方法得到了“史诗级加强”。

78172fb0-8ba2-11ed-bfe3-dac502259ad0.png

图 S.M.乌拉姆(左)和J·冯·诺伊曼(右)

计算机在进行蒙特卡洛模拟的过程中获取随机性最根本的方法是通过固定算法得到符合[0,1]均匀分布的“伪随机数”,它并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。

这里介绍另一种计算π值的蒙特卡洛方法——“撒豆法”。该方法假定有无数个豆子被均匀地撒在下图所示的正方形中,那么落在圆内的豆子数m与落在正方形内的豆子总数n的比值的期望应与它们面积的比值一致,即78255194-8ba2-11ed-bfe3-dac502259ad0.png,这样就可以计算得到π的值。

78312000-8ba2-11ed-bfe3-dac502259ad0.png

图 “撒豆法”求解π值模型示意图

利用计算机开展上述计算,仅需不到一分钟的时间,便可以完成十亿次“撒豆”,并得到相应的计算结果。计算的python代码及运行结果见下图。

783e9e38-8ba2-11ed-bfe3-dac502259ad0.png

图 计算所用python代码及计算结果

计算机时代的蒙特卡洛模拟无疑具有超高的计算效率,且其计算效率随着计算机技术的飞速发展而不断提升。

77772df8-8ba2-11ed-bfe3-dac502259ad0.svg

核科学领域中的应用

蒙特卡洛方法在核科学领域中有着广泛的应用。核物理领域的基本参数(如反应截面、散射发射角度分布、能谱分布、衰变、衰减等)主要来自核物理实验及理论模型等,而蒙特卡洛模拟程序也在与核物理实验、理论模型等的相互参照、验证和迭代更新中不断发展至今。

如今在核物理领域有许多广泛使用的蒙特卡洛程序,如FLUKA、MCNP、PHITS、GEANT4等,这些蒙特卡洛程序对核物理学的发展至关重要,同时它们的运用过程也非常的有趣和巧妙。

具体以加速器辐射防护领域为例,粒子加速器产生的高速运动的微观粒子(一般每秒可达上亿个粒子)在与其他物质碰撞时,会通过核反应产生带电粒子、中子、γ射线等次级辐射,这些次级辐射又会继续与材料发生核反应,产生更多的次级辐射。如此周而复始,其反应过程非常复杂,无法通过人力模拟计算。而蒙特卡洛方法,正好能够解决这个难题。

7857e0f0-8ba2-11ed-bfe3-dac502259ad0.png

图 加速器产生电离辐射示意图

为了使加速器产生的强电离辐射降低到可接受的低水平,科研人员需要对次级粒子的输运过程进行仿真模拟,并根据模拟结果进行屏蔽阻挡设计。

接下来我们以一个简单模型为例,介绍蒙特卡洛方法应用于粒子输运模拟的基本思路。如下图所示,假定在一个二维的矩形屏蔽中,充满了物质B,左、上、下侧设置黑色隔板,右侧设置红色隔板。

786587fa-8ba2-11ed-bfe3-dac502259ad0.png

图 模型示意图

假设粒子A具有以下特质:

粒子A在物质B中直线运动。但每直线前进1m,就会停止前进并与B发生反应,反应后继续直线前进。反应有三种可能:

①:A忽略与B的反应,继续按原方向前进1m,发生概率为1/3;

②:A与B发生正碰撞,向左偏转45°前进1m,发生概率为1/3;

③:A与B发生反碰撞,向右偏转45°前进1m,发生概率为1/3。

2. 当A碰到黑色隔板后,会立刻消失;

3. 当A碰到红色隔板后,会进入环境。 如果我们想知道当大量粒子A从上图中P位置向右水平射出,会有多少个粒子通过红色隔板进入环境,就可以利用蒙特卡洛程序进行大量模拟。 对单个事例,当粒子A从P点出发前进1米后,抽取伪随机数N为[0,1]的均匀分布,根据抽取的数字决定其下一步的运动轨迹:当0

下图给出了粒子A可能的两种运行轨迹,利用计算机程序可以高效地完成大量的粒子模拟,得到计算结果。根据统计学特性,计算的事例越多,结果也就越接近期望值。

78726c7c-8ba2-11ed-bfe3-dac502259ad0.png

图 粒子A可能的两种运行轨迹

在理解了上述示例的计算思路后,不难想象在辐射防护领域的研究中,只要我们知道了粒子在运行过程中每一步可能发生的反应类型及其概率等基本的核物理参数,就可以通过计算机程序实现各种不同情形的模拟计算。

比如FLUKA程序可被用于计算国内医用重离子加速器HIMM治疗室的辐射剂量率分布。如下图所示,可以看出碳离子集中损失的位置辐射剂量率最高,约为106μSv/h;而经过混凝土屏蔽后,屏蔽外的辐射剂量率衰减到了2.5μSv/h以下。

787e9ace-8ba2-11ed-bfe3-dac502259ad0.png

图 HIMM治疗室剂量率分布图。HIMM装置每秒钟能够产生1亿个最高能量为400MeV/u的碳离子束用于治疗,束流照射人体时几乎全部损失,从而产生各种次级辐射。

利用FLUKA程序,还可以开展更为复杂的辐射防护模拟研究,如更加多样的束流损失模式、更多的粒子种类与能量、更加复杂的建筑结构等。

788c7c52-8ba2-11ed-bfe3-dac502259ad0.png

图 各类加速器辐射剂量分布图示例

读到这里,相信大家对蒙特卡洛方法已经有了一个基本的了解。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4816

    浏览量

    98800
  • 蒙特卡洛
    +关注

    关注

    0

    文章

    14

    浏览量

    8411

原文标题:有趣的“赌博算法”——蒙特卡洛方法

文章出处:【微信号:bdtdsj,微信公众号:中科院半导体所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    aduc841的定时周期的正确计算方法是怎么样的

    ADUC841,MCU外接11.0592M的晶振,不分频,目前使用ADUC841的定时器0,配置为模式1,TH0设置为0x028,TL0设置为0x00,按照理论计算定时周期应该是6s吧,实际测量是1s,请问aduc841的定时周期的正确计算方法是怎么样的?
    发表于 05-15 06:55

    UPS电源后备时间怎么选配?计算方法一文读懂

    后设备的持续运行时长,选配不合理会导致资源浪费或无法满足应急需求。很多用户在选购UPS电源时,都会陷入“后备时间越长越好”的误区,也不清楚具体的计算方法,本文结合实际
    的头像 发表于 04-14 10:34 433次阅读
    UPS电源后备时间怎么选配?<b class='flag-5'>计算方法</b>一文读懂

    工业级UPS电源后备时间精确计算方法与工程应用指南

    ,是电气工程师和运维人员必须掌握的核心技能。本文将从基础概念入手,系统讲解UPS后备时间的计算方法,帮助读者建立完整的计算逻辑。一、理解UPS后备时间计算的基本原理
    的头像 发表于 03-24 09:43 616次阅读
    工业级UPS电源后备时间精确<b class='flag-5'>计算方法</b>与工程应用指南

    详解FPGA定点数计算方法

    FPGA定点数计算在高效资源利用、运算速度优势、硬件可预测性和成本效益等方面发挥着重要作用。它能节省逻辑和存储资源,实现更快速的运算和更高的时钟频率,保证行为可预测且易于硬件实现和验证,同时降低硬件和开发成本,广泛应用于数字信号处理、工业控制、通信系统等领域。
    的头像 发表于 12-02 10:09 763次阅读
    详解FPGA定点数<b class='flag-5'>计算方法</b>

    硬件消抖方案元件参数的计算方法

    硬件消抖是通过电路设计消除机械开关(如按键、继电器等)在闭合或断开时产生的抖动信号。以下是常见硬件消抖方案及其元件参数计算方法: 1. RC滤波消抖(低通滤波) 原理:利用电容的充放电特性,延缓
    发表于 11-19 06:31

    厚声电阻功率额定值匹配计算方法

    厚声电阻功率额定值的匹配需综合考虑封装尺寸、实际功率计算、环境温度降额及电压校验,具体匹配计算方法如下: 一、封装尺寸与额定功率的对应关系 厚声电阻的额定功率由封装尺寸决定,常见封装与功率对应关系
    的头像 发表于 10-24 14:28 1081次阅读
    厚声电阻功率额定值匹配<b class='flag-5'>计算方法</b>?

    负载开关IC数据表中相关术语和功率损耗计算方法

    在前面的内容中,我们了解了负载开关IC的基本定义、独特优点、实用功能及其操作,今天作为【负载开关IC】系列的最后一篇内容,芝子将带着大家了解一下负载开关IC数据表中相关术语和功率损耗计算方法
    的头像 发表于 10-15 16:54 1959次阅读
    负载开关IC数据表中相关术语和功率损耗<b class='flag-5'>计算方法</b>

    测斜仪数据计算方法解析:从公式理解到智能应用

    测斜仪作为工程安全监测的重要设备,其测量数据的准确计算直接关系到结构物安全状态的判断。南京峟思将系统为大家介绍测斜仪数据的计算原理与方法,帮助用户更好地理解监测数据的产生过程。测斜仪
    的头像 发表于 09-28 13:30 929次阅读
    测斜仪数据<b class='flag-5'>计算方法</b>解析:从公式理解到智能应用

    什么是全国产化导航计算机子?它有多重要

    全国产化导航计算机子是实现在国防、航天等国家关键领域技术自主的重要一环。
    的头像 发表于 09-16 18:02 1105次阅读
    什么是全国产化导航<b class='flag-5'>计算</b>机子<b class='flag-5'>卡</b>?它有多<b class='flag-5'>重要</b>

    【「开关电源控制环路设计:Christophe Basso 的实战秘籍」阅读体验】理论到量产的关键跨越:补偿器设计与工程验证体系

    ): 配合图4-29的SIMPLIS®模型(P22),避免离散化导致的相位突变。 二、稳定性验证:蒙特卡洛分析构筑量产防火墙 量产核心矛盾:元件容差/老化/温度如何影响环路? Basso 以__Buck
    发表于 08-20 13:10

    Simcenter FLOEFD LED 模块:精确的热特性和光学仿真,打造成功的照明产品设计

    优势面向设计师和分析师的高级照明仿真功能精准预测工作LED光输出(热流明)和温度使用具有光谱吸收、反射、折射和散射特性的高级蒙特卡洛辐射模型,完成高精度辐射仿真使LED能够在供应商规格的限制范围内
    的头像 发表于 07-30 10:34 1016次阅读
    Simcenter FLOEFD LED 模块:精确的热特性和光学仿真,打造成功的照明产品设计

    大模型推理显存和计算量估计方法研究

    方法。 一、引言 大模型推理是指在已知输入数据的情况下,通过深度学习模型进行预测或分类的过程。然而,大模型的推理过程对显存和计算资源的需求较高,这给实际应用带来了以下挑战: 显存不足:大模型在推理
    发表于 07-03 19:43

    提高SEA模型PBNR计算精度的方法及策略

    方案即声学包对整车噪声传递的影响,同时克服了NR方法中由于声源特性、声源处麦克风安装位置等因素给测试带来的不利影响,PBNR已广泛用应用于整车SEA模型对标及声学包目标的设定及分解工作中,故而在数字开发阶段,提高整车SEA 模型的PBNR计算精度尤为
    的头像 发表于 06-30 09:30 1651次阅读
    提高SEA模型PBNR<b class='flag-5'>计算</b>精度的<b class='flag-5'>方法</b>及策略

    SiC MOSFET模块的损耗计算

    为了安全使用SiC模块,需要计算工作条件下的功率损耗和结温,并在额定值范围内使用。MOSFET损耗计算与IGBT既有相似之处,也有不同。相对IGBT,MOSFET可以反向导通,即工作在同步整流模式。本文简要介绍其损耗计算方法
    的头像 发表于 06-18 17:44 5264次阅读
    SiC MOSFET模块的损耗<b class='flag-5'>计算</b>

    SiC MOSFET计算损耗的方法

    本文将介绍如何根据开关波形计算使用了SiC MOSFET的开关电路中的SiC MOSFET的损耗。这是一种在线性近似的有效范围内对开关波形进行分割,并使用近似公式计算功率损耗的方法
    的头像 发表于 06-12 11:22 2887次阅读
    SiC MOSFET<b class='flag-5'>计算</b>损耗的<b class='flag-5'>方法</b>