实验目的
学习计算机模拟的基本过程与方法。
淡验肉
1、模拟的概念。
2、产生随机数的计算机命令。
3、计算机模拟实例。
4、实验作业。
计算机模拟实例
离散系统模拟实例:排队问题
连续系统模拟实例:追逐问题
用蒙特卡洛法解非线性规划问题
返回
模拟的概念
模拟就是利用物理的、数学的模型来类比、模仿现实
系统及其演变过程,以寻求过程规律的一种方法。
模拟的基本思想是建立一个试验模型,这个模型包含
,获
得所要研究系统的必要信息
模拟的方法
物理模拟
对实际系统及其过程用功能相似的实物系统去模仿
例如,军事演习、船艇实验、沙盘作业等。
物理模拟通常花费较大、周期较长,且在物理模
型上改变系统结构和系数都较困难。而且,许多系统
无法进行物理模拟,如社会经济系统、生态系统等。
2、数学模拟
在一定的假设条件下,运用数学运算模拟系统的运
行,称为数学模拟。现代的数学模拟都是在计算机上进
行的,称为计算机模拟
计算机模拟可以反复进行,改变系统的结构和系数
都比较容易。
在实际问题中,面对一些带随机因素的复杂系统,
用分析方法建模常常需要作许多简化假设,与面临的实
际问题可能相差甚远,以致解答根本无法应用。这时,
计算机模拟几乎成为唯一的选择。
蒙特卡洛( Monte car1o)方法是一种应用随札数来
观察抽样,通过对样本值的观察统计,求得所研究系统
的某些参数
例1在我方某前沿防守地域,敌人以一个炮排(含两
门火炮)
打击,敌方对其阵地进行了伪装并经常变换射击地
点
经过长期观察发现,我方指挥所对敌方目标的指
示有50%是准确的,而我方火力单位,在指示正确
时,有1/3的射击效果能毁伤敌人一门火炮,有1/6
的射击效果能全部消灭故人
现在希望能用某种方式把我方将要对敌人实施
的20次打击结果显现出来,确定有效射击的比率及
毁伤敌方火炮的平均值。
分析:这是一个概率问题,可以通过理论计算得到相应的
,而
显示不出作战行动的动态过程
为了能显示我方20次射击的过程,现采用模拟的方式
需要模拟出以下两件事
[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次射击平均每次毁伤敌人的火炮数
初始化:==0k2==0
+1
硬币正面少>
骰子点数
<20?
E=(k2+k3)/20E1=0k20+1*k20+2*k3/20
停止
试验
投硬币
指示
指示
掷骰子
消灭敌人火炮数
序号
正确
不正确结果
456
正正反正正
VV√
正一反反
试验投硬币
指示指示掷骰
消灭敌人火炮数
序号结果正确不正确结果
I 2
正反正反
o√√√
3
14
15
6
17
正一正正正反正
20
6
13
从以上模拟结果可计算出:E/20==0×+1×x+2×=
计算机模拟MATLAB实现 来自淘豆网m.daumloan.com转载请标明出处.