1、蒙特卡罗模拟方法 蒙特卡罗模拟方法模拟 的概念模拟 就是利用物理的、数学的模型来类比、模仿现实系统及其演变过程,以寻求过程规律的一种 方法。模拟的基本思想 是建立一个试验模型,这个模型包含所研究系统的主要特点通过对这个实验模 型的运行,获得所要研究系统的必要信息模拟的方法1、物理模拟 : 对实际系统及其过程用功能相似的实物系统去模 仿。例如,军事演习、船艇实验、沙盘作业等。物理模拟通常花费较大、周期较长,且在物理模 型上改变系统结构和系数都较困难。而且,许多 系统无法进行物理模拟,如社会经济系统、生态 系统等。2、 数学模拟 在一定的假设条件下,运用数学运算模拟系统 的运行,称为数学模拟。现代
2、的数学模拟都是 在计算机上进行的,称为计算机模拟。 计算机模拟可以反复进行,改变系统的结构和 系数都比较容易。在实际问题中,面对一些带随机因素的复杂系 统,用分析方法建模常常需要作许多简化假 设,与面临的实际问题可能相差甚远,以致解 答根本无法应用。这时,计算机模拟几乎成为 唯一的选择。模拟的方法蒙特卡洛( Monte Carlo)方法 是一种应用随机数来进行计算机模拟的方 法此方法对研究的系统进行随机观察 抽样,通过对样本值的统计分析,求得 所研究系统的某些参数蒙特卡罗方法的基本思想蒙特卡罗方法 又称 计算机 随机模拟方法。它是以概率统计理论 为基础的一种方法。当所求问题的解是某个事件的 概
3、率 ,或者是某个随机变量的 数学期望 , 或者是与概率、数学期望有关的量时。通过某种试验的方法,得出该事件 发生的频率,或者该随机变量若干个具体观察值 的算术平均值,通过它得到问题的解。这就是蒙 特卡罗方法的基本思想。 建立概率统计模型 收 集 模 型 中 风 险 变 量 的 数 据 , 确 定 风险因数的分布函数 根 据 风 险 分 析 的 精 度 要 求 , 确定模拟次数 样本值 统 计 分 析 , 估 计 均值,标准差NNN 根 据 随 机 数 在 各 风险 变 量 的 概 率 分 布 中随 机 抽 样 , 代 入 第 一步中建立的数学模型N个 建 立 对 随 机 变 量 的 抽 样方法
4、,产生随机数。蒙特卡罗方法的思想框图蒙特卡罗方法的框图实例dcabLapA += 212某投资项目每年所得盈 利额 A由投资额 P、劳动生产率 L、和原料及能源价格 Q三个因素。 收集 P,L,Q数据,确定分布函数 模拟次数 N;根据分布函数,产生随机数 抽取 P,L,Q一组随机 数,带 入模型产生 A值统计分析,估计均值,标准差12 2AaPbLcQd=+(),(),()f fLfQ NNNN个用 MATLB产生随机数1. rand(m,n) :生成一个满足均匀分布的 m n 随机矩阵,矩阵的每个元素都在 (0,1) 之间。 2. randn(m,n):生成一个满足正态 m n 的随机矩阵3
5、. randper():生成一个由 1: 组成的随机排列 4. perms(1:n):生成由 1:n 组成的全排列,共 n! 个 5. norrnd(mu,sigma,n):生成正态(高斯)分布 的随机数6.randit():生成服从标准正态分布的随机整数1、 rint() %生成 0或 1;2、 radit( m) 生成 m*的 0, 1矩阵;3、 rnit( , n) 生成 *n的 ,矩阵;4、 radit( , , l,h) %生成在 l和 h之间的 m*n 的矩阵;5、 randit( 1,, l,h) 生成一介于 l和 h之间的数;7. unidrn() :生成服从离散均匀分布的随机
6、数。 Unifrd 是在某个区间内均匀选取实数(可为小数或整数), Unidr是均匀选取整数随机数。离散均匀分布随机数有 1 个参数 , 表示从 1, 2, 3, . N这 n 个整数中以相同的概率抽样 语法: unidrn(,M,N,P,.)用 MATLB产生随机数8. binornd:生成服从二项分布的随机数。二项分布有 2 个参数: n,p。考虑一个打靶的例子,每枪命中率为 p,共射击 N 枪 .那么一共击中的次数就服从参数为( N,p)的二项分布9.geornd():生成服从几何分布的随机数。几何分布的参数只有一个 :p.几何分布的现实意义可以解释为,打靶命中率为 p,不断地打靶,直到
7、第一次命中目标时没有击中次数之和 .x=geornd(0.4,100000,1); hist(x,50);用 MATLB产生随机数10. poissrnd() :生成服从泊松 (Poisson)分布的随机 数。 生成服从泊松 (Poisson)分布的随机数。11. unifrd():生成某个区间内均匀分布的随机数语法: ifrn(a,b,M,N,P,.) 生成的随机数区间在 (a,b)内,排列成 M*N*P. 多维向量 。 如果只写 M,则生成 M*矩阵;如果参数为 M,N可以省略掉方括号。用 MATLB产生随机数12. normrnd(mu,sigma,M,N,P,.): 生成的随机数服从均
8、值为 ,标准差为 sigma(注意标准差是正数)正态分布,这些随机数排列成 M*N*P. 多维向量。如果只写 M,则生成 M* 矩阵;如果参数为 M,N可以省略掉方括号。用 MATLB产生随机数蒙特卡罗模拟古典概率模拟 在一袋中有 10 个相同的球,分别标有号码 1,2,10。每次任取一个球,记录其号码后放回袋中,再任取下 一个。这种取法叫做 “有放回抽取 ”。今有放回抽取 3个球,求这 3个球的号码均为偶数的概率。解:有放回取 3个球 , 所有取法有 103种 ; 有放回取 3个偶数号码的球 , 所有取法有 53种 . 所以 :81105)( 33=Ap几何概率模拟 定义 :向任一可度量区域
9、 G内投一点,如果所投的点落在 G中任意可度量区域 g内的可能性与 g的度量成正比,而与 g的位置和形状无关,则称这个随机试验为几何型随机试验。或简称为几何概型。 蒙特卡罗模拟例题 : 两人约定于 12点到 1点到某地会面,先到者等 20分钟后离去,试求两人能会面的概率? 解:设 x, y分别为甲、乙到达时刻 (分钟 ) 令 A=两人能会面 =(x,y)|x-y| 20,x 60,y 60 P()=A的面积 /S的面积= (602-402)/602=5/9=0.5556蒙特卡罗模拟复杂概率模拟 例题 1. 在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏为躲避我 方
10、打击,敌方对其阵地进行了伪装并经常变换射击地 点经过长期观察发现,我方指挥所对敌方目标的指 示有 50是准确的,而我方火力单位,在指示正确时,有 1/3的概率能毁伤敌人一门火炮,有 1/6的概率能全部消灭敌人现在希望能用某种方式把我方将要 对敌人实施的 1次打击结果显现出来,利用频率稳定性,确定有效射击 (毁伤一门炮或全部消灭 )的概率 . 蒙特卡罗模拟分析 : 这是一个复杂概率问题,可以通过理论计算得到相应的概率 。 为了直观地显示我方射击的过程,现采用模拟的方式。 蒙特卡罗模拟1. 问题分析需要模拟出以下两件事: 1 观察所对目标的指示正确与否模拟试验有两种结果,每一种结果出现的概率都 是
11、 1/2因此, 可用投掷一枚硬币的方式予以确定 ,当硬币出现正面时为指示正确,反之为不正确 蒙特卡罗模拟这时 可用投掷骰子的方法来确定 :如果出现的是 1,2,3三个点:则认为没能击中敌人;如果出现的是 4,5点:则认为毁伤敌人一门火炮;若出现的是 6点:则认为毁伤敌人两门火炮2 当指示正确时,我方火力单位的射击结果情况模拟试验有三种结果:毁伤一门火炮的可能性为 1/3(即 2/6),毁伤两门的可能性为 1/6,没能毁伤敌火炮的可能性为 1/2(即 3/6)蒙特卡罗模拟2. 符号假设i:要模拟的打击次数; k0:没击中敌人火炮的射击总数; 1:击中敌人一门火炮的射击总数;k2:击中敌人两门火炮
12、的射击总数E:有效射击 (毁伤一门炮或两门炮 )的概率蒙特卡罗模拟初始化 :i=0,k1=0,k2=0,k3=0i=i+1骰子 点数 ?k1=k1+k2=k2+1k3=k3+1k1=k1+i m?E=(k2+k3)/m 停止硬币正面 ?Y NNY1, 2, 3 4, 5 6蒙特卡罗模拟3. 模型建立设 :=观察所对目标 指示正确 确观察所对目标 指示不正10j A0: 射 中 敌 方 火 炮 的 事 件 ; A1: 射 中 敌 方 一 门 火 炮 的 事 件 ; 2: 射 中 敌 方 两 门 火 炮 的 事 件 则 由 全 概 率 公 式 : P(A0) =P(j=0)P(A0 j=0) +P
13、(j=1)P(A0 j=1) = 25.2121021+ P(A1) =P(j=0)P(A1 j=0) +P(j=1)P(A1 j=1) = 6132021+ P(A2) =P(j=0)P(A2 j=0) +P(j=1)P(A2 j=1) = 121611021+ E= 25.012161+ 4.理论计算 蒙特卡罗模拟例题 2. 排队问题在排队系统中,服务对象的到达时间和服务时间 都是随机的。排队论通过对每个个别的随机服务 现象的统计研究,找出反映这些随机现象平均特 性的规律,从而为设计新的服务系统和改进现有 服务系统的工作提供依据。对于排队服务系统 , 顾客常常注意排队的人是否太多 , 等候
14、的时间是否长 , 而服务员则关心他空闲的时间是否太短 . 于是人们常用排队的长度、等待的时间及服务利用率等指标来衡量系统的性能 .蒙特卡罗模拟蒙特卡罗模拟单服务员的排队模型 : 在某商店有一个售货员,顾客陆续来到,售货员逐个地接待顾客当到来的顾客较多时,一 部分顾客便须排队等待,被接待后的顾客便离开商店设: (1)顾客到来间隔时间服从参数为 0.1的指数分布(2)对顾客的服务时间服从,上的均匀分布(3)排队按先到先服务规则,队长无限制1问题分析假定一个工作日为 8小时,时间以分钟为单位。1模 拟 一 个 工 作 日 内 完 成 服 务 的 个 数 及 顾 客 平 均 等 待 时 间t2模 拟
15、10个 工 作 日 , 求 出 平 均 每 日 完 成 服 务 的 个 数 及 每 日顾客的平均等待时间。w:总等待时间; ci:第 i个顾客的到达时刻;bi:第 i个顾客开始服务时刻; ei:第 i个顾客服务结束时刻xi:第 i-1个顾客与第 i个顾客之间到达的间隔时间yi:对第 i个顾客的服务时间c1b1c3 c4c5c2e1b2 e2b3 e3b4 e4b5 tci=i-1+ xi ei=bi+yi bi=max(ci,ei-1)2 符号说明 蒙特卡罗模拟初始化:令 i=1, ei-1=0, w=0产生间隔时间随机数 xi参数为 0.1的指数分布ci=xi ,bi=xi 产生服务时间随机
16、数 yi4,15的均匀分布ei=bi+yi累计等待时间: w=+bi-ci准备下一次服务: i=i+1产生间隔时间随机数 xi参数为 0.1的指数分布ci=i-1+ xi 确定开始服务时间: bi=max(ci,ei-1)bi 480?Y Ni=i-1,t=w/i 输出结果:完成服务个数: m=i 平均等待时间: t 停止1模拟一日2模拟 10日模型框图:蒙特卡罗模拟优点1.能够比较逼真地描述具有 随机性质的事物的特点及 物理实验过程。2.受几何条件限制小。3.收敛速度与问题的维数无关。4.误差容易确定。5.程序结构简单,易于实现。蒙特卡罗方法的 优缺点及其应用范围 缺点 收敛速度慢。 误差具有概率性。 进行模拟的前提是各输入变量是相互独立的。 能够比较逼真地描述具有随机性质的事物的特点及物理实验过程 从这个意义上讲,蒙 特卡罗方法可以部分 代替物理实验,甚至 可以得到物理实验难 以得到的结果。用蒙特卡罗方法解决实际 问题,可以直接从实 际问题本身出发,而 不从方程或数学表达 式出发。它有直观、 形象的特点。蒙特卡罗方法的 优缺点及其应用范围 受几何条件限制小在计算 s维空间中的任一区域 Ds上的积分,无论区域 s的形状多么特殊,只要能给出 描述 Ds的几何特征的条件,就可以从 Ds中均匀产生 N个点-4-224-4-224蒙特卡罗方法的 优缺点及其应用范围