- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
蒙特卡罗方法-清华大学
* * 200 MeV 电子在水中的输运过程 入射电子 2 米长 2 米宽 2 米高 水立方 空气 水 图中只显示能量大于 1MeV 的粒子 原初电子在 水中的轨迹 电子韧致辐射 产生的光子 光子在水 中散射 发生了康普 顿效应打出 了电子 探测器模拟(几何设置) * * 探测器模拟(物理过程) * * 这种模拟可以提供对探测器效率与预期性能的很好估计。 * * CERN的蒙特卡罗模拟程序包 GEANT4 是模拟粒子经过物质时所发生的相互作用的一个软件 包。 它的应用范围包括: 空间科学 医学物理 粒子物理,核物理和加速器物理 http://geant4.web.cern.ch/geant4 * * 蒙特卡罗方法应用举例 如何确定在实验条件下,理论的概率密度函数 例如:一质量为 m 共振宽度为 ? 的共振态在实验上观察 到的概率密度函数是什么形式? 布莱特-魏格纳 分布 ? 探测器 分辨率 探测 效率 ? 贝叶斯定理: * * 应用举例(续一) 也就是说,对应于真实的 M,实际的 M’ 应该是怎样一个 分布 如果假设 * * 应用举例(续二) 真实物理的图像在实验观测中会发生变化。如果探测器的影响可以用函数来表达,有时积分可积。但大多数数情况下,不能用函数表示时,蒙特卡罗方法可以给出最好的近似。 * * 应用举例(续三) 应用蒙特卡罗方法的步骤: 步骤一:写出布莱特-魏格纳产生子 输出末态粒子的四动量 步骤二:输入末态粒子四动量,模拟粒子在探测器的响应 步骤三:输入各子探测器响应,重建探测粒子的四动量 步骤四:输入探测粒子四动量,计算不变质量分布 输出各子探测器响应 输出探测粒子四动量 实验条件下预期的布莱特-魏格纳分布 * * 小结 蒙特卡罗方法 随机数产生子 函数变换法 舍选法 蒙特卡罗方法的精度问题 在粒子与核物理中的应用 利用随机数对概率或与概率有关的数值计算 [0,1]均匀分布 r,相互独立,长周期(伪随机数) 事例产生子与探测器模拟 * * * 粒子物理与核物理实验中的数据分析 杨振伟 清华大学 第四讲:蒙特卡罗方法 * * 上一讲回顾 概率的基本概念 随机变量与概率密度函数 随机变量的平均值与方差 能不通过实验对随机变量进行研究吗? * * 本讲要点 蒙特卡罗方法 随机数产生子 任意分布抽样之函数变换法与舍选法 蒙特卡罗方法中的精度问题 在粒子物理与核物理中的应用 * * 蒙特卡罗方法简介 蒙特卡罗方法就是利用一系列随机数来计算各种概率大小和随机变量均值等等的数值分析技术。通常的步骤为: 产生一系列在[0,1]之间均匀分布的随机数 。 利用这些随机数按某些概率密度函数 抽样生成我们感兴趣的另一随机序列 。 利用这些 值来估计 的一些特性,例如:通过找到在区间 的 比例,给出积分值 。 第一层面上的应用: 蒙特卡罗计算 = 积分 第二层面上的应用: 蒙特卡罗变量 = “模拟的数据” * * 随机数的产生 用物理方法产生 真正的随机数 不可重复 产生速度慢 用数学方法产生 伪随机数 可以重复 产生的速度快 * * 真随机数与伪随机数 美国兰德(RAND)公司在1950年代,利用真空管中产生的噪音制作了一个含十万个真正的随机数表,并运用于其开展的所有模拟研究中。 真正的随机数与伪随机数之间的区别在于:数据串是否具有可压缩性,即能否用更短的形式来表示。 真正的随机数是不可压缩的,非常不规则,以至于无法用更短的形式来表示它。 在粒子物理与核物理研究中,随机数的可重复性经常也是非常有用的,尤其是程序的调试(debugging)。 * * 随机数产生子 目的是使在 [0,1] 范围内产生的伪随机数满足: 均匀性;相互独立性;长周期性 乘同余法 友情推荐 M=2K ?=52q+1 ?0 周期=2K-2 232 513 1 230 ? 109 236 513 1 234 ? 2·1010 242 517 1 240 ? 1012 * * CERN库的随机数产生子 PAW用户 … gRandom-SetSeed(); … Float_t random = gRandom-Rndm(1); … … Real random(1) Call Rmarin(ISEED,0,0) … Call Ranmar(random,1) … 注意: 用于产生子的 随机数种子还可以用 来保证后续进程的随 机数不重复。 Root 用户 粒子物理与核物理研究中,大都采用CERN程序库提供的随机数产生子。 * * 随机数均匀性与相关性检验 subrout
文档评论(0)