计算机模拟实验目的实验内容学习计算机模拟的基本过程与方法。
1、模拟的概念。
4、实验作业 。
3、计算机模拟实例。
2、产生随机数的计算机命令。
连续系统模拟实例,追逐问题离散系统模拟实例,排队问题用蒙特卡洛法解非线性规划问题返回计算机模拟实例模拟的概念模拟 就是利用物理的、数学的模型来类比、模仿现实系统及其演变过程,以寻求过程规律的一种方法。
模拟的基本思想 是建立一个试验模型,这个模型包含所研究系统的主要特点.通过对这个实验模型的运行,获得所要研究系统的必要信息模拟的方法
1、物理模拟:
对实际系统及其过程用功能相似的实物系统去模仿。
例如,军事演习、船艇实验、沙盘作业等。
物理模拟通常花费较大、周期较长,且在物理模型上改变系统结构和系数都较困难。而且,许多系统无法进行物理模拟,如社会经济系统、生态系统等。
在实际问题中,面对一些带随机因素的复杂系统,
用分析方法建模常常需要作许多简化假设,与面临的实际问题可能相差甚远,以致解答根本无法应用。 这时,
计算机模拟几乎成为唯一的选择。
在一定的假设条件下,运用数学运算模拟系统的运行,称为数学模拟。现代的数学模拟都是在计算机上进行的,称为计算机模拟。
2、数学模拟计算机模拟可以反复进行,改变系统的结构和系数都比较容易。
蒙特卡洛( Monte Carlo)方法 是一种应用随机数来进行计算机模拟的方法.此方法对研究的系统进行随机观察抽样,通过对样本值的观察统计,求得所研究系统的某些参数.
例 1 在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点,
经过长期观察发现,我方指挥所对敌方目标的指示有 50%是准确的,而我方火力单位,在指示正确时,有 1/3的射击效果能毁伤敌人一门火炮,有 1/6
的射击效果能全部消灭敌人.
现在希望能用某种方式把我方将要对敌人实施的 20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。
分析,这是一个概率问题,可以通过理论计算得到相应的概率和期望值,但这样只能给出作战行动的最终静态结果,而显示不出作战行动的动态过程,
为了能显示我方 20次射击的过程,现采用模拟的方式。
需要模拟出以下两件事:
1,问题分析
[2] 当指示正确时,我方火力单位的射击结果情况
[1] 观察所对目标的指示正确与否模拟试验有两种结果,每一种结果出现的概率都是 1/2.
因此,可用投掷一枚硬币的方式予以确定,当硬币出现正面时为指示正确,反之为不正确.
模拟试验有三种结果:毁伤一门火炮的可能性为 1/3(即 2/6),
毁伤两门的可能性为 1/6,没能毁伤敌火炮的可能性为 1/2(即 3/6).
这时 可用投掷骰子的方法来确定,
如果出现的是1、2、3三个点:则认为没能击中敌人;
如果出现的是4、5点:则认为毁伤敌人一门火炮;
若出现的是6点:则认为毁伤敌人两门火炮.
2,符号假设
i:要模拟的打击次数; k1:没击中敌人火炮的射击总数;
k2:击中敌人一门火炮的射击总数; k3:击中敌人两门火炮的射击总数.
E:有效射击比率; E1,20次射击平均每次毁伤敌人的火炮数.
3,模拟框图 初始化,i=0,k1=0,k2=0,k3=0
i=i+1
骰子 点数?
k1=k1+1 k2=k2+1 k3=k3+1 k1=k1+1
i< 20?
E=(k2+k3)/20 E1=0*k1/20+1*k2/20+2*k3/20
停止硬币正面?Y N
N
Y
1,2,3
4,5 6
4,模拟结果消灭敌人火炮数试验序号投硬币结 果指示正确指 示不正确掷骰子结 果
0 1 2
1 正 ∨ 4 ∨
2 正 ∨ 4 ∨
3 反 ∨ ∨
4 正 ∨ 1 ∨
5 正 ∨ 2 ∨
6 反 ∨ ∨
7 正 ∨ 3 ∨
8 正 ∨ 6 ∨
9 反 ∨ ∨
10 反 ∨ ∨
消灭敌人火炮数试验序号投硬币结 果指示正确指 示不正确掷骰子结 果
0 1 2
11 正 ∨ 2 ∨
12 反 ∨ ∨
13 正 ∨ 3 ∨
14 反 ∨ ∨
15 正 ∨ 6 ∨
16 正 ∨ 4 ∨
17 正 ∨ 2 ∨
18 正 ∨ 4 ∨
19 反 ∨ ∨
20 正 ∨ 6 ∨
从以上模拟结果可计算出,E = 7 / 2 0 = 0,3 5
20
32
20
41
20
130
1E =0.5
5,理论计算设:
观察所对目标指示正确确观察所对目标指示不正
1
0
j
A
0
:射中敌方火炮的事件; A
1
:射中敌方一门火炮的事件;
A
2
:射中敌方两门火炮的事件.
则由全概率公式:
E = P(A
0
) = P(j=0)P (A
0
∣ j=0 ) + P(j= 1)P(A
0
∣ j=1)
= 25.0
2
1
2
1
0
2
1

P(A
1
) = P(j =0)P(A
1
∣ j=0) + P(j=1)P( A
1
∣ j=1)
=
6
1
3
1
2
1
0
2
1

P(A
2
) = P(j =0)P(A
2
∣ j=0) + P(j=1)P( A
2
∣ j=1)
=
12
1
6
1
2
1
0
2
1

E
1
=
33.0
12
1
2
6
1
1
6,结果比较理论计算和模拟结果的比较
 分类项目 无效射击 有效射击 平均值模 拟 0.65 0.35 0.5
理 论 0.75 0.25 0.33
返回虽然模拟结果与理论计算不完全一致,但它却能更加真实地表达实际战斗动态过程,
用蒙特卡洛方法进行计算机模拟的步骤,
[1] 设计一个逻辑框图,即模拟模型.这个框图要正确反映系统各部分运行时的逻辑关系。
[2] 模拟随机现象.可通过具有各种概率分布的模拟随机数来模拟随机现象.
1,[ a,b] 均匀分布 U( a,b)
当只知道一个随机变量取值在( a,b)内,但不知道
(也没理由假设)它在何处取值的概率大,在何处取值的概率小,就只好用 U( a,b)来模拟它。
3,均值为?,方差为? 的 正态分 布
当研究对象视为大量相互独立的随机变量之和,且其中每一种变量对总和的影响都很小时,可以认为该对象服从正态分布。
机械加工得到的零件尺寸的偏差、射击命中点与目标的偏差、
各种测量误差、人的身高、体重等,都可近似看成服从正态分布。
4,产生 m? n 阶 期望值 为? 的 指数分布 的随机数矩阵,e x p r n d (?,m,n )
若连续型随机变量 X的概率密度函数为其中 >0为常数,则称 X服从 参数 为 的 指数分布 。

00
0)(
x
xexf t

指数分布的期望值为
1
排队服务系统中顾客到达率为常数时的到达间隔、故障率为常数时零件的寿命都服从指数分布。
指数分布在排队论、可靠性分析中有广泛应用。
设离散型随机变量 X的所有可能取值为 0,1,2,…,且取各个值的概率为其中 >0为常数,则称 X服从参数为 的 帕松分布 。
,,2,1,0,!)( kkekXP k

5,参数为? 的 帕松分布
帕松分布在排队系统、产品检验、天文、物理等领域有广泛应用。
帕松分布的期望值为?
如相继两个事件出现的间隔时间服从参数为 的指数分布,
则在单位时间间隔内事件出现的次数服从参数为 的泊松分布.即单位时间内该事件出现 k次的概率为:
,,2,1,0,!)( kkekXP k
反之亦然。
指数分布与帕松分布的关系:
离散系统模拟实例,排队问题排队论 主要研究随机服务系统的工作过程。
在排队系统中,服务对象的到达时间和服务时间都是随机的。排队论通过对每个个别的随机服务现象的统计研究,找出反映这些随机现象平均特性的规律,从而为设计新的服务系统和改进现有服务系统的工作提供依据。
对于排队服务系统,顾客常常注意排队的人是否太多,等候的时间是否长,而服务员则关心他空闲的时间是否太短,于是人们常用排队的长度、等待的时间及服务利用率等指标来衡量系统的性能,
[1] 系统的假设:
( 1) 顾客源是无穷的;
( 2) 排队的长度没有限制;
( 3) 到达系统的顾客按先后顺序依次进入服务,即“先到先服务”。
单服务员的排队模型,在某商店有一个售货员,顾客陆续来到,
售货员逐个地接待顾客,当到来的顾客较多时,一部分顾客便须排队等待,被接待后的顾客便离开商店,设:
1,顾客到来间隔时间服从参数为 0.1的指数分布,
2,对顾客的服务时间服从 [ 4,15 ] 上的均匀分布,
3,排队按先到先服务规则,队长无限制,
假定一个工作日为 8小时,时间以分钟为单位 。
[1]模拟一个工作日内完成服务的个数及顾客平均等待时间 t.
[2]模拟 100个工作日,求出平均每日完成服务的个数及每日顾客的平均等待时间 。
[2] 符号说明
w:总等待时间; ci:第 i个顾客的到达时刻;
bi:第 i个顾客开始服务时刻; ei:第 i个顾客服务结束时刻.
xi,第 i-1个顾客与第 i个顾客之间到达的间隔时间
yi,对第 i个顾客的服务时间
c1
b1
c3 c4 c5c2
e1
b2
e2
b3
e3
b4
e4
b5
ci=ci-1+ xi
ei=bi+yi
bi=max(ci,ei-1)
t
[3] 模拟框图 初始化:令 i=1,ei-1=0,w=0
产生间隔时间随机数 xi~参数为 0.1的指数分布
ci=xi,bi=xi
产生服务时间随机数 yi~[4,15]的均匀分布
ei=bi+yi
累计等待时间,w=w+bi-ci
准备下一次服务,i=i+1
产生间隔时间随机数 xi~参数为 0.1的指数分布
ci=ci-1+ xi
确定开始服务时间,bi=max(ci,ei-1)
bi> 480?Y N
i=i-1,t=w/i 输出结果:完成服务个数,m=i
平均等待时间,t
停止
[1]模拟一日
To Matlab(simu1)
[2]模拟 100日
To Matlab(simu2)
返回用蒙特卡洛法解非线性规划问题对于 非线性规划问题,
min f(X ) X
nE?
s.t,0)(?Xg i i=1,2,?,m
jjj bxa j = 1,2,?,n
用蒙特卡洛法 求解的基本思想 是:在估计的区域
{(x 1,x 2,,?,x n ) | x j ],[ jj ba?,j=1,2,?,n}
内随机取若干实验点,然后从试验点中找出可行点,再从可行点中选择最小点.
基本假设 试验点的第 j个分量 xj服从 [aj,bj]内的均匀分布.
符号假设
P,试验点总数; MAXP,最大试验点总数;
K,可行点总数;  MAXK,最大可行点数 ;
X *,迭代产生的最优点;
Q,迭代产生的最小值 f(X * ),其初始值为计算机所能表示的最大数.
求解过程先产生一个随机数作为初始试验点,以后则将上一个试验点的第 j个分量随机产生,其它分量不变而产生一新的试验点.这样,每产生一个新试验点只需一个新的随机数分量.当 K>MAXK或 P>MAXP时停止迭代,
框 图初始化,给定 MAXK,MAXP;k=0,p=0,Q:大整数
xj=aj+R(bj-aj) j=1,2,…,n
j=0
j=j+1,p=p+1
P>MAXP?Y N
xj=aj+R(bj-aj)
gi(X)≥0?
i=1,2…n
Y N j<n?
f(X)≥Q?Y N
X*=X,Q=f(X)
k=k+1
k>MAXK?Y N
输出 X,Q,停止
Y
N
实验作业
2,某报童以每份 0.03 元的价格买进报纸,以 0.05 元的价格出售,根据长期统计,报纸每天的销售量及百分率为销售量 200 210 220 230 240 250
百分率 0.10 0.20 0.40 0.15 0.10 0.05
已知当天销售不出去的报纸,将以每份 0.02 元的价格退还报社,试用模拟方法确定报童每天买进报纸数量,使报童的平均总收入为最大?
1、编一个福利彩票电脑选号的程序。
4,某设备上安装有四只型号规格完全相同的电子管,已知电子管寿命为 1000--2000小时之间的均匀分布。当电子管损坏时有两种维修方案,一是每次更换损坏的那一只;二是当其中一只损坏时四只同时更换。已知更换时间为换一只时需
1小时,4只同时换为 2小时。更换时机器因停止运转每小时的损失为 20元,又每只电子管价格 10元,试用模拟方法决定哪一个方案经济合理?
5,导弹追踪问题,设位于坐标原点的甲舰向位于 x轴上点 A(1,0)
处的乙舰发射导弹,导弹头始终对准乙舰,如果乙舰以最大的速度
(是常数 )沿平行于 y轴的直线行驶,导弹的速度是 5,模拟导弹运行的轨迹,又乙舰行驶多远时,导弹将它击中?