eetop[1].cn_MonteCarlo030206
Monte Carlo方法

方法
Monte Carlo 方法
• Monte Carlo 方法及其历史 • Monte Carlo 方法的基本思想 • Monte Carlo 方法的应用
Monte Carlo 方法及其历史
Monte Carlo 是地中海沿岸Monaco 的一个城 市,是世界闻名的赌城,用这个名字命名一 个计算方法,表明该算法与随机、概率有着 密切的联系。事实上,Monte Carlo 方法亦 称为随机模拟(random simulation)方法、 随机抽样(random sampling)技术或统计试 验(statisticaltesting)方法。
蒲丰投针试验示意图
针与平行线相交的充分必要条件是y ≤ lsin φ ,因此,针 与平行线相交事件的集为
则针与平行线相交的概率为
由于l 和a 均为已知常数,只要通过大量抽样试验求得 该概率p ,由上式即可算出圆周率。设投针总次数为N ,其中针与平行线相交次数为v ,由贝努里( Bernoulli)定理可知,当N充分大时,该事件出现的 频率接近于其概率,即
随机抽样方法可以追溯到18 世纪后半 叶的蒲丰(Buffon)随机投针试验,蒲丰 发现了随机投针的概率与π 之间的关系。 但是一般是将Metropolis 和Ulam 在194 9 年发表的论文作为MC 方法诞生的标志 。20 世纪40 年代是电子计算机问世 的年代,也是研制原子弹的年代。原子弹 的研制过程涉及大量复杂的理论和技术问 题,如中子运输和辐射运输等物理过程。 科学家们在解决中子运输等问题时,将随 机抽样方法与计算机技术相结合,从而产 生了MonteCarlo 方法。
式中,J 为粒子两两有效相互作用能, Si为粒子i 的状态值,B 为某个强度热 力学场对粒子i 作用所产生的能量。
基于Matlab语言的Monte_Carlo入门教程

前言与说明一、Monte Carlo 方法是一门简单而复杂的学问Monte Carlo 方法往小的方面说很简单,就是生成一堆随机数,然后以某函数规则计算 出一堆数值,最后求这些数值的平均值就得到了结果;往大的方面说却很复杂,要将蒙特卡 洛做好需要考虑的问题很多,例如: 1. 需要解决的问题是否收敛——倘若不收敛,Monte Carlo 方法就不能用,不然计 算出来的结果有何意义,只有老天才知道; 2. 所选用的具体方法收敛速度如何——虽然几乎所有 Monte Carlo 收敛阶数为 1/2, 但不同的方法收敛阶数前面的系数不同; 3. 所得解的误差是多少——Monte Carlo 方法从来得不到精确值,而是一个近似的 随机变量,因此,任何时候,报告 Monte Carlo 解时,需要同时报告该解的方差; 4. 如何选择具体算法,以加快速度——Monte Carlo 模拟需要较长时间,所以速度 很重要。
尤其是你使用 Monte Carlo 方法实时计算金融产品价格时,时间就是金钱。
加 快 Monte Carlo 速度有很多或大或小的技巧,而且这些技巧还要依据不同问题而定。
5. 伪随机数问题——计算机生成的随机数都是伪随机数, 很多 Monte Carlo 书中都 大书特书伪随机数的危害以及如何生成尽可能“真”的伪随机数。
有此告诫在,我们自 然不能对伪随机数问题视而不见,但是我们是否就要因这一问题惶惶不可终日呢? 6. 模型与现实——模型是我们的理想,但是现实中的市场却是残酷的。
如果有人 仅仅拿着书本就冲进市场,那他必然还要交高昂的学费,最终鲜血淋漓地出来。
同理, Monte Carlo 方法(以及其他几乎所有方法),任何时候都只能给我们作参考。
然而, 我们却可以以科学的态度和方法使用 Monte Carlo 方法,以使其结果更加贴近现实,参 考价值更大。
二、本课程将解决的问题作为一门针对非学术人士的入门性质的课程, 本课程最注重的是基础的应用性知识。
Monte Carlo 法

Monte Carlo 法§8.1 概述Monte Carlo 法不同于前面几章所介绍的确定性数值方法,它是用来解决数学和物理问题的非确定性的(概率统计的或随机的)数值方法。
Monte Carlo 方法(MCM ),也称为统计试验方法,是理论物理学两大主要学科的合并:即随机过程的概率统计理论(用于处理布朗运动或随机游动实验)和位势理论,主要是研究均匀介质的稳定状态[1]。
它是用一系列随机数来近似解决问题的一种方法,是通过寻找一个概率统计的相似体并用实验取样过程来获得该相似体的近似解的处理数学问题的一种手段。
运用该近似方法所获得的问题的解in spirit 更接近于物理实验结果,而不是经典数值计算结果。
普遍认为我们当前所应用的MC 技术,其发展约可追溯至1944年,尽管在早些时候仍有许多未解决的实例。
MCM 的发展归功于核武器早期工作期间Los Alamos (美国国家实验室中子散射研究中心)的一批科学家。
Los Alamos 小组的基础工作刺激了一次巨大的学科文化的迸发,并鼓励了MCM 在各种问题中的应用[2]-[4]。
“Monte Carlo ”的名称取自于Monaco (摩纳哥)内以赌博娱乐而闻名的一座城市。
Monte Carlo 方法的应用有两种途径:仿真和取样。
仿真是指提供实际随机现象的数学上的模仿的方法。
一个典型的例子就是对中子进入反应堆屏障的运动进行仿真,用随机游动来模仿中子的锯齿形路径。
取样是指通过研究少量的随机的子集来演绎大量元素的特性的方法。
例如,)(x f 在b x a <<上的平均值可以通过间歇性随机选取的有限个数的点的平均值来进行估计。
这就是数值积分的Monte Carlo 方法。
MCM 已被成功地用于求解微分方程和积分方程,求解本征值,矩阵转置,以及尤其用于计算多重积分。
任何本质上属随机组员的过程或系统的仿真都需要一种产生或获得随机数的方法。
这种仿真的例子在中子随机碰撞,数值统计,队列模型,战略游戏,以及其它竞赛活动中都会出现。
蒙特卡罗基本思想

蒙特卡罗方法简介蒙特卡罗模型(Monte Carlo method),又称统计模拟法、随机抽样技术。
由S.M.乌拉姆和J.冯·诺伊曼在20世纪40年代为研制核武器而首先提出。
在这之前,蒙特卡罗方法就已经存在。
1777年,法国Buffon提出用投针实验的方法求圆周率∏。
这被认为是蒙特卡罗方法的起源。
是一种以概率统计理论为指导的非常重要的数值计算方法。
是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。
蒙特卡罗(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。
这一方法源于美国在第一次世界大战进研制原子弹的“曼哈顿计划”。
该计划的主持人之一、数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。
而蒙特·卡罗方法正是以概率为基础的方法。
考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的“图形”,如何求出这个“图形”的面积呢?Monte Carlo方法是这样一种“随机化”的方法:向该正方形“随机地”投掷N个点落于“图形”内,则该“图形”的面积近似为M/N。
蒙特卡罗模型的基本思想是,为了求解数学、物理、工程技术以及管理等方面的问题,首先建立一个概率模型或随机过程,使它们的参数,如概率分布或数学期望等问题的解;然后通过对模型或过程的观察或抽样试验来计算所求参数的统计特征,并用算术平均值作为所求解的近似值。
对于随机性问题,有时还可以根据实际物理背景的概率法则,用电子计算机直接进行抽样试验,从而求得问题的解答。
从理论上来说,蒙特卡罗方法需要大量的实验。
实验次数越多,所得到的结果才越精确。
科技计算中的问题比这要复杂得多。
比如金融衍生产品(期权、期货、掉期等)的定价及交易风险估算,问题的维数(即变量的个数)可能高达数百甚至数千。
对这类问题,难度随维数的增加呈指数增长,这就是所谓的“维数的灾难”(Course Dimensionality),传统的数值方法难以对付(即使使用速度最快的计算机)。
monte carlo研究方法

Monte Carlo研究方法2.1计算机模拟概述近年来,“计算机模拟”方法已经引发了一场科学革命,传统上将物理学、化学以及生物学等学科划分为“实验”分支和“理论”分支,已不能适应科学发展的要求,“计算机模拟”成为第三个分支,它同前两种方法互为补充[34]。
对一个精确描述的模型系统,计算机模拟能够给出精确的信息(除统计误差图2.1化学反应的计算机模拟外,但是至少在原则上可以使这些统计误差任意小)。
而解析理论提供的信息只在很少的情况下是精确的,而在大多数情况下,都会遇到不受控制的近似,在特定的条件下才能得到精确解。
例如,三维情况下可解的统计物理学问题只限于一些理想化的极限情况,如理想气体或理想溶液。
即使很简单的统计力学模型,如三维Ising模型,也不能精确求解,因此常常要采用计算机模拟来估算对一个问题进行解析处理时所引入的误差。
同样,如果“精确”意味着准确知道一个给定的实验样品的有效哈密顿量,那么由实验得到的数据也不是绝对准确的。
有时甚至不清楚实验观察到的某些现象究竟是固有的还是由未知杂质引起的。
由此可知,解析理论和实验结果之间的比较,并不总是导致确定无疑的结论,有时还需要用模拟来沟通理论和实验之间的隔阂。
模拟结果与实验结果相比,不受不精确的近似(它们通常是解析理论中不可避免的)的影响,可以检验模型是否忠实地代表实际系统。
通过模拟可以得到很多信息,不管什么物理量,只要研究者认为有用,就可以设法从模型中对其进行“抽样”。
此外,实验工作者虽然可以改变样品的温度和压力以探讨其影响,可是要估计原子间势能变化的影响,就比较困难了,而对计算机模拟来说,任意改变原子间作用力并不是什么大困难。
计算机模拟是用计算机方法研究化学反应及误差的重要手段之一,它构成化学计量学一个颇为独特的分支。
用计算机可模拟某些很难实际试验的化学反应,可用于研究化学量测方法,包括化学计量学数据解析方法的特性与误差,还可探讨有关化学反应的机理。
MonteCarlo(蒙特卡洛法)简介

一个例子 --
n=1000000; m=0; t=1; for i=1:n x=1; for k=1:7 ang=pi*rand; x=x+cos(ang); if x<0 l=0; t=0; end end if x>5 & t==1 l=1; else l=0; end m=m+l; t=1; end m/n
方差削减技术
对偶变量技术(适用正态分布函数) 取一组随机数Z_i,可得模拟值C_i ,i=1,2,..n 估计值为期平均C^ 再取Z_i 的对偶Z’_i=-Z_i,再生成估计值C’^ 然后去新的平均值C*=(C^+C’^)/2 则 varC*=1/2varC^+1/2cov(C^,C’^)< 1/2varC^+ 该技术使计算更稳定
随机数的取得
如果你对随机数有更高的要求,需要自己
编辑“随机数生成器” 最简单、最基本、最重要的一个概率分布 是(0,1)上的均匀分布(或称矩形分布) 例如在Matlab中,命令“rand()”将产生一 个(0,1)中均匀分布的随机数 你可以根据需要给随机数一个“种子”, 以求不同的数
基本思想和原理
基本思想:当所要求解的问题是某种事件出现
的概率,或者是某个随机变量的期望值时,它 们可以通过某种“试验”的方法,得到这种事 件出现的频率,或者这个随机变数的平均值, 并用它们作为问题的解。 原理:抓住事物运动的几何数量和几何特征, 利用数学方法来加以模拟,即进行一种数字模 拟实验。 它是以一个概率模型为基础,按照这个模型所 描绘的过程,通过模拟实验的结果,作为问题 的近似解。。
实现从已知概率分布抽样
Monte Carlo 方法资料

Monte Carlo方法的基本思想
Monte Carlo 方法的基本思想是: 为了求解某个问题 , 建立一个恰 当的概率模型或随机过程 , 使得其参量(如事件的概率、随机变 量的数学期望等)等于所求问题的解 , 然后对模型或过程进行反 复多次的随机抽样试验 , 并对结果进行统计分析 , 最后计算所求 参量 , 得到问题的近似解。
③ 收敛速度与问题的维数无关 , 因此 , 较适用于求解多维问题。
④ 问题的求解过程取决于所构造的概率模型 , 而受问题条件限制的 影响较小 , 因此 , 对各种问题的适应性很强。
随机数的产生
1 随机数与伪随机数
Monte Carlo 方法的核心是随机抽样。 在该过程中往往需要各种各样分 布的随机变量其中最简单、最基本的是在[0 ,1]区间上均匀分布的 随机变量。 在该随机变量总体中抽取的子样 ξ 1 ,ξ 2 , … ,ξN 称为随 机数序列 , 其中每个个体称为随机数。 用数学的方法产生随机数是目前广泛使用的方法。 该方法的基本思想 是利用一种递推公式 :
"quantum" Monte Carlo: random walks are used to compute quantum-mechanical energies and wavefunctions, often to solve electronic structure problems, using Schrödinger’s equation as a formal starting point;
即当 N 充分大时 , 有 成立的概率等于1 , 亦即可以用 ξN 作为所求量 x 的估计值。
根据中心极限定理 , 如果随机变量 ξ的标准差 σ 不为零 , 那么 Monte Carlo 方法的误差ε为
Monte-Carlo模拟教程

举例
例1 在我方某前沿防守地域,敌人以一个炮排(含两门火炮) 为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地 进行了伪装并经常变换射击地点.
经过长期观察发现,我方指挥所对敌方目标的指示有50%是准 确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁 伤敌人一门火炮,有1/6的射击效果能全部毁伤敌人火炮.
蒙特卡罗方法的关键步骤在于随机数的产生, 计算机产生的随机数都不是真正的随机数(由算 法确定的缘故),如果伪随机数能够通过一系列 统计检验,我们也可以将其当作真正的随机数 使用。
rand('seed',0.1);
rand(1) %每次运ra行nd程('s序tat产e',s生um的(1值00*是clo相ck同)*r的and);
E = P(A0) = P(j=0)P(A0∣j=0) + P(j=1)P(A0∣j=1)
= 1 0 1 1 0.25 2 22
P(A1) = P(j=0)P(A1∣j=0) + P(j=1)P(A1∣j=1)
= 10 11 1 2 23 6
P(A2) = P(j=0)P(A2∣j=0) + P(j=1)P(A2∣j=1)
非常见分布的随机数的产生
• 逆变换方法
由定理 1 ,要产生来自 F(x) 的随机数,只要先 产生来自U (0,1) 随机数 u ,然后计算 F 1(u) 即 可。具体步骤如下:
(1) 生成 (0,1)上 均匀分布的随机数U。
(2) 计算 X F -1(U ) ,则 X 为来自 F(x) 分布的随机数.
蒙特卡罗方法的基本思想很早以前就被人们所发现和 利用。早在17世纪,人们就知道用事件发生的“频率” 来决定事件的“概率”。19世纪人们用蒲丰投针的方法 来计算圆周率π,上世纪40年代电子计算机的出现,特别 是近年来高速电子计算机的出现,使得用数学方法在计算 机上大量、快速地模拟这样的试验成为可能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Example 2:
a = N() b = N() c = 'a+2*sgn(b)‘
2005 Synopsys, Inc. (10)
Advances In HSPICE
Syntax for Describing Variation
Basic construct for describing variation:
Monte Carlo Simulation in HSPICE
Feature upgrade for 2006.03 release
As the semiconductor industry faces the challenges of 90 and 65nm technologies, their leaders realize:
2005 Synopsys, Inc. (4)
Advances In HSPICE
Variation Block
Introduced in HSPICE 2005.09 with DCmatch analysis Contains definitions for global and local variations Emphasis on variations in materials and manufacturing Variation definitions used for Monte Carlo and DCmatch
“The EDA industry needs to deliver a new generation of chip-design tools to ease variability problems.” “We need to develop tools to relieve designers from concerns about these variabilities.” “We need to apply very powerful statistical techniques to guide device sizing.”
Other parameters are made available on demand. These parameters only supported if specified in model
Advances In HSPICE
2005 Synopsys, Inc. (13)
Variations on Element Parameters
.element_variation R R = 10 .end_element_variation
2005 Synopsys, Inc. (14)
Advances In HSPICE
Applying Variation to Groups of Elements Extended syntax for defining condition:
Common parameters:
to define parameters which can be used in global
and local variation sub-blocks
(but not in other parts of models or netlist) Advances In HSPICE
2005 Synopsys, Inc. (6)
Variation Block: Options and Common Parameters
Options
options regarding use of Variation Block ignore_variation_block ignore_local_variations ignore_global_variations options for dependent analyses
Global variations
lot wafer chip site on same wafer
Local variations
same chip devices < 1mm apart
2005 Synopsys, Inc. (3)
Advances In HSPICE
Expressing Variability
Par=‘Expression for Sigma’
abbreviated notation for variation_in_Par=‘Expression for Sigma’ Constructs for expressions:
Constants, parameters or functions Absolute variation or relative ( space % ) Perturb() to reference random variable
Syntax for defining variations on element parameters:
elementType elementPar=‘Expression for Sigma’
Application: For elements without models To define local temperature Example:
A=N() (also used in implicit definitions)
Uniform distribution:
B=U()
Cumulative distribution function:
C=CDF(x1,y1,.....xn,yn)
2005 Synopsys, Inc. (9)
0. 99 0. 9 99 91 6 0. 99 93 2 0. 99 94 8 0. 99 96 0. 4 99 98 0. 99 9 1. 96 00 0 1. 12 00 0 1. 28 00 04 1. 4 00 06 1. 00 0nc. (11)
Variations on Model Parameters
Syntax for defining variations on model parameters:
modelType modelName modelPar=‘Expression for Sigma’
Rules:
If expression does not contain reference to random variable, then Normal Distribution assumed with zero mean and sigma of the expression (implicit definition) All definitions are 1 sigma Advances In HSPICE
Nominal device characteristics Variations in device characteristics .variation distributions on model parameters
.model model parameters
Variation Block
2005 Synopsys, Inc. (5)
Advances In HSPICE
Variation Block General Syntax
.variation options define parameters common to all sub-blocks .global_variation define random variables define variations of model parameters .end_global_variation .local_variation define random variables define variations of model parameters .element_variation define variations of element parameters .end_element_variation .end_local_variation .end_variation Advances In HSPICE
2005 Synopsys, Inc. (16)
Advances In HSPICE
Variation Block Example
.variation .global_variation NMOS SNPS20N vth0=0.07 u0=10 % PMOS SNPS20P vth0=0.08 u0=8 % .end_global_variation .local_variation nmos snps20N + vth0='1.2e-9/sqrt(get_E(W)*get_E(L)*get_E(M))' + u0='2.3e-6/sqrt(get_E(W)*get_E(L)*get_E(M))' % pmos snps20P + vth0='3.4e-9/sqrt(get_E(W)*get_E(L)*get_E(M))' + u0='4.5e-6/sqrt(get_E(W)*get_E(L)*get_E(M))' % .element_variation R r=10 % .end_element_variation .end_local_variation .end_variation
element_type ( condition_clause ) element_parameter = ‘Expression for Sigma’
Example:
.element_variation R (element_name .end_element_variation 'ra*‘ ) R=20 %