当前位置:文档之家› 概率实验一:随机数的生成与蒙特卡洛随机模拟方法 - 副本

概率实验一:随机数的生成与蒙特卡洛随机模拟方法 - 副本


④ 产生m×n阶均值为mu方差为sigma的正态分布的随 机数矩阵
normrnd(mu,sigma,m,n) 产生一个均值为mu方差为sigma的正态分布的随机数
normrnd(mu,sigma) ⑤ 产生m×n阶期望值为mu (mu=1/λ)的指数分布的随机 数矩阵
exprnd(mu,m,n) 产生一个期望值为mu的指数分布的随机数
实验一
随机数的产生及蒙特卡 洛随机模拟方法
实验目的
学习随机数的产生及蒙特卡洛随机模拟方法 的基本过程与方法。
实验内容
1、产生随机数的计算机命令。 2、蒙特卡洛随机模拟实例。
实验作业
数学模拟的方法
在一定的假设条件下,运用数学运算模拟系统 的运行,称为数学模拟。现代的数学模拟都是在计 算机上进行的,称为计算机模拟。
counter=counter+1; %统计针与线相交的次数
end
end
fren=counter/n; pihat=2*l/(a*fren) %用频率近似计算π
%movie(frame,1)
%播放帧动画1次
蒲丰投针实验计算圆周率π
❖ 蒙特卡罗投点法是蒲丰投针实验的推广:
❖ 在一个边长为a的正方形内随机投点,该点落在此 正方形的内切圆中的概率应为该内切圆与正方形 的面积比值,即
x=unifrnd(0,a/2,1,n); phi=unifrnd(0,pi,1,n); %样本空间Ω
for i=1:n
if x(i)<l*sin(phi(i))/2 %满足此条件表示针与线的相交
plot(phi(i),x(i),'r.'); frame(i)=getframe; %描点并取帧
title(['Current Point ',num2str(i),' Total ',num2str(n)]);
例 顾客到达某商店的间隔时间服从参数为 10(分钟)的指数分布(指数分布的均值为10)
----- 指两个顾客到达商店的平均间隔时间是 10分钟.即平均10分钟到达1个顾客. 顾客到达 的间隔时间可用exprnd(10)模拟。
5.产生 m n 阶参数为 的泊松分布的随机数矩阵: poissrnd ( ,m, n)
unifrnd (a,b,m, n) 产生一个[a,b]均匀分布的随机数:
unifrnd (a,b)
当只知道一个随机变量取值在(a,b)内,但 不知道(也没理由假设)它在何处取值的概率大, 在何处取值的概率小,就只好用U(a,b)来模拟它。
2.产生mm*nn阶离散均匀分布的随机数矩阵: R = unidrnd(N) R = unidrnd(N,mm,nn)
❖ 蒲丰投针实验:
❖ 如右图所示,以M
❖ 表示针落下后的中点,
❖ 以x表示M到最近一条
❖ 平行线的距离,以φ表示针与此线的交角:
❖ 针落地的所有可能结果满足:0 x a 2, 0
❖ 其样本空间视作矩形区域Ω, 面积是: S() a 2
❖ 针与平行线相交的条件:0 x sinl 2, 0
4.产生 m n 阶期望值为 的指数分布的随机数矩阵:
exprnd (,m, n )
•若连续型随机变量X的概率密度函数为
ቤተ መጻሕፍቲ ባይዱ
f
(
x)

1

ex
/
0
x0 x0
其中 >0为常数,则称X服从参数为 的 指数分布。
•指数分布的期望值为
•排队服务系统中顾客到达间隔、质量与可靠性 中电子元件的寿命通常服从指数分布。
在Matlab命令行中输入以下命令: liti1(0.5,10000)
练习掷一枚不均匀硬币,正面出现概率 为0.3,记录前1000次掷硬币试验中正 面频率的波动情况,并画图。
在Matlab命令行中输入以下命令: liti1(0.3,1000)
二)几何概率模拟
1.定义
向任一可度量区域G内投一点,如果所投的点落在G中 任意可度量区域g内的可能性与g的度量成正比,而与 g的位置和形状无关,则称这个随机试验为几何型随 机试验。或简称为几何概型。

它是样本空间Ω子集A,面积是:S(A)

sin l
2d l
❖ 积分计算 syms l phi; int('l/2*sin(phi)',0phi,0,pi);
%ans=l
❖ 因此,针与平行线相交的概率为:p S(A) / S() 2l / a ❖ 从而有: 2l ap 特别当 a 2l 时 1 p p为统计频率
[2] 模拟随机现象.可通过具有各种概率分布 的模拟随机数来模拟随机现象.
一)频率的稳定性模拟
1.事件的频率 在一组不变的条件下,重复作n次试验,记m是n次试验 中事件A发生的次数。
频率 f=m/n
2.频率的稳定性 掷一枚均匀硬币,记录掷硬币试验中频率P*的波动情况。
在Matlab中编辑.m文件如下:
3.产生 m n 阶均值为 ,标准差为 的正态分布的随机数矩阵: normrnd ( , ,m, n)
产生一个均值为 ,标准差的正态分布的随机数: normrnd ( , )
•当研究对象视为大量相互独立的随机变量之和, 且其中每一种变量对总和的影响都很小时,可以 认为该对象服从正态分布。
function liti1(p,mm) pro=zeros(1,mm); randnum = binornd(1,p,1,mm) a=0; for i=1:mm
a=a+randnum(1,i); pro(i)=a/i; end pro=pro num=1:mm; plot(num,pro)
在Matlab命令行中输入以下命令: liti1(0.5,1000)
作业:1.掷两枚不均匀硬币,每枚正面出现概率为 0.4,记录前1000次掷硬币试验中两枚都为正面频 率的波动情况,并画图。
2 : 两船欲停靠同一个码头, 设两船到达码头的时间 各不相干,而且到达码头的时间在一昼夜内是等 可能的. 如果两船到达码头后需在码头停留的时 间分别是1 小时与2 小 时,试求在一昼夜内,任一 船到达时,需要等待空出码头的概率. (频率估计 概率)
在Matlab中编辑.m文件如下:
function proguji=liti5(mm)%mm 是随机实验次数
frq=0;
randnum1=unifrnd(0,60,mm,1);
randnum2=unifrnd(0,60,mm,1);
randnum=randnum1-randnum2;
proguji=0;
计算机模拟可以反复进行,改变系统的结构和 系数都比较容易。
在实际问题中,面对一些带随机因素的复杂系 统,用分析方法建模常常需要作许多简化假设, 与面临的实际问题可能相差甚远,以致解答根本 无法应用。这时,计算机模拟几乎成为唯一的选 择。
一、随机数的产生
一)产生模拟随机数的计算机命令
在Matlab软件中,可以直接产生满足各种分布的随 机数,命令如下: 1.产生m*n阶(a,b)均匀分布U(a,b)的随机数矩阵:
掷一枚均匀硬币,正面朝上的次数X服 从参数为1,p的二项分布,X~B(1,p)
总结:常见分布的随机数产生语句
❖ 补充:随机数的产生命令
❖ MATLAB可以直接产生满足各种分布的随机数
❖ 具体命令如下:
❖ ① 产生m×n阶[0,1]上均匀分布的随机数矩阵

rand(m,n)
❖ 产生一个[0,1]上均匀分布的随机数
蒲丰投针实验的计算机模拟:
format long; a=1; l=0.6; %显示精度, 线宽和针长
figure; axis([0,pi,0,a/2]); %初始化绘图板
set(gca,'nextplot','add'); %初始化绘图方式为叠加
counter=0; n=2010; %初始化计数器和设定投针次数
random('Normal',0,1,2,4) ❖ 'name'的取值可以是(详情参见help random): ❖ 'norm' or 'Normal' / 'unif' or 'Uniform' ❖ 'poiss' or 'Poisson' / 'beta' or 'Beta' ❖ 'exp' or 'Exponential' / 'gam' or 'Gamma' ❖ 'geo' or 'Geometric' / 'unid' or 'Discrete Uniform' ❖ ……

rand
❖ ② 产生m×n阶[a,b]上均匀分布的随机数矩阵

unifrnd (a,b,m, n)
❖ 产生一个[a,b]上均匀分布的随机数

unifrnd(a,b)
❖ ③ 产生一个1:n的随机排列(元素均出现且不重复)

p=randperm(n)
❖ 注意: randperm(6)与unifrnd (1,6,1, 6)的区别
是用偶然性方法去解决确定性计算的前导,由 此可以领略到从“概率土壤”上开出的一朵 瑰丽的鲜花——蒙特卡罗方法(MC)
❖ 蒲丰投针实验可归结为下面的数学问题:平面上画 有距离为a的一些平行线,向平面上任意投一根长 为l(l<a)的针,假设针落在任意位置的可能性相同, 试求针与平行线相交的概率P(从而求π)
相关主题