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

    文章

    4762

    浏览量

    97242
  • 蒙特卡洛
    +关注

    关注

    0

    文章

    14

    浏览量

    8381

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

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

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

    电源效率测量方法

    万用表,用来测量输入电 流;一个为高精度万用表,用来测量输出电流) 注释:在使用万用表时,您需要根据要测量的电压和电流值将万用表设置在合适的量程内,这一点非常重要。 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 05-12 16:13

    常见传动机构负载惯量计算方法及实例

    传动机构是机械设备中的关键组件,它通过传递动力来实现机械运动。在设计传动机构时,负载惯量的计算至关重要,这直接影响到传动机构的稳定性和可靠性。以下是常见传动机构负载惯量的计算方法及实例: 一、常见
    的头像 发表于 04-23 17:38 3393次阅读
    常见传动机构负载惯量<b class='flag-5'>计算方法</b>及实例

    Broadcom使用Cadence Spectre FMC Analysis进行时序变化分析

    对于最新的微型半导体制作工艺而言,制程工艺变化和器件不匹配带来了深远影响。复杂制程工艺也会影响器件生产的可变性,进而影响整体良品率。 蒙特卡洛(MC)仿真使用重复的随机抽样方法,将工艺变化与电路性能
    的头像 发表于 04-19 14:57 1908次阅读
    Broadcom使用Cadence Spectre FMC Analysis进行时序变化分析

    电解电容纹波电流测试方法

    电解电容用焊线引出(焊线尽可能的短),然后用电流钳卡在电解电容一个引脚,此时测试的是单个电容的纹波电流值。3.2纹波电流有效值计算方法3.3纹波电流合成计算公式纹波电流通常是由基本频率和高频电流构成。因此,在计算时要通过合成公式
    发表于 03-12 14:16

    振弦式锚杆应力计的工作原理与数据计算方法

    准确、稳定性好、长期监测可靠等优点。南京峟思将详细介绍振弦式锚杆应力计的工作原理及其数据计算方法。一、工作原理振弦式锚杆应力计的工作原理基于振弦的频率与所受张力之
    的头像 发表于 02-24 13:49 819次阅读
    振弦式锚杆应力计的工作原理与数据<b class='flag-5'>计算方法</b>

    揭秘SMT贴片加工价格计算:全方位解析成本构成

    ,了解其价格计算方法至关重要,因为这不仅影响生产成本,还影响产品的最终售价。本文将介绍SMT贴片加工厂的价格计算方法,以帮助客户更好地理解费用构成和合理预算。   SMT贴片加工厂价格计算方法
    的头像 发表于 02-13 09:16 1156次阅读

    蒙特卡洛仿真揭秘水下光信号传输奥秘

    近年来,人类海洋活动日益扩大,水下无线传感器网络、光/声学成像探测技术和水下航行器等技术快速发展,迫切需要高数据传输速率的水下无线通信技术的支持,以实现观测数据的传输及控制指令的交换。相对于传统的水声通信而言,水下光通信的频带宽,通信容量大,适于水下大容量数据的传输,以及不易受海水温度和盐度变化的影响;具有良好的抗干扰能力。此外,激光具有较强的方向性,提高了
    的头像 发表于 01-16 17:47 1202次阅读
    <b class='flag-5'>蒙特卡洛</b>仿真揭秘水下光信号传输奥秘

    ADC精度有没有具体计算方法 ?

    我想问一下ADC精度有没有具体计算方法 ?
    发表于 01-10 06:00

    免费泄漏率计算工具,让气密性检测变得简单高效

    泄漏率的计算方法至关重要。本文将以通俗易懂的形式,为您介绍常见的泄漏率计算方法,并提供实用的计算公式,让您轻松掌握气密检测的核心技术。一、泄漏率的基本概念泄漏率是
    的头像 发表于 12-18 11:54 3340次阅读
    免费泄漏率<b class='flag-5'>计算</b>工具,让气密性检测变得简单高效