❶ 蒙特卡洛算法是什么
是二十世纪提出的数值计算方法。
蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。
是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。
基本原理:
蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。
蒙特卡罗解题可归结为三个主要步骤。
构造或描述概率过程。
实现从已知概率分布抽样。
建立各种评估量。
❷ 能不能简单的给我解释一下蒙特卡罗算法
以概率和统计的理论、方法为基础的一种计算方法,将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解,故又称统计模拟法或统计试验法。
蒙特卡罗是摩纳哥的一个城市,以赌博闻名于世界。蒙特卡罗法借用这一城市的名称是为了象征性地表明该方法的概率统计的特点。
蒙特卡罗法作为一种计算方法,是由S.M.乌拉姆和J.冯·诺伊曼在20世纪40年代中叶为研制核武器的需要而首先提出来的。在此之前,该方法的基本思想实际上早已被统计学家所采用了。例如,早在17世纪,人们就知道了依频数来决定概率的方法。
20世纪40年代中叶,出现了电子计算机,使得用数学方法模拟大量的试验成为可能。另外,随着科学技术的不断发展,出现了越来越多的复杂而困难的问题,用通常的解析方法或数值方法都很难加以解决。蒙特卡罗法就是在这些情况下,作为一种可行的而且是不可缺少的计算方法被提出和迅速发展起来的。
基本原理 考虑一个射击运动员的射击成绩 G。令x表示弹着点到靶心的距离,g(x)表示得分,而�0�6(x)表示该运动员的弹着点的分布密度,则
。
另一方面,如果该运动员进行了实弹射击,弹着点依次为X1,X2,…,XN,则平均得分为
。
很明显,弿N是G 的一个近似估计。蒙特卡罗法正是用弿N作为G 的近似估计。
假设 x不是一维空间的点,而是一个S 维空间的点(x1,x2,…,xs),则上述积分变为
。
蒙特卡罗法计算此积分是用
作为G 的近似估计,式中(X1n,X2n,…,Xsn)是由�0�6(x1,x2,…,xs)中抽取的第n 个样本点。同上述一维积分比较,相同点是,都以某随机变量的N 个独立抽样值的算术平均作为近似估计;不同点仅仅是,决定随机量的样本点不同,一个是一维空间的点,另一个是S 维空间的点。由上式可见, 决定近似估计 弿N好坏的仅仅是随机变量g(x)或g(x1,x2,…,xs)的分布情况,而与它们是由怎样的样本点对应过来的无关。换言之,如果随机变量g(x)和g(x1,x2,…,xs)具有相同分布,在不计抽样,不计计算g(x)和g(x1,x2,…,xs)的差别的情况下,S维情况与一维情况无任何差异。这是其他计算方法所不具有的、一个非常重要的性质。
蒙特卡罗法解题的一般过程是,首先构成一个概率空间;然后在该概率空间中确定一个随机变量g(x),其数学期望
正好等于所要求的值G,其中F(x)为x的分布函数;最后,以所确定的随机变量的简单子样的算术平均值
作为G 的近似估计。由于其他原因,如确定数学期望为G 的随机变量g(x)有困难,或为其他目的,蒙特卡罗法有时也用G 的渐近无偏估计代替一般过程中的无偏估计弿N来作为G 的近似估计。
收敛性、误差和费用 蒙特卡罗法的近似估计弿N依概率1收敛于G的充分必要条件是随机变量g(x)满足
。
如果随机变量g(x)满足条件
,
式中1≤r<2,则
,
亦即弿N依概率1收敛于G 的速度为。总之,蒙特卡罗法的收敛性取决于所确定的随机变量是否绝对可积,而蒙特卡罗法的收敛速度取决于该随机变量是几次绝对可积的。
根据中心极限定理,只要随机变量g(x)具有有限的异于零的方差σ2,当N 足够大时便有蒙特卡罗法的误差公式如下:
,
式中1-α为置信水平,x由置信水平所惟一确定。根据上述误差公式,为满足问题的误差和置信水平的要求,子样容量N必须大于(x/ε)2σ2,其中ε表示误差。进一步假设每观察一个样本所需要的费用是C,则蒙特卡罗法的费用是。这一结果表明,在相同误差和置信水平要求下,一个蒙特卡罗法的优劣完全取决于σ2C 的值的大小,它的值越小相应的方法越好,或者说,蒙特卡罗法的效率与σ2C 成反比。
提高效率的方法
降低方差技巧 降低方差是提高蒙特卡罗法效率的重要途径之一。考虑二重积分
,
式中�0�6(x,y)为x和y的分布密度函数,g(x,y)的方差存在。蒙特卡罗法计算Eg的一般技巧是用g=g(x, y)作为所确定的随机变量,其中x和y服从分布�0�6(x,y)。降低方差的具体办法有:
① 统计估计技巧用�0�6(x) 和�0�6x(y)分别表示分布�0�6(x,y)的边缘分布和条件分布。计算Eg的统计估计技巧是用y的统计估计量
作为所确定的随机变量,其中x服从分布�0�6(x)。g的方差恰好为两个方差的和,它们分别是对随机变量x和随机变量y采用抽样办法而产生的。gSE的方差正好等于前者,因此gSE的方差一定比g的方差小。统计估计技巧的一般原理是,对于问题中所出现的诸随机变量,能够确定其相应的统计估计量的,就不要再对它们采用随机抽样的办法。
② 重要抽样技巧引入任意分布密度函数�0�6*(x,y),则
的数学期望同样为Eg,其中x和y服从分布�0�6*(x,y)。当�0�6*(x,y)~|g(x,y)|�0�6(x,y)时,gIS的方差达到最小。在g(x,y)≥0时,方差等于零,gIS实际上变成了与其中出现的随机变量无关的常数。重要抽样技巧的一般原理是,尽量使所确定的随机变量与问题中所出现的随机变量关系不大。
③ 相关抽样技巧考虑一个新的、积分值已知的二重积分
,
可得知
的数学期望同样为Eg,式中x和y服从分布�0�6(x,y),α为任意常数。当为随机变量g(x,y)和g*(x,y)的均方差σg、λg*之比时,gCS的方差达到最小。此时的方差等于g 的方差 1-ρ2倍,ρ为随机变量g(x,y)和g*(x,y)的相关系数。当ρ=1时,方差变为零。相关抽样技巧的一般原理是,寻找一个数学期望已知的且与原确定的随机变量正相关的随机变量,使相应的相关系数尽量接近1,然后用这两个随机变量的线性组合作为蒙特卡罗法最终所确定的随机变量。
降低方差的技巧还有对偶变数技巧、系统抽样技巧和分层抽样技巧等。对偶变数技巧的一般原理是,除了原确定的随机变量外,寻找另一个(或多个)具有相同数学期望的随机变量,使得它们之间尽量是对偶负相关的,然后用它们的线性组合作为蒙特卡罗法最终所确定的随机变量。系统抽样技巧的一般原理是,对问题中所出现的某些随机变量按相应分布所确定的比例进行抽样,而不是进行随机抽样。分层抽样技巧的一般原理是,对问题中所出现的某些随机变量进行分层,尽量使所确定的随机变量在各层中相对平稳,各层间的抽样按相应分布所确定的比例进行。
其他途径 为了提高蒙特卡罗法的效率,除了简单地降低方差外,还有为降低费用设计的分裂和轮盘赌技巧,为逐步降低方差而设计的多极抽样技巧,为改善收敛速度而设计的拟蒙特卡罗法,为计算条件期望而设计的条件蒙特卡罗法等等。分裂和轮盘赌技巧的一般原理是,将x的积分区域分为重要和非重要两部分,对于抽样确定的X,当它属于重要区域时,对相应的Y 进行多次抽样;当它属于非重要区域时,只有在赌获胜时才对相应的Y 进行抽样。多级抽样技巧的一般原理是,在进行某一级抽样计算的同时,根据它所提供的抽样观察值,设计更好的抽样技巧,用新设计的抽样技巧进行新的一级的抽样计算,依次类推,最后用各级的结果的线性组合作为蒙特卡罗法的近似估计。拟蒙特卡罗法与一般蒙特卡罗法的最大区别是,前者不像后者那样要求子样 g(X1),g(X2),…,g(Xn)是相互独立的。用一致分布点列替代由随机数组成的点列的所谓数论方法,实际上就是一种拟蒙特卡罗法。条件蒙特卡罗法的一般原理是,首先将条件期望问题转化成为非条件期望问题,然后用解非条件期望的一般方法来解决条件期望计算问题。由于条件蒙特卡罗法中引进了任意分布密度函数,因此,可以选取合适的分布密度函数来实现进一步降低方差的目的。
优缺点 蒙特卡罗法的最大优点是,在方差存在的情况下,问题的维数不影响它的收敛速度,而只影响它的方差;问题几何形状的复杂性对它的影响不大;它不象其他数值方法那样对问题一定要进行离散化处理,而是常可以进行连续处理;它的程序结构简单,所需计算机存贮单元比其他数值方法少,这对于高维问题差别尤其显着。蒙特卡罗法的最大缺点是,对于维数少的问题它不如其他数值方法好;它的误差是概率误差,而不是一般意义下的误差。
应用 随着电子计算机的迅速发展和科学技术问题日趋复杂,蒙特卡罗法的应用越来越广泛,已经渗透到科学技术的各个领域。
在一些典型数学问题方面的应用主要有:多重积分计算、线性代数方程组求解、矩阵求逆、常微分方程边值问题求解、偏微分方程求解、非齐次线性积分方程求解、本征值计算和最优化计算等等。其中的多重积分计算、非齐次线性积分方程求解和齐次线性积分方程本征值计算等,不仅非常有代表性,而且有很大的实用价值,对于高维问题常比其他数值方法好。
在一些实际问题方面的应用主要有,屏蔽计算、核临界安全计算、反应堆物理计算、微扰计算、实验核物理计算、高能物理计算、核物理计算、统计物理计算、真空技术、公用事业、信息论、系统模拟、可靠性计算和计算机科学等等。其中的屏蔽计算、核临界安全计算、微扰计算、实验核物理计算和统计物理计算等,不仅非常有代表性,而且应用得很广泛,按蒙特卡罗法解决这些问题的能力讲,已经超过了其他计算方法的水平。
❸ 蒙特卡罗算法是什么
蒙特卡罗(MonteCarlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第二次世界大战进行研制原子弹的“曼哈顿计划”。
该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的MonteCarlo—来命名这种方法,为它蒙上了一层神秘色彩。
主要是:
使用随机数( 或更常见的伪随机数)来解决很多计算问题的方法。 将所求解的问题同一定的概率模型相联系, 用电子计算机实现统计模拟或 抽样 ,以获得问题的近似解。 为象征性地表明这一方法的概率统计特征, 故借用赌城蒙特卡罗命名。
❹ matlab如何实现蒙特卡洛算法
1、打开MATLAB软件,如图所示,输入一下指令。
❺ 什么是蒙特卡洛分析
蒙特卡罗分析法(统计模拟法),是一种采用随机抽样统计来估算结果的计算方法,可用于估算圆周率,由约翰·冯·诺伊曼提出。由于计算结果的精确度很大程度上取决于抽取样本的数量,一般需要大量的样本数据,因此在没有计算机的时代并没有受到重视。
利用蒙特卡罗分析法可用于估算圆周率,如图,在边长为 2 的正方形内作一个半径为 1 的圆,正方形的面积等于 2×2=4,圆的面积等于 π×1×1=π,由此可得出,正方形的面积与圆形的面积的比值为 4:π。
现在让我们用电脑或轮盘生成若干组均匀分布于 0-2 之间的随机数,作为某一点的坐标散布于正方形内,那么落在正方形内的点数 N 与落在圆形内的点数 K 的比值接近于正方形的面积与圆的面积的比值,即,N:K ≈ 4:π,因此,π ≈ 4K/N 。
用此方法求圆周率,需要大量的均匀分布的随机数才能获得比较准确的数值,这也是蒙特卡罗分析法的不足之处。
(5)蒙特卡洛算法视频讲解扩展阅读:
使用蒙特·卡罗方法进行分子模拟计算是按照以下步骤进行的:
1. 使用随机数发生器产生一个随机的分子构型。
2. 对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。
3. 计算新的分子构型的能量。
4. 比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。
若新的分子构型能量低于原分子构型的能量,则接受新的构型,使用这个构型重复再做下一次迭代。 若新的分子构型能量高于原分子构型的能量,则计算玻尔兹曼因子,并产生一个随机数。
若这个随机数大于所计算出的玻尔兹曼因子,则放弃这个构型,重新计算。 若这个随机数小于所计算出的玻尔兹曼因子,则接受这个构型,使用这个构型重复再做下一次迭代。
5. 如此进行迭代计算,直至最后搜索出低于所给能量条件的分子构型结束。
项目管理中蒙特·卡罗模拟方法的一般步骤是:
1.对每一项活动,输入最小、最大和最可能估计数据,并为其选择一种合适的先验分布模型;
2.计算机根据上述输入,利用给定的某种规则,快速实施充分大量的随机抽样
3.对随机抽样的数据进行必要的数学计算,求出结果
4.对求出的结果进行统计学处理,求出最小值、最大值以及数学期望值和单位标准偏差
5.根据求出的统计学处理数据,让计算机自动生成概率分布曲线和累积概率曲线(通常是基于正态分布的概率累积S曲线)
6.依据累积概率曲线进行项目风险分析。
❻ 蒙特卡洛算法和拉斯维加斯算法
一、定义:
特卡罗是一类随机方法的统称。这类方法的特点是,可以在随机采样上计算得到近似结果,随着采样的增多,得到的结果是正确结果的概率逐渐加大,但在(放弃随机采样,而采用类似全采样这样的确定性方法)获得真正的结果之前,无法知道目前得到的结果是不是真正的结果。
拉斯维加斯方法是另一类随机方法的统称。这类方法的特点是,随着采样次数的增多,得到的正确结果的概率逐渐加大,如果随机采样过程中已经找到了正确结果,该方法可以判别并报告,但在但在放弃随机采样,而采用渣竖类似全采样这样的确定性方法之前,不保证能找到任何结果(包括近似结果)
二、场景举例
假如筐里有100个苹果,让我每次闭备梁银眼拿1个,挑出最大的。于是我随机拿1个,再随机拿1个跟它比仿宴,留下大的,再随机拿1个……我每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,挑出的苹果就越大,但我除非拿100次,否则无法肯定挑出了最大的。这个挑苹果的算法,就属于蒙特卡罗算法——尽量找好的,但不保证是最好的。
而拉斯维加斯算法,则是另一种情况。假如有一把锁,给我100把钥匙,只有1把是对的。于是我每次随机拿1把钥匙去试,打不开就再换1把。我试的次数越多,打开(最优解)的机会就越大,但在打开之前,那些错的钥匙都是没有用的。这个试钥匙的算法,就是拉斯维加斯的——尽量找最好的,但不保证能找到。
三、结论
•蒙特卡罗算法
:采样越多,越近似最优解;
•拉斯维加斯算法:采样越多,越有机会找到最优解;
这两类随机算法之间的选择,往往受到问题的局限。如果问题要求在有限采样内,必须给出一个解,但不要求是最优解,那就要用蒙特卡罗算法。反之,如果问题要求必须给出最优解,但对采样没有限制,那就要用拉斯维加斯算法。