数学建模之计算机模拟
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计 算 机 模 拟 应 用 举 例
•
例1 池水含盐量问题
某水池有2000m3水,其中含盐2kg,以每分 钟6m3的速率向水池内注入含盐率为0.5kg/m3的 盐水,同时又以每分钟4m3的速率从水池流出搅 拌均匀的盐水。欲使池中含盐率达到0.2kg/m3, 需经过多少时间? 引入记号: 注水速率VI=6m3/min 排水速率VO=4m3/min 注入水含盐率SI=0.5kg/m3 最终含盐率SF=0.2kg/m3 T时刻水的体积VTm3 T时刻水的含正盐量STkg T时刻水的含盐率SR=ST/VT kg/m3
计 算 机 模 拟 应 用 举 例
•
例2 排队过程 某商店只有一个收款台,顾客到 达收款台的时间间隔服从均值为4.5 的负指数分布,每个顾客的服务时间 服从均值为3.2、标准差0.6的正态分 布。这里时间单位是分钟,且服务时 间不取负值。以100个顾客接受服务 情况估计每个顾客的平均等待时间、 最大队长、收银员的工作效率。
计算机模拟步骤
• 计算机模拟,大致可分为以下四个步骤: • 系统分析:明确问题并提出总体方案。首先要把被模拟的系统内 容表达清楚,弄清仿真的目的和系统边界(即所研究的问题涉及 的范围,包括要把所研究的系统与影响系统的环境区分开来。) 确定问题的目标函数和可控变量,并加以数量化,找出系统的实 体、属性和活动,描述子系统与总系统的关系。 • 模型构造:包括建立模型、收集数据、编写程序、程序验证和模 型确认等。建立模型就是选择合适的仿真方法,确定系统的初始 状态,设计整个系统的仿真流程图。然后根据需要收集、整理数 据,用通用语言或仿真语言编写、调试程序。
9.98 T ( 1)*1000 184.84 6
计算机模拟应用举例
• 事件步长法:以事件发生的时间为增量, 按时间的进展,一步一步地对系统行为进 行仿真,直到预定的时间结点为止。 • 事件步长法中常用事件表法。
– 事件步长法与时间步长法的主要区别:
• 仿真时钟步长不同 • 步长大小对精度的影响不同 • 每步中对系统状态的扫描不同
为什么要进行计算机模拟
• 不在一个真实系统上实验而是在计算机上模拟,原因主要有以下几点 • 实际系统建立起来之前,要对系统的行为或结果进行分析研究,计算机 模拟是行之有效的方法。 • 在一些真实系统上做实验可能会影响系统的正常运行,如生产中任意改 变工艺参数可能会导致废品,在经济活动中随意将一个决策付诸行动可 能会引起经济混乱。 • 当人是系统的一部分时,他的行为往往会影响实验的效果,这时最好对 系统进行模拟研究。 • 在实际系统上实验无法保证每次操作条件完全相同,难以正确判断实验 结果的好坏。 • 有些实验时间长、费用高、危险性大,使得实验不易进行 • 有的系统建立之后无法复原,事件发生不可逆。 鉴于以上原因,人们一般不直接对真实系统进行实验,而是根据系统的机理 进行计算机模拟。
dST WI * SI WO * SR dT ST 其中,SR V 0 (WI WO)* T
初始条件为ST|T=0=S0
计 算 机 模 拟 应 用 举 例
•
例1 池水含盐量问题
代入已知数据,可得:
在ST/VT=0.2的条件下可算出
3
998000000 ST 1000 T 2 ( 1000 T)
数学建模之计算机模拟
武汉理工大学理学院统计学系 李宇光 制作
数学建模之计算机模拟
• • • • • 什么是计算机模拟 为什么要进行计算机模拟 适用于计算机模拟解决的问题 计算机模拟步骤 计算机模拟应用举例
什么是计算机模拟
• 计算机模拟也叫计算机仿真,是用计算机对一个 系统的结构和行为进行动态演示,以评价或预测 一个系统的行为效果,为决策提供信息的一种方 法,即:用计算机程序直接建立真实系统的模型, 并通过计算了解系统随时间变化的行为或特性。 • 计算机模拟分为连续系统仿真和离散系统仿真两 大类,这里只对离散系统作初步介绍。
•
适用于计算机模拟解决的问题
• 下列情形中,计算机模拟能有效解决问题: • 难以用数学公式表示的系统或没有建立和求解数学模型的有效方 法。 • 虽然可用解析的方法解决问题,但数学计算和分析过于复杂,这 时计算机模拟可能提供简单可靠的求解方法。 • 希望能在较短时间内观察到系统发展的全过程,以估计某些参数 对系统行为的影响。 • 难以在实际环境中进行实验和观察时,计算机仿真是唯一可靠的 方法,如太空飞行研究。 • 需对系统或过程进行长期运行比较,从大量方案中寻优时。
I f ( x)dx
a b
计算机模拟步骤
• 计算机模拟,大致可分为以下四个步骤: • 模型运行和改进:首先确定一些具体的运行方案, 如初始条件、参数、步长、重复次数等,然后输 入数据,运行程序,将得出的仿真结果与实际系 统比较,进一步分析和改进模型,直到符合实际 系统要求为止。 • 设计格式输出仿真结果:包括提供文件的清单, 记录重要的中间结果,输出格式要有利于用户了 解整个仿真过程,分析和使用仿真结果。
计 算 机 模 拟 应 用 举 例
•
例2 排队过程
matlab程序
计 算 机 模 拟 应 用 举 例
•
例2 排队过程
matlab程序运 行后的数据空 间。
本例中有关工作效率方面并没给出。请同学们试着解决。
计算机模拟应用举例
• 除此之外,将一些非随机问题通过巧妙地 引入随机数后得用计算机模拟的Monte Carlo方法,也有非常广泛的应用。 • 例3 用Monte Carlo方法计算定积分
计 算 机 模 拟 应 用 举 例
•
例1 池水含盐量问题
初始化
按时间步长前进1min 计算池水体积VT,含盐量ST,含盐率SR 含盐率达到SF?
否
否
源自文库
仿真框图
是
输出结果
是否达到10min?
是
打印次数加1
输出时间T,水体积VT, 含盐量ST,含盐率SR 下一个10min开始,记时单元清零 结束
计 算 机 模 拟 应 用 举 例
• 例1 池水含盐量问题 仿真程序:利用matlab
进行模拟 的条件
时间步长
计 算 机 模 拟 应 用 举 例
• 例1 池水含盐量问题 仿真程序:利用matlab计算结果:
时间 池水体积 含盐量 含盐率
计 算 机 模 拟 应 用 举 例
• 例1 池水含盐量问题 本例也可用微分方程建模: 设在T(分)时刻池中含盐量为ST (kg),则在dT时间池中盐的变化 量为dST,可得如下微分方程
计算机模拟应用举例
• 时间步长法:在系统仿真中,把整个仿真 过程分成若干相等的时间间隔,在每一步 长内,认为系统所处的状态相同,按照时 间流逝顺序,一步一步地对系统活动进行 模拟的方法。选取系统的初始状态为时钟 零点,仿真时钟每进一次,就对系统状态 的一次变化。这一过程,一直到仿真时钟 结束为止。