当前位置:文档之家› 蒙特卡洛模拟方法

蒙特卡洛模拟方法


1707-1788

1777年,古稀之年的蒲丰在家中请来 好些客人玩投针游戏(针长是线距之半), 他事先没有给客人讲与π 有关的事。客人 们虽然不知道主人的用意,但是都参加了 游戏。他们共投针2212次,其中704次相交。 蒲丰说,2212/704=3.142,这就是π 值。 这着实让人们惊喜不已。
因此,可以通俗地说,蒙特卡罗方法是用随机试 验的方法计算积分,即将所要计算的积分看作服从某 种分布密度函数f(r)的随机变量g(r)的数学期望
g g (r ) f (r )dr
0

通过某种试验,得到N个观察值r1,r2,…,rN(用 概率语言来说,从分布密度函数 f(r) 中抽取 N 个子样 r1 , r2 , … , rN ,),将相应的 N 个随机变量的值 g(r1) , g(r2),…,g(rN)的算术平均值
离散型分布的直接抽样方法

对于任意离散型分布:
F ( x) Pi
xi x
其中 x1 , x2 , … 为离散型分布函数的跳跃点, P1 , P2,… 为相应的概率,根据前述直接抽样法,有离散型 分布的直接抽样方法如下:
X F xI , 当 Pi Pi
i=1 i=1 I-1 I
0, x 0 F ( x ) x, 0 x 1 特征:独立性、均匀性 1, x 1
分布函数为:
随机数的产生方法
随机数表 物理方法 计算机方法
随机数表
随机数表是由0,1,2,…,9十个数字组成,每 个数字以0.1的概率出现,数字之间相互独 立。 方法:如果要得到n位有效数字的随机数, 只需将表中每n个相邻的随机数字合并在一 起,且在最高位的前边加上小数点即可。
抽样次数与结果精度
1 2 E ( X ) , Var ( X ) x 解的均值与方差的计算公式: n
x2
是随机变量X的方差,而称 Var ( X ) 为估计量方差。通常蒙特卡罗模拟 X 中的样本量n很大,由统计学的中心极限定理知 渐进正态分布, 即: n
x
1 x 1 t2 X lim p( x) e 2 dt 2 x x n
我们就把
x / n 记做是误差
得到人们习惯的结果误差表示:
X
2
对于指定的误差ε,模拟所需抽样次数n可由 x / n 导出:
x n
随机数
随机数的定义
用Monte Carlo方法模拟某过程时,需要产生各种概率分布的随机变 量。最简单、最基本、最重要的随机变量是在[0,1]上均匀分布 的随机变量。由该分布抽取的简单子样称为随机数序列,其中每一 个体称为随机数。随机数属于一种特殊的由已知分布的随机抽样问 题。随机数是随机抽样的基本工具。 [0,1]上均匀分布(单位均匀分布),其分布密度函数为: 1, 0 x 1 f ( x) 0, 其他
i=0 i=0 n-1 n
例2. 掷骰子点数的抽样


掷骰子点数X=n的概率为:
P ( X n) 1 6
为了便于在计算机上使用,通常取 : M=2s 其中s为计算机中二进制数的最大可能有效位数 x1= 奇数 a = 52k+1 其中 k 为使 52k+1 在计算机上所能容纳的最 大整数,即a为计算机上所能容纳的5的最大奇次 幂。一般地,s=32时,a=513;s=48,a=515等。 伪随机数序列的最大容量λ(M)=2s-2 。 乘同余方法是使用的最多、最广的方法,在 计算机上被广泛地使用。
蒙特卡罗模拟方法
报 告 人 :杨林 吴颖 科 目 :项目风险管理 任课教师 :尹志军
蒙特卡罗模拟方法
一、蒙特卡罗方法概述 二、蒙特卡罗方法模型 三、蒙特卡罗方法的优缺点及其适用范围 四、相关案例分析及软件操作 五、问题及相关答案
Monte Carlo方法的发展历史
早在17世纪,人们就知道用事件发生的 “频率”来决定事件的“概率”。从方法 特征的角度来说可以一直追溯到18世纪后 半叶的蒲丰(Buffon)随机投针试验,即 著名的蒲丰问题。
①建立概率统计模型
N
②收集模型中风险变量的数据 , 确定风 险因数的分布函数
⑤根据随机数在各风 险变量的概率分布中 随机抽样,代入第一 步中建立的数学模型
N
N
③根据风险分析的精度要求,确 定模拟次数 N
④建立对随机变量的抽样 方法,产生随机数。

N 个样本值
⑦统计分析,估计均 值,标准差
例子
某投资项目每年所得盈 利额A由投资额P、劳动 生产率L、和原料及能 源价格Q三个因素。
蒙特卡罗方法的基本思想
蒙特卡罗方法又称计算机随机模拟方法。 它是以概率统计理论为基础的一种方法。 由蒲丰试验可以看出,当所求问题的解是 某个事件的概率,或者是某个随机变量的 数学期望,或者是与概率、数学期望有关 的量时,通过某种试验的方法,得出该事 件发生的频率,或者该随机变量若干个具 体观察值的算术平均值,通过它得到问题 的解。这就是蒙特卡罗方法的基本思想。
1 N g N g (ri ) N i 1
作为积分的估计值(近似值)。
计算机模拟试验过程
计算机模拟试验过程,就是将试验过 程(如投针问题)化为数学问题,在计算 机上实现。
模拟程序
l=1; d=2; m=0; n=10000 for k=1:n; x=unifrnd(0,d/2); y=unifrnd(0,pi); if x<0.5*1*sin(y) m=m+1 else end end p=m/n pi_m=1/p
产生伪随机数的乘同余方法
乘同余方法是由Lehmer在1951年提出来的,它的一般形式是:对于 任一初始值x1,伪随机数序列由下面递推公式确定:
xi 1 a.xi (mod M )
2
xi 1 , i 1, 2, M
被M 整除后的余数,叫做
a 为乘子, X i为种子(初值);M成为模数。上式表示
从而
p(
X ) 1 x n
是标准正态分布中与 α对应的临界值,
式中α位小概率,1- α称为置信度: 可有统计分布表查得。

p(
X ) 1 x n
得统计学上称为与置信水平α对应的置信区间:
X x / n X x / n
用MATLAB产生随机数
语言:连续均匀分布的函数表达式为 R=unifrnd(A,B) 演示:for n=1:100; k=unifrnd(0,1) end
随机抽样及其特点

由巳知分布的随机抽样指的是由己知分 布的总体中抽取简单子样。随机数序列是 由单位均匀分布的总体中抽取的简单子样, 属于一种特殊的由已知分布的随机抽样问 题。下表所叙述的由任意已知分布中抽取 简单子样,是在假设随机数为已知量的前 提下,使用严格的数学方法产生的。
N
A aP bL2 cQ d
收集P,L,Q数据,确定分布函 数 f ( P), f ( L), f (Q) 模拟次数N;根据分 布函数,产生随机数
N
1 2
N
A aP bL2 cQ d
1 2
根据历史数据,预测未来。 产生
N 个 A值
抽取 P,L,Q一 组随机 数,带 入模型
1, 当x l sin s( x, ) 0, 其他
1 sN N
s ( x , )
i 1 i i
N
P s ( x, ) f1 ( x) f 2 ( )dxd

d
0


l sin
0
dx 2l a a
2l 2l aP as N
x1

a.xi 对模 M的同余。
xi 1 是
a.xi
•利用乘同余法产生伪随机数的步骤如下: (1)取种子 1 、乘子 a 、和模数M; (2)由式(1)获得一系列 , ...; 1 2 (3)由式(2)得到一系列 , … 。这就是所要产生的伪随机数 2 1 的序列
x

x x
乘同余方法在计算机上的使用
例如:某随机数表第一行数字为7634258910…,要想得 到三位有效数字的随机数依次为:0.763,0.425,0.891
物理方法
基本原理:利用某些物理现象,在计算机 上增加些特殊设备,可以在计算机上直接 产生随机数。 缺点:无法重复实现 费用昂贵
计算机方法
在计算机上产生随机数最实用、最常见的方 法是数学方法,即用如下递推公式: n1 T (n ) 产生随机数序列,对于给定的初始值 n ,确 定 n 1 ,n=1,2… 存在的问题:1,不满足相互独立的要求 2,不可避免的出现重复问题 所以成为伪随机数 问题的解决:1.选取好的递推公式 2.不是本质问题

该结果表明,为了实现由任意离散型分布的随机抽 样,直接抽样方法是非常理想的。
例1. 二项,其概率函数
n P( x n) Pn CN P n (1 P) N n

其中,P为概率。对该分布的直接抽 样方法如下:
X F n, 当 Pi Pi
统计分析,估计 均值,标准差
X
模型建立的两点说明
Monte Carlo方法在求解一个问题是,总 是需要根据问题的要求构造一个用于求 解的概率统计模型,常见的模型把问题 的解化为一个随机变量 X 的某个参数 的估计问题。 要估计的参数 通常设定为 X 的数学 期望(亦平均值,即 E( X ) )。按 统计学惯例, 可用 的样本 ( X1, X 2, ...X n ) 1 X X 的平均值来估计,即 n
相关主题