蒙特卡罗模拟因摩纳哥著名的赌场而得名。它能够帮助人们从数学上表述物理、化学、工程、经济学以及环境动力学中一些非常复杂的相互作用。

数学家们称这种表述为“模式”,而当一种模式足够精确时, 他能产生与实际操作中对同一条件相同的反应。但蒙特卡罗模拟有一个危险的缺陷: 如果必须输入一个模式中的随机数并不像设想的那样是随机数, 而却构成一些微妙的非随机模式, 那么整个的模拟(及其预测结果)都可能是错的。

中文名

蒙特卡罗方法

外文名

Monte Carlo

别    名

随机抽样、统计试验方法所属分支

计算数学的一个分支

发展时间

20世纪40年代中期

学    科

数学

蒙特卡罗模拟方法简介

编辑

语音

蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,属于计算数学的一个分支,它是在上世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。传统的经验方法由于不能逼近真实的物理过程,很难得到满意的结果,而蒙特卡罗方法由于能够真实地模拟实际物理过程,故解决问题与实际非常符合,可以得到很圆满的结果。这也是以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。[1]

蒙特卡罗模拟理论发展

编辑

语音

当科学家们使用计算机来试图预测复杂的趋势和事件时, 他们通常应用一类需要长串的随机数的复杂计算。设计这种用来预测复杂趋势和事件的数字模型越来越依赖于一种称为蒙特卡罗模拟的统计手段, 而这种模拟进一步又要取决于可靠的无穷尽的随机数目来源。

最近,由美国佐治亚大学的费伦博格博士作出的一份报告证明了最普遍用以产生随机数串的计算机程序中有5个在用于一个简单的模拟磁性晶体中原子行为的数学模型时出现错误。科学家们发现, 出现这些错误的根源在于这5个程序产生的数串其实并不随机, 它们实际上隐藏了一些相互关系和样式, 这一点只是在这种微小的非随机性歪曲了晶体模型的已知特性时才表露出来。贝尔实验室的里德博士告诫人们记住伟大的诺伊曼的忠告:“任何人如果相信计算机能够产生出真正的随机的数序组都是疯子。”[1]

蒙特卡罗模拟基本原理思想

编辑

语音

当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。[1]

蒙特卡罗模拟解题步骤

编辑

语音

构造或描述概率过程

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

实现从已知概率分布抽样

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

建立各种估计量

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

蒙特卡罗模拟方法应用

编辑

语音

通常蒙特卡罗模拟通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特卡罗模拟是一种有效的求出数值解的方法。一般蒙特卡罗模拟在数学中最常见的应用就是蒙特卡罗积分。

蒙特卡罗算法表示采样越多,越近似最优解。举个例子,假如筐里有100个苹果,让我每次闭眼拿1个,挑出最大的。于是我随机拿1个,再随机拿1个跟它比,留下大的,再随机拿1个……我每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,挑出的苹果就越大,但我除非拿100次,否则无法肯定挑出了最大的。这个挑苹果的算法,就属于蒙特卡罗算法。告诉我们样本容量足够大,则最接近所要求解的概率。

蒙特卡罗模拟在金融工程学,宏观经济学,生物医学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域也应用广泛。

计算机技术的发展,使得蒙特卡罗模拟在最近10年得到快速的普及。现代的蒙特卡罗模拟,已经不必亲自动手做实验,而是借助计算机的高速运转能力,使得原本费时费力的实验过程,变成了快速和轻而易举的事情。它不但用于解决许多复杂的科学方面的问题,也被项目管理人员经常使用。

借助计算机技术,蒙特卡罗模拟实现了两大优点:

一是简单,省却了繁复的数学报导和演算过程,使得一般人也能够理解和掌握;

二是快速。简单和快速,是蒙特卡罗方法在现代项目管理中获得应用的技术基础。[2]

词条图册

更多图册

参考资料

1.

郭生良. γ能谱的蒙特卡罗计算方法探讨与模拟软件设计[D].成都理工大学,2008.

2.

杨衡. 蒙特卡罗模拟优化与风险决策分析的应用研究[D].天津大学,2004.

用计算机怎么做蒙特卡洛模拟,蒙特卡罗模拟相关推荐

  1. 用计算机怎么做蒙特卡洛模拟,一篇文章讲明白蒙特卡洛模拟

    先来个测试题: 用仿真的方法计算圆周率π,请写出计算步骤和简单的公式: (思考十秒钟,想不出来可以继续往下看,后面有答案) 001 什么是蒙特卡洛模拟 蒙特卡洛模拟,又称为统计实验方法 以概率论和统计 ...

  2. 用计算机核裂变模拟实验,SAS和蒙特卡罗模拟(1):开篇

    SAS for Monte Carlo Simulations (1): Introduction 一.为什么选择SAS做蒙特卡罗模拟? 为什么要用SAS做蒙卡?首先,对我来说,我只会用SAS,而且打 ...

  3. 蒙特卡罗模拟概述(Monte Carlo Simulation)

    Overview 蒙特卡洛(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于"随机数"的计算方法.这一方法源于美国在第二次世界大战中研制原子弹的"曼哈顿计 ...

  4. 基于蒙特卡罗模拟的股票风险价值VaR测算

    基于蒙特卡罗模拟的股票风险价值VaR测算 前言:如果各位观看博客的想学的,可以通过Tushare金融数据注册链接注册账号,在获得相关数据集,这是本人的分享链接注册后,我可以获得50积分,谢谢各位支持. ...

  5. 蒙特卡罗模拟——数学的“蛮”与“巧”

    Mathematics is principally a tool to meditate,rather than to compute. 数学主要是一种思考的工具,而不是计算工具. 蒙特卡罗模拟是现 ...

  6. 计算机基础及ms office应用,全国计算机等级考试一级计算机基础及MS Office应用模拟练习系统...

    全国计算机等级考试一级计算机基础及MS Office应用模拟练习系统是一款计算机一级考试模拟软件.软件按照<全国计算机等级考试最新考试大纲>研制而成,汇聚了多年开发全国计算机等级考试模拟软 ...

  7. 蒙特卡罗模拟_Stata博文 | 使用蒙特卡罗模拟计算功率part 1:基础知识

    功率和样本大小的计算是科学研究计划的重要组成部分.可以使用Stata的power命令来计算许多常用统计测试的功率和样本大小需求.但对于更复杂的模型是没有简单公式的,如多层/纵向模型和结构方程模型(SE ...

  8. Matlab蒙特卡罗模拟

    Matlab蒙特卡罗模拟: 可以用蒙特卡罗方法来近似模拟求pi值: 思路: 设相互独立的随机变量X,Y均服从[-1,1]上的均匀分布,则(X,Y)服从{-1≤x≤1, 1≤y≤1}上的二元均匀分布(即 ...

  9. 蒲丰投针计算机模拟ppt,蒙特卡罗模拟课件.ppt

    <蒙特卡罗模拟课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<蒙特卡罗模拟课件.ppt>文档请在天天文库搜索. 1.蒙特卡洛模拟数学实验之前 ...

最新文章

  1. windows:mysql5.7.29安装
  2. python获取当前年份_Python根据当前日期取去年同星期日期
  3. nodejs项目的package-lock.json文件的用途
  4. 104. 二叉树的最大深度 golang DFS
  5. C++ STL容器之map 简单使用
  6. [QNAP crontab 定時執行程式
  7. 小程序开发(4)-之登录
  8. 嵌入式Linux结课报告,嵌入式课程报告.doc
  9. 广度(宽度)优先搜索思路总结
  10. [Linux] day03——REHL部署
  11. 安装linux后没有网卡驱动,重装完centos6.5后没有网卡驱动的解决方法
  12. 简单的下载者木马分析(2)dll部分
  13. 桥本分数c语言,桥本分数式问题的C++算法
  14. 项目经理成长之路的三个层次
  15. 北漂三年多 我选择离开,眼神更加坚定!
  16. 动态规划算法练习:蓝桥杯,洛谷的传纸条游戏的三种解法
  17. intellij idea JDK设置
  18. python使用scrapy爬虫总是提示ModuleNotFoundError: No module named ‘‘
  19. 现代职业教育杂志现代职业教育杂志社现代职业教育编辑部2022年第27期目录
  20. Web字体格式介绍及浏览器兼容性一览

热门文章

  1. 极简视频录制/剪辑工具-Camtasia Studio9
  2. Python编程:从入门到实践 埃里克马瑟斯 1-2章
  3. Surfer11汉化版安装与破解图文教程
  4. 106个项目上榜!2018人工智能与实体经济深度融合创新项目名单公布
  5. java编译器源码分析之词法分析器
  6. JBoss AS 7.1.1.Final 下载与安装
  7. Linux学习笔记05、CentOS 7的中文输入法设置
  8. Papa的魔法靴子 (原BZOJ 2662)
  9. Java后台参数校验
  10. 前端可视化大屏设置全屏模式方法