蒙特卡洛算法
取8个随机数
R1 0.0078, R2 0.9325,R3 0.1080,R4 0.0063
用蒙 特卡 洛计 算定 积分
R5 0.5490, R6 0.8556,R7 0.9771,R8 0.2783 Iˆ 0.9187
1.9
大大改善了结果!
理论依据 贝努里(Bernoulli) 大数定律
设 nA 是 n 次独立重复试验中事件 A 发生的 次数, p 是每次试验中 A 发生的概率,则
0 有
nA lim P p 0 n n
或
nA lim P p 1 n n
1 1 1 0 0.25 2 2 2
P(A1) = P(j=0)P(A1∣j=0) + P(j=1)P(A1∣j=1) =
1 1 1 1 0 2 2 3 6
P(A2) = P(j=0)P(A2∣j=0) + P(j=1)P(A2∣j=1)
1 1 1 1 = 0 2 2 6 12 1 1 1 2 0.33 E1 = 6 12
生成一个满足均匀分布的 m n 随机矩阵,矩
阵的每个元素都在 (0,1) 之间。 注:rand(n)=rand(n,n)
randn(m,n)
生成一个满足正态 m n 的随机矩阵
randperm(m)
生成一个由 1:m 组成的随机排列
perms(1:n)
生成由 1:n 组成的全排列,共 n! 个,称为 “群“
分析:这是一个概率问题,可以通过理论计算
得到相应的概率和期望值.但这样只能给出作战 行动的最终静态结果,而显示不出作战行动的动 态过程.
算 法 基 本 思 想
蒙特卡洛方法的基本思想虽然早已被人 们提出,却很少被使用。直到电子计算 机出现后,使得人们可以通过电子计算 机来模拟巨大数目的随机试验过程,使 得蒙特卡洛方法得以广泛地应用,在现 代化的科学技术中发挥应有的作用
nA 在概率的统计定义中,事件 A 发生的频率 n “ 稳定于”事件 A 在一次试验中发生的概率是 指: nA nA 频率 与 p 有较大偏差 p 是 n n
小概率事件, 因而在 n 足够大时, 可以用频率 近似代替 p . 这种稳定称为依概率稳定.
贝努里(Bernoulli) 大数定律的意义:
Monte Carlo 方法处理的问题可 以分两类
确定性的数学问题
蒙特 卡洛 方法 处理 的问 题
多重积分、求 逆矩阵、解线性代数方程组、解 积分方程、解某些偏微分方程边 值问题和计算代数方程组、计算 微分算子的特征值等等 随机性问题
考虑积分
用 Mont e Carlo 计算 定积 分
蒙 特 卡 洛 算 法 概 述
蒙特卡洛算法(Monte Carlo method) 是以概率和统计的理论、方法为基础 的一种计算方法,将所求解的问题同 一定的概率模型相联系,用电子计算 机实现统计模拟或抽样,以获得问题 的近似解,故又称统计模拟法或统计 试验法。
设r表示射击运动员的弹着点到靶心 的距离,g(r)表示击中r处相应的得 分数(环数),f(r)为该运动员的弹 着点的分布密度函数,它反映运动 员的射击水平。该运动员的射击成 绩为
需要模拟出以下两件事:
[1]观察所对目标的指示正确与否
模拟试验有两种结果,每一种结果出现的概率都是1/2。
问 题 分 析
因此,可用投掷一枚硬币的方式予以确定,当硬币出现 正面时为指示正确,反之为不正确.
[2]当指示正确时,我方火力单位的射击结果情况
模拟试验有三种结果:毁伤一门火炮的可能性为1/3(即 2/6),毁伤两门的可能性为1/6,没能毁伤敌火炮的可能 性为1/2(即3/6). 这时可用投掷骰子的方法来确定: 如果出现的是1、2、3三个点:则认为没能击中敌人; 如果出现的是4、5点:则认为毁伤敌人一门火炮; 若出现的是6点:则认为毁伤敌人两门火炮.
符 号 说 明
i:要模拟的打击次数; k1:没击中敌人火炮的射击总数; k2:击中敌人一门火炮的射击总数; k3:击中敌人两门火炮的射击总数; E:有效射击比率; E1:20次射击平均每次毁伤敌人的火炮数。
初始化:i=0,k1=0,k2=0,k3=0
i=i+1
模 拟 框 图
Y 硬币正面?
1,2,3
normrnd(MU,SIGMA,m,n)
生成正态(高斯)分布的随机数
exprnd 指数分布的随机数生成器
geornd 几何分布的随机数生成器 poissrnd 泊松分布的随机数生成器 unidrnd 离散均匀分布的随机数生成器 unifrnd 连续均匀分布的随机数生成器 betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器
N
骰子点数?
4,5 6
k1=k1+1
k2=k2+1
k3=k3+1
k1=k1+1
i<20? N
Y
E=(k2+k3)/20 E1=0*k1/20+1*k2/20+2*k3/20 停止
确 0 观察所对目标指示不正 设: j 1 观察所对目标指示正确
理 论 计 算
A0:射中敌方火炮的事件;A1:射中敌方一门火炮的事件; A2:射中敌方两门火炮的事件. 则0∣j=0) + P(j=1)P(A0∣j=1) =
I x 1e x dx, 0.
0
称为γ函 数,
假定随机变量具有密度函数
则
f X ( x) e x ,
I E( X 1 ).
用蒙 特卡 洛方 法计 算定 积分
抽取密度为e^{-x}的随机数 X_1,…X_n 构造统计数
n 1 1 ˆ I X i . n i 1
取 整 函 数
fix(x) floor(x) ceil(x) round(x)
: 截尾取整,直接将小数部分舍去 : 不超过 x 的最大整数
: 不小于 x 的最小整数
: 四舍五入取整
用蒙特卡罗投点法计算 的值
>>clear;clc; n=100000; a=2; m=0; for i=1:n x=rand*a/2;y=rand*a/2; if ( x^2 + y^2 <= (a/2)^2 ) m=m+1; end end fprintf('计算出来的pi为:%d',4*m/n);
方法一:将整个坐标轴看成一个边长为12的正方形,然后均匀的 这个正方形分成N(N的大小取决于划分的步长)个点,然后找出 N个点中有多少个点是属于阴影部分中, 假设这个值为k, 则阴影部分的面积为:k/N*12^2
方法二:将整个坐标轴看成一 个边长为12的正方形,然后在 (-6,6)中随机出N(N越大 越好,至少超过1000)个点, 然后找出这N个点中有多少个 点在阴影区域内,假设这个值 为k,则阴影部分的面积为: k/N*12^2。然后重复这个过程 100次,求出100次面积计算结 果的均值,这个均值为阴影部 分面积。
算 法 应 用 举 例
在我方某前沿防守地域,敌人以一个炮排(含两 门火炮)为单位对我方进行干扰和破坏.为躲避 我方打击,敌方对其阵地进行了伪装并经常变换 射击地点。
经过长期观察发现,我方指挥所对敌方目标的指 示有50%是准确的,而我方火力单位,在指示正 确时,有1/3的射击效果能毁伤敌人一门火炮, 有1/6的射击效果能全部毁伤敌人火炮. 现在希望能用某种方式把我方将要对敌人实施的 20次打击结果显现出来,确定有效射击的比率及 毁伤敌方火炮的平均值。
则
n n 1 1 1 1 ˆ E ( I ) E X i E X i n i 1 n i 1
1 n n 1 1 E X E X I . n i 1 n
例如 α=1.9
用 Mont e Carlo 计算 定积 分---
I1.9 x e dx.
0.9 x 0
取 X i ln Ri , Ri U (0,1) :
R1 0.0587, R2 0.0961, R3 0.9019, R4 0.3095, Iˆ 1.497
Γ(1.9)=0.96176 – 模拟结果不好!
用蒙 特卡 洛计 算定 积分
例子说明分析和设计是重要的。 重写积分 x 1 I1.9 xe 0.1 dx. 密度函数为fY ( y ) ye y 0 x 取两个随机数
1 R1 , R2 U (0,1), 令Y R1 ln R2 , 算I1.9 E 0.1 Y
e
x
t2 2
dt
用蒙特卡洛方法进行计算机模拟的步骤:
计 算 机 模 拟
[1] 设计一个逻辑框图,即模拟模型. [2] 根据流程图编写程序,模拟随机现象.可通 过具有各种概率分布的模拟随机数来模拟随机现 象. [3] 分析模拟结果,计算所需要结果.
随 机 数 生 成 函 数
rand(m,n)
中心极限定理
设随机变量序列 X 1 , X 2 ,, X n , 相互 独立,服从同一分布,且有期望和方差:
E ( X k ) , D ( X k ) 2 0 , k 1,2,
则对于任意实数 x , n X n k 1 k 1 lim P x n 2 n
g
引 例
0
g (r ) f (r )dr
用概率语言来说,<g>是随机变量g (r)的数学期望,即