蒙特卡罗算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

蒙特卡罗模拟方法

模拟的概念

•模拟就是利用物理的、数学的模型来类比、模仿现实系统及其演变过程,以寻求过程规律的一种方法。

•模拟的基本思想是建立一个试验模型,这个模型包含所研究系统的主要特点.通过对这个实验模型的运行,获得所要研究系统的必要信息

模拟的方法

1、物理模拟:

对实际系统及其过程用功能相似的实物系统去模仿。例如,军事演习、船艇实验、沙盘作业等。•物理模拟通常花费较大、周期较长,且在物理模型上改变系统结构和系数都较困难。而且,许多系统无法进行物理模拟,如社会经济系统、生态系统等。

模拟的方法

2、数学模拟

在一定的假设条件下,运用数学运算模拟系统的运行,称为数学模拟。现代的数学模拟都是在计算机上进行的,称为计算机模拟。

计算机模拟可以反复进行,改变系统的结构和系数都比较容易。

在实际问题中,面对一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假

设,与面临的实际问题可能相差甚远,以致解答根本无法应用。这时,计算机模拟几乎成为唯一的选择。

蒙特卡洛(Monte Carlo)方法是一种应用随机数来进行计算机模拟的方法.此方法对研究的系统进行随机观察抽样,通过对样本值的统计分析,求得所研究系统的某些参数.

蒙特卡罗方法的基本思想

•蒙特卡罗方法又称计算机随机模拟方法。它是以概率统计理论为基础的一种方法。

•当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与概率、数学期望有关的量时。通过某种试验的方法,得出该事件发生的频率,或者该随机变量若干个具体观察值的算术平均值,通过它得到问题的解。这就是蒙特卡罗方法的基本思想。

①建立概率统计模型

②收集模型中风险变量的数据 , 确定风

险因数的分布函数③根据风险分析的精度要求,确定模拟次数⑥

样本值⑦统计分析,估计均

值,标准差

N

N N ⑤根据随机数在各风险变量的概率分布中

随机抽样,代入第一

步中建立的数学模型

N 个④建立对随机变量的抽样

方法,产生随机数。

蒙特卡罗方法的思想框图

蒙特卡罗方法的框图实例

d ca bL ap A +++=212某投资项目每年所得盈

利额A 由投资额P 、劳动

生产率L 、和原料及能

源价格Q 三个因素。收集P,L,Q 数据,确定分布函数模拟次数N ;根据分

布函数,产生随机数抽取P,L,Q 一组随机数,带

入模型

产生 A 值

统计分析,估计

均值,标准差

122A aP bL cQ d =+++(),(),()f P f L f Q N

N N N 个

用MATLAB产生随机数

1.rand(m,n) :生成一个满足均匀分布的 m ×n 随机矩阵,矩阵的每个元素都在 (0,1) 之间。

randn(m,n):生成一个满足正态 m ×n 的随机矩阵 2.

2. randn(m,n)

randperm(m):生成一个由 1:m 组成的随机排列3.

3. randperm(m)

perms(1:n):生成由 1:n 组成的全排列,共 n! 个4. perms(1:n)

4.

5. normrnd(mu,sigma,m,n):生成正态(高斯)分布的随机数

6.randint():生成服从标准正态分布的随机整数1、randint () %生成0或1;

2、randint (m )%生成m *m 的0,1矩阵;

3、randint (m ,n )%生成m *n 的0,1矩阵;

4、randint (m ,n ,[l,h])%生成在l 和h 之间的m *n 的矩阵;

5、randint (1,1,[l,h])%生成一介于l 和h 之间的数;7. 7. unidrnd()

unidrnd() :生成服从离散均匀分布的随机数。Unifrnd 是在某个区间内均匀选取实数(可为小数或整数),Unidrnd 是均匀选取整数随机数。离散均匀分布随机数有 1 个参数n, 表示从{1, 2, 3, ... N}这 n 个整数中以相同的概率抽样

语法:unidrnd(n,[M,N,P,...])用MATLAB 产生随机数

用MATLAB产生随机数

8. binornd:生成服从二项分布的随机数。二项分布有 2 个参数:n,p。考虑一个打靶的例子,每枪命中率为 p,共射击 N 枪.那么一共击中的次数就服从参数为(N,p)的二项分布

geornd():生成服从几何分布的随机数。

9.9.geornd()

几何分布的参数只有一个:p.几何分布的现实意义可以解释为,打靶命中率为 p,不断地打靶,直到第一次命中目标时没有击中次数之和.

x=geornd(0.4,100000,1);

hist(x,50);

用MATLAB产生随机数poissrnd():生成服从泊松(Poisson)分布的随10.

10. poissrnd()

机数。生成服从泊松(Poisson)分布的随机数。

unifrnd():生成某个区间内均匀分布的随机数11.

11. unifrnd()

语法:unifrnd(a,b,[M,N,P,...])

生成的随机数区间在(a,b)内,排列成 M

M**N*P... 多维向量。如果只写 M,则生成 M

M**M矩阵;如果参数为[M,N]可以省略掉方括号。

相关文档
最新文档