当前位置:文档之家› 数学建模计算机模拟的技术

数学建模计算机模拟的技术

2.1 Monte-Carlo原理
2.2 蒙特卡罗法应用 2.2.1 求解非线性规划
2.2.2 估算圆周率
2.2.3 估算定积分
1)频率法
2)平均值法
3 模拟模型案例
例1:某港口提供有足够的泊位供船舶停靠,但现 在仅有一个可供装卸的泊位,船舶先到则先进行 装卸,如果船舶得不到及时装卸而造成的滞期费 为每小时100元。现要弄清该系统的性能,重点 考察船舶进入该港后等待装卸的滞留时间以及卸 位(即装卸用的泊位)的利用率,从而进行经济 效益分析。
时间推进方法:一般采用下次事件法 应当重点对系统状态可能发生改变的事件进行描述,
并确定这些事件之间的逻辑关系。
排队系统通常采用离散型模拟模型。其中,发生系 统状态变化的事件有两个:一是有顾客到达;二 是服务员完成服务。将最近发生上述两种事件之 一的时刻设置为下次事件发生点,就可将服务过 程描述为图2所示的模拟模型。
• 对不同的实现方案进行多次模拟,按照既 定的目标函数对不同方案进行比较,从中 选择最优方案。
1.1.2 模拟的分类
通常,模拟时间是模拟的主要自变量。
设计正确的模拟时间推进机理:模拟过程中 应根据系统的特性正确推进模拟时间,使 系统中各要素与发生的事件保持同步。
推进模拟时间的基本方法:
• 下次事件法:将模拟时间由一个事件发生 的时间点推进到紧接着的下一次事件发生 的时间点。
算法1(分步骤描述) 第 1 步 输入模拟次数n 第 2 步 k=1,count=0 第 3 步 当k<=n,执行Step 4-9,否则执行第11步 第 4 步 生成均匀分布随机数赋给r 第 5 步 由r及公式确定T1模拟火车出发时刻 第 6 步 生成均匀分布随机数赋给r; 第 7 步 由r及公式确定T3模拟人达到时刻 第 8 步 生成正态分布随机数T2模拟火车运行时间 第 9 步 IF T1+T2 > T3, count=count+1,END 第 10 步 执行第3步 第 11 步 输出赶上火车频率p=count/n
•管理系统模拟 •雷达系统模拟 •战争系统模拟
模拟思路: •“模拟”-对系统抽象建模 •“试验”-根据模型设计算法,编程进行反复试验 •“估计”-根据试验数据 •“收集”-根据试验结果作出判断
1.1 模拟的基本知识
1.1.1 模拟的概念及作用
• 现实系统的数学或逻辑模型可能十分复杂, 例如大多数具有随机因素的复杂系统,其 中的一些随机性因素很难用准确的数学公 式表述,从而也无法对整个系统采用解析 法求解。模拟是处理这类实际问题的有力 工具。
算法2(伪代 count=0;
ii)模拟n次 for i=1 to n,
模拟随机变量T1,T2,T3, 分别赋给t1,t2,t3;
if t1+t2 > t3, count=count+1
end if end for app_prb=count / n;
模拟 程序
• 明确问题,建立模型。正确描述待研究问题,明 确规定模拟的目的和任务,确定衡量系统性能或 模拟输出结果的目标函数,然后根据系统的结构 及作业规则,分析系统各状态变量之间的关系, 以此为基础建立所研究的系统模型。
• 收集和整理数据资料。模拟技术的正确运用,往 往由大量的输入数据作依靠。在随机模拟中,应 认真分析具体收集到的随机性数据资料,确定系 统中随机性因素的概率分布特性,以此为依据产 生模拟过程所必需的抽样数据。
2)连续型模拟:因变量随时间的改变呈连续性变 化。在大多数计算机模拟过程中,按固定的步长 推进模拟时间。
通常需建立一系列的由系统状态变量组成的 状态方程组,以描述状态变量与模拟时间的关系。
3)混合型模拟:因变量随时间的推移而作连续性 的变化并具有离散性的突变,如库存控制系统。
1.1.3 模拟的方式
end%for
prob=count/n
模拟结果:每次模拟1000次或5000次
序号 1 2 3 4 5 6
模拟次数 1000 1000 1000 5000 5000 5000
近似概率p 0.6280 0.6920 0.6530 0.6490 0.6260 0.6288
系统模拟注意事项:
一次模拟结果毫无意义! 模拟是试验性的,是思维结果的验证。 必须进行足够多次的模拟,并对结果进行统计分 析。 系统模拟特点:系统模拟是研究系统,特别是动态 系统的重要方法,对于: 结构复杂的系统; 很难用解析方法求出变量关系的系统; 内部机理不明的“黑箱”系统; 为验证用其他方法建立的模型及结果,应是较好 的选择。
装卸时间 累积频率
表4 船舶装卸时间累积分布表
9 10 11 12 13 14 15 16 0.20 0.42 0.61 0.77 0.87 0.95 0.98 1.00
为了比较准确地反映系统的性能,我们采用稳态
模拟方式,可以考察系统运行360天的情况。假 定港口每天24小时连续工作,因此模拟时间T设 置为8640小时。考虑到船舶到达港口的事件是影 响整个系统状态的主要因素,可以将模拟事件设 置为该事件的发生时刻。
1.3 随机变量的建模
•利用理论分布,基于对问题的实际的、合理的假 设,选择适当的理论分布模拟随机变量
优点是给出了各种理论结果出现的概率,便于进行数学分 析和处理。但此方法仅限于十分简单的情况,当问题越复 杂,数学处理变得越困难,并且丢失了试验数据的信息。
•基于实际数据的频率做近似模拟
优点在于完全与观察数据相符,并且随实际问题的复杂程 度增大不会产生更大的困难,仅增大工作量而已。缺点是 不便于进行数学分析,不得不依赖于模拟得到的统计结果。
• 固定时间步长法:模拟时间每次均以相等 的固定步长向前推进,每到达一个新的模 拟时间点需检查相应时间段内是否发生了 事件。需根据实际问题合理设置模拟时间 发生改变的步长。
根据模拟过程中因变量的变化情况进行分类:
1)离散型模拟:因变量在与事件时间有关的具体模 拟时间点呈离散性变化。大多数系统(如排队服 务系统)可采用离散型模拟。
n=input('输入模拟次数:');
count=0;
for i=1:n, rt1=rand; %模拟随机变量t1(火车从A站出发的时刻)
if rt1<0.7
T1=0;
elseif rt1>=0.7 & rt1<0.9
T1=5;
else
T1=10; end
T2=30+randn*2; %模拟随机变量t2(火车的运行时间)
%模拟随机变量t3(他到达B站的时刻)
rt3=rand;
if rt3<0.3
T3=28;
elseif rt3>=0.3 & rt3<0.7
T3=30;
elseif rt3>=0.7 & rt3<0.9
T3=32;
else
T3=34;
end
if T3 < T1 + T2,
count=count+1; end
• 编制程序,模拟运行。
• 分析模拟输出结果:模拟结果的统计特性(样本 均值、方差、置信区间等),灵敏性分析,选择 最优方案。
注:模拟结果的统计分析模拟的输出结果是分布特 征未知的随机变量,每次运行的结果仅仅是对该 随机变量所有观察值总体的一次抽样,对总体的 代表性很差,虽然可以增加模拟运行的时间从而 增加抽样次数,但这些数据总是由一个“种子” 经过一定的算法而获得的伪随机序列,它们是自 相关的,并不能构成统计上独立的随机样本。
• 模拟通常借助于计算机进行。
计算机模拟:在已经建立的数学、逻辑模 型的基础之上,通过计算机试验,对一个 系统按照一定的决策原则或作业规则,由 一个状态变换为另一个状态的行为进行描 述和分析。
模拟的作用:
• 对于很难用解析方法加以处理的问题,模 拟是一种有效的技术;
• 对建模过程中的假设进行鉴定,对理论研 究的结论加以检验;
出发时刻 午后1:00 午后1:05 午后1:10
频率
0.7
0.2
0.1
他到达B 站的时刻的频率分布为
时刻 午后1:28 午后1:30 午后1:32 午后1:34
频率
0.3
0.4
0.2
0.1
他能否及时赶上火车?
明确问题:他能及时赶上火车的概率是多少?
建模方向(思路):
i)分析法:用概率统计知识建立分析模型,求解 析解。(思考)
终态模拟:在规定的时间T内进行模拟运行,时间 达到T时,模拟终止。其性能指标明显取决于系 统的初始状态。
稳态模拟:随着模拟时间的推移,系统的性能逐渐 趋于平稳。其目的是研究非终态系统长期运行条 件下的稳态性能,模拟时间的长短取决于能否获 得系统性能的优良估计(可由模拟输出的精度确 定)。
1.1.4 模拟的一般步骤
首先,对进入该港口的100艘船进行实际调查,记录其活动情况,得到 这100艘船到达港口的时间间隔和装卸时间的分布情况的频数和累积频 率分布。
表1 100艘船到达港口的时间间隔频数表
到达间隔 (小时)
到达船舶 数(艘)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 3 6 7 9 10 11 11 11 9 7 6 5 4
1 模拟基础 2 Monte-Carlo模拟 3 模拟模型案例
1 模拟基础 1.0 模拟的背景、思路
应用领域: •第二次世界大战期间,J.V.Neumann等人将进行的“中 子扩散”的科研项目取名为“Monte-Carlo” •运输系统模拟 •摩天大楼安全疏散系统模拟 •国民经济发展模拟 •人口增长系统模拟 •供水系统模拟
ii)模拟法:用概率统计知识建立模型,通过模拟 求近似解。 即先建立模拟模型,然后通过计算机模拟得到 问题的近似解。在同样条件下多次试验,计算 他能及时赶上火车的频率。
相关主题