最新计算机仿真 64页

  • 859.81 KB
  • 2022-08-30 发布

最新计算机仿真

  • 64页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
计算机仿真1.系统仿真概论2.时间步长法3.事件表法4.MonteCarlo方法武汉理工大学理学院数学系王展青\n计算机仿真是利用计算机对一个实际系统的结构和行为进行动态演示,以评价或预测该系统的行为效果。它是解决较复杂的实际问题的一条有效途径。计算机仿真在航空、机电、冶金等工业部门及社会经济、交通运输、生态系统等方面有着广泛的应用,已成为分析、研究和设计各种系统的重要手段。一.什么是计算机仿真绪论\n二.为什么要进行计算机仿真1)在一个实际系统还没有建立起来之前,要对系统的行为或结果进行分析研究时,计算机仿真是一种行之有效的方法。2)在有些真实系统上做实验会影响系统的正常运行,如在生产中任意改变工艺参数可能会导致废品,在经济活动中随意将一个决策付诸行动可能会引起经济混乱。3)当人是系统的一部分时,他的行为往往会影响实验的效果,这时最好对系统进行仿真研究。\n4)在实际系统上做实验时,很难保证每次操作的条件相同,因而对实验结果的好坏很难作出正确的判断。5)在实际系统上做实验可能会花费很长的时间,费用太高或者有危险,使得实验不易进行。6)有些系统一旦建立起来之后就无法复原。例如要投资建立一个大型企业,要分析它建成之后的经济效益和社会效益,不能用建立起来试试看的办法,因为建成后就无法回到原来的状态了。\n1)难以用数学公式描述的系统,或者没有求解的有效数学方法;2)虽然可以用解析方法解决问题,但数学的分析与计算过于复杂,这时计算机仿真可能提供简单可行的求解方法;3)希望能在较短的时间内观察到系统发展的全过程,以估计参数对系统行为的影响;4)难以在实际环境中进行实验和观察时,计算机仿真是唯一可行的方法,例如太空飞行的研究;5)需要对系统或过程进行长期运行的比较,从大量方案中寻找最优方案。三.适合用计算机仿真解决的问题\n1.系统仿真概论1.1系统1)系统一些具有特定的功能、相互之间以一定的规律联系的对象所组成的总体。2)系统边界每个系统都存在于一定的环境中,系统与环境之间的分界称为边界.?边界确定了系统的范围,边界以外对系统的作用称为系统的输入,系统对边界以外环境的作用称为系统的输出.\n3)系统的三要素实体:系统内的对象,系统的组成元素.实体确定了系统的构成,也确定了系统边界。属性:系统内实体的有效特征,它可以是文字型、数字型或逻辑型.属性也称为描述变量,描述每一实体的特征。活动:系统内部发生的任何变化过程。活动定义了系统内部实体之间的相互作用,从而确定了系统内部发生的变化过程。\n4)系统状态系统的状态是指在某一时间点上,实体及其属性值的集合。在任意给定的时间,对系统所有实体、属性和活动的情况,都用系统状态加以描述。\n随机型活动通常用概率分布加以描述,如电路系统中的噪声、电话系统中通话时间的长短等,属于随机系统。若系统中的某项活动结果受随机变化的影响,系统输入可能得到各种各样的结果,则称为随机系统。5)系统类型若执行系统中某项活动的结果,其输出完全可以用输入加以描述,则为确定型系统确定型系统随机系统按活动是否具有随机性分\n5)系统类型连续型系统离散型系统按状态是否随时间连续变化分系统S={时间基;输入集;内部状态集;状态转移函数;输出集;输出函数}时间基是描述系统变化的时间坐标;\n1.2模型模型——实际系统本质的抽象与简化物理模型—采用一定的比例按真实系统的“样子”制作数学模型—用数学表达式形式来描述系统的内在规律系统模型水平—模型描述的详细程度\n物理仿真:在没有计算机以前,仿真都是利用实物或者它的模型来进行研究的,又称物理仿真。优点:直接、形象、易信.缺点:模型受限、易破坏、难以重用。数学仿真:对实际系统进行抽象,并将其特性用数学关系加以描述而得到系统的数学模型,对数学模型进行实验的过程称为数学仿真。优点:方便、灵活、经济缺点:受限于系统建模技术,即系统数学模型不易建立。计算机技术的发展为数学仿真创造了环境。1.3仿真\n计算机仿真在研究系统过程中,根据相似原理,利用计算机来逼真模仿研究对象。研究对象可以是真实的系统,也可以是设想中的系统。计算机仿真是将研究对象进行数学描述,建模编程,且在计算机中运行实现.它不怕破坏、易修改、可重用。计算机仿真可以用于研制产品或设计系统的全过程中,包括方案论证、技术指标确定、设计分析、生产制造、试验测试、维护训练、故障处理等各个阶段。仿真算法??仿真算法是将系统模型转换成仿真模型的一类算法,在数字仿真模型中起核心和关键作用。????\n仿真结束输出结果问题的分析项目研究计划仿真步骤及流程1系统分析2模型构造3运行与改进4输出结果运行与分析进一步运行实验设计是否建立模型收集数据编制程序程序验证模型确认否否否\n2时间步长法2.1仿真时钟在进行系统仿真时,可以把整个仿真过程分为许多相等的时间间隔,时间间隔的长度可根据实际问题分别取作秒、分、小时、天、周、月、年等。程序中按此间隔前进的虚拟时钟就是仿真的时钟,此时间间隔称为仿真时钟的步长。选取系统的一个初始状态作为仿真时钟的零点,仿真时钟每步进一次,就对系统的所有实体、属性和活动进行一次前面的扫描考察,按照预定的计划和目标进行分析、计算和记录系统状态的变化,这个过程一直进行到仿真时钟结束为止。此即为时间步长仿真法。\n2.2流程图仿真结束初始化时间步进1考察实体或活动发生事件或变化处理事件子程序更新状态数据是仿真是否完毕否输出结果是否\n2.3时钟步长法特点1)仿真时钟以等步长前进;2)在一个步长内,认为系统的状态不变;3)时钟每步进一次,就要对系统进行一次全面的考察,即使状态无变化也要扫描。\n例1池水含盐问题水:2000m3盐:2kg注入6m3/分钟0.5kg/m3流出4m3/分钟要使池中盐水的浓度达到0.2kg/m3,需经过多长时间?1)系统分析实体:盐水属性:体积,含盐量,含盐率活动:注入,流出2.4实例分析\n在这个问题中,系统的状态随时间连续变化,要对这样一个连续系统进行仿真,必需在一系列离散时间点上进行考察,一般取等间隔时间点,设间隔为△t(即仿真时钟步长)。取T=0作为系统仿真的初始时刻,当池水中盐的浓度达到0.2kg/m3时仿真结束。\n注水速度:6,排水速度:4每分钟水的体积增加,6-4=2注入水的含盐率:0.5,每分钟向池内注入盐6×0.5=3最终含盐率:SF=0.2t时刻水的体积VT水的含盐量ST水的含盐率SR每分钟向池外流出盐4×SR每分钟池内盐增加3-4×SR2)模型构造①收集、整理、分析数据\n当前时刻t水的体积VT水的含盐量ST水的含盐率SR下一时刻t+△t水的体积:VT+6△t水的含盐量:ST+3-4×SR×△t水的含盐率:水的含盐量/水的体积系统的状态用VT,ST,SR表示②分析系统的状态更新规则\n初始化:VT=2000,ST=2,SR=0.001,t=0,△t=1,T=0t←t+△t,T←T+△t计算池水体积VT,含盐量ST,含盐率SR否SR≥SF?T=10?否是打印t,VT,ST,SR下一个观察周期开始,T←0是结束打印t,VT,ST,SR③仿真流程\n在这个问题中,系统的状态随时间连续变化,系统离散化后,仿真结果与离散化的时间间隔即仿真时钟步长有关,显然步长越小,结果越精确。但步长越小,计算量越大。本例中可取△t=5min△t=1min△t=0.1min等进行计算,并与解析结果比较。3)运行与改进\n4)设计格式,输出仿真结果tVTSTSR10202031.693650.0156920204060.810080.02909…………802140224.56630.10397902160250.21180.11478…………1702340441.26550.188571802360463.58020.196431852370474.62080.20026△t=1min的结果\n思考写出MATLAB程序。分别设置△t=5min,△t=1min,△t=0.1min比较仿真结果。?\n追击问题的计算机模拟练习如图,正方形ABCD的四个顶点各有一个人,在某一时刻,四人同时出发以匀速v走向顺时针的下一个人,如果他们的方向始终保持对准目标,则最终将按螺旋状曲线汇合于中心点A,1)求出每个人的轨迹;2)若四个人的速度不全相等,结果如何?AABCD\n例2库存问题方案编号订货点P订货量Q方案1125150方案2125250方案3150250方案4175250方案5175300某自行车商店的仓库管理员采用一种简单的订货策略,当库存量降到P辆时就向厂家订货,每次订Q辆,如果某一天的需求量超过了库存量,商店就有销售损失和信誉损失,但如果库存过多,将导致资金积压和保管费增加,若现有以下五种库存策略,请帮仓库管理员确定花费最少的策略。注意;P0)是QL-1,s=1产生顾客离开时刻更新事件表更新有关变量更新事件表出纳员闲置S=0否\n上述仿真过程做了如下假设①先到先服务;②顾客不会因排队时间太长而离开;注意:假设2可修改。3)程序运行、分析\n4)设计格式,输出仿真结果为了了解仿真过程,需要输出一些中间过程变量及参量的值,可按事件处理的顺序来列表:输出参数顾客的平均等待时间CM=CT/N最大队长QM在程序中记录出纳员的工作强度SR=N个顾客的总服务时间/仿真结束时间序号事件类型时刻顾客编号出纳员状态队长112.5110215211………………\n思考①编写出MATLAB程序。②如何修改假设2?,写出修改后的程序。?\n4MonteCarlo方法4.1MonteCarlo方法MonteCarlo是世界著名赌城-摩洛哥的蒙特卡罗,在二次世界大战中,美国军方将一项绝密研究计划的代号命名为MonteCarlo,其目的是研究铀裂变过程中链式反应的能量计算问题。MonteCarlo方法是随机模型的计算机仿真方法,在用传统方法难以解决的问题中,有很大一部分可以用概率模型描述,由于这类问题含有不确定的随机因素,难以用定量分析法得到解析结果,在这种情况下,MonteCarlo方法是非常有效。\nMonteCarlo方法的历史可追溯到1777年法国科学家浦丰(Buffon)提出的一种计算圆周率的随机实验方法--随机投针法通过计算可知针与平行线相交的概率为:p=2l/πd其中d为平行线间距离l为针的长度,l<d将针投n次,若有m次与平行线相交,则可用m/n作为p的近似值,由此可计算出π的近似值为π≈2nl/md\nMonteCarlo方法的步骤4.2MonteCarlo方法的步骤和数学原理问题分析建模建立问题的概率模型抽样:按照假设的分布,产生随机数计算有关结果抽样计算结束?否依照多次抽样试验的结果估计有关统计参数是算出模型解的近似值结果满意?是结束否\nMonteCarlo方法的数学原理1)解的稳定性问题:设x1,x2…xn是服从同一分布的随机变量,且有有限的数学期望μ和方差σ2,根据大数定律,x1,x2…xn的算术平均当n→∞时以概率1收敛到μ,即可知,MonteCarlo方法收敛的速度是和一般的数值方法相比较慢。2)收敛速度由中心极限定理\n4.3随机数的生成方法用MonteCarlo方法解题时,需要根据随机变量的分布生成随机变量的若干个具体的取值,叫做抽样。随机变量的抽样方法很多,不同的分布采用的抽样方法不尽相同。[0,1]区间上的均匀分布随机变量的抽样是其中最基本的问题,在计算机上,其他分布的随机数都是在此基础上产生的。目前计算机上常用的高级语言都有产生均匀分布随机数的系统函数,我们可以直接使用而不必关心其实现原理。\n仿真对随机数的要求1)准确性:即生成的随机数准确的服从要求的分布2)快速性:有些随机仿真问题中,需要生成几万甚至几十万个随机数,这样就要求生成随机数的速度要快。这一速度极大的影响仿真的速度。下面介绍几种从均匀分布随机数产生非均匀分布随机数的方法。用r,r1,r2,r3,…代表独立的[0,1]均匀分布的随机数。\n设连续型随机变量X的分布函数为F(x),若F(x)存在反函数F-1(x),则随机数x=F-1(r)是X的一个样本。例指数分布随机数的生成F(x)=1-e-λx,x>0,F-1(x)=-ln(1-x)/λ抽样方法为:x=-ln(1-r)/λ1)分布函数抽样法\n生成均匀分布随机变数r∈(0,1)若Fk-1