《数学建模之计算机仿真.ppt》由会员分享,可在线阅读,更多相关《数学建模之计算机仿真.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数学建模之计算机仿真数学建模之计算机仿真现在学习的是第1页,共61页概述l计算机科学技算机科学技术的迅猛的迅猛发展,展,给许多学科多学科带来了巨大的影来了巨大的影响响计算机不但使算机不但使问题的求解的求解变得更加方便、快捷和精确,得更加方便、快捷和精确,而且使得解决而且使得解决实际问题的的领域更加广泛域更加广泛计算机适合于解算机适合于解决那些决那些规模大、模大、难以解析化以及不确定的数学模型例如以解析化以及不确定的数学模型例如对于一些于一些带随机因素的复随机因素的复杂系系统,用分析方法建模常常需,用分析方法建模常常需要作要作许多多简化假化假设,与面,与面临的的实际问题可能相差甚可能相差甚远,以
2、,以致解答根本无法致解答根本无法应用,用,这时仿真几乎成仿真几乎成为人人们的唯一的唯一选择在在历届的美国和中国大学生的数学建模届的美国和中国大学生的数学建模竞赛(MCM)中,学生中,学生们经常用到常用到计算机仿真方法去求解、算机仿真方法去求解、检验等等计算机仿真算机仿真(computer simulation)是建模是建模过程中程中较为重要的重要的一一类方法方法 现在学习的是第2页,共61页计算机仿真的基本概念计算机仿真的基本概念 计算机仿真,是根据已知的信息和知算机仿真,是根据已知的信息和知识(如数学、物理(如数学、物理规律),利用律),利用计算机模算机模拟现实情况和系情况和系统的演的演变过
3、程,程,发现新的知新的知识或或规律,律,从而解决从而解决问题的一种方法的一种方法现在学习的是第3页,共61页计算机仿真的基本概念计算机仿真的基本概念 独立于理独立于理论研究与研究与实验研究的研究的认识世界的世界的第三中方法第三中方法现在学习的是第4页,共61页计算机仿真的基本概念计算机仿真的基本概念计算机仿真的特点算机仿真的特点 代价小、代价小、时间短、可重复、参数短、可重复、参数设置灵活置灵活现在学习的是第5页,共61页计算机仿真可以解决以下计算机仿真可以解决以下5类问题类问题:l(1)难以用数学公式表示的系以用数学公式表示的系统,或者没有建立和求解的有效方或者没有建立和求解的有效方法法.l
4、(2)虽然可以用解析的方法解决然可以用解析的方法解决问题,但数学的分析与但数学的分析与计算算过于复于复杂,这时计算机仿真可能提供算机仿真可能提供简单可行的求解方法可行的求解方法.l(3)希望能在希望能在较短的短的时间内内观察到系察到系统发展的全展的全过程程,以估以估计某些某些参数参数对系系统行行为的影响的影响.l(4)难以在以在实际环境中境中进行行试验和和观察察时,计算机仿真是唯一可行的算机仿真是唯一可行的方法方法,如太空如太空飞行的研究行的研究.l(5)需要需要对系系统或或过程程进行行长期运行比期运行比较,从大量方案中从大量方案中寻找最找最优方案方案.现在学习的是第6页,共61页 计算机仿真
5、的分类计算机仿真的分类l计算机仿真在算机仿真在计算机中运行算机中运行实现,不怕破坏不怕破坏,易修改易修改,可重用可重用,安全安全经济,不受外界条件和不受外界条件和场地空地空间的限制的限制.l仿真仿真分分为静静态仿真仿真(static simulation)和和动态仿真仿真(dynamic simulation).数数值积分中的蒙特卡洛方法(分中的蒙特卡洛方法(统计模模拟方法)是典方法)是典型的静型的静态仿真仿真动态仿真仿真又分又分为连续系系统仿真仿真和离散系和离散系统仿仿真真连续系系统是指状是指状态变量随着量随着时间连续变化的系化的系统,例如,例如传染病的染病的检测与与预报系系统.离散系离散系
6、统是指系是指系统状状态变量只在有量只在有限的限的时间点或可数的点或可数的时间点上点上发生生变化的系化的系统,例如排例如排队系系统.现在学习的是第7页,共61页l 仿真系仿真系统,必,必须设置一个仿真置一个仿真时钟(simulate clock),它能将,它能将时间从一个从一个时刻向另一个刻向另一个时刻刻进行推行推进,并且能随,并且能随时反映系反映系统时间的当前的当前值其中,模其中,模拟时间推推进方式有两种方式有两种:时间步步长法法(均匀均匀间隔隔时间推推进法法,连续系系统常用常用)和事和事件步件步长法法(下次事件推下次事件推进法法,离散系离散系统常用常用)现在学习的是第8页,共61页主要内容主
7、要内容l一一:准备知识准备知识:随机数的产生随机数的产生l二二:随机变量的模拟随机变量的模拟l三三:连续系统的模拟连续系统的模拟-时间步长法时间步长法l四四:离散系统的模拟离散系统的模拟-事件步长法事件步长法五:蒙特卡洛方法五:蒙特卡洛方法现在学习的是第9页,共61页一一:准备知识准备知识:随机数的产生随机数的产生l由于仿真研究的由于仿真研究的实际系系统要受到多种随机因素的作用要受到多种随机因素的作用和影响和影响,在仿真在仿真过程中必程中必须处理大量的随机因素理大量的随机因素.要解决要解决此此问题的前提是确定随机的前提是确定随机变量的量的类型和型和选择合适的随合适的随机数机数产生的方法生的方法
8、.l对随机随机现象象进行模行模拟,实质是要是要给出随机出随机变量的模量的模拟,也就是也就是说要利用要利用计算机随机算机随机产生一系列数生一系列数值,使它使它们服从服从一定的概率分布一定的概率分布,称称这些数些数值为随机数随机数.l最基本最基本,最常用的是最常用的是(0,1)区区间内均匀分布的随机数内均匀分布的随机数.其其他分布的随机数均可利用它来他分布的随机数均可利用它来产生生.现在学习的是第10页,共61页1:产生模生模拟随机数的随机数的计算机命令算机命令l在在MATLAB中中,可以直接可以直接产生生满足各种分布的随机数足各种分布的随机数,命命令如下令如下:l常常见的分布函数的分布函数 MA
9、TLAB语句句 l均匀分布均匀分布U0,1 R=rand(m,n)l均匀分布均匀分布Ua,b R=unifrnd(a,b,m,n)l指数分布指数分布E()R=exprnd(,m,n)l正正态分布分布N(mu,sigma)R=normrnd(mu,sigma,m,n)l标准正准正态分布分布N(0,1)R=randn(m,n)l二二项分布分布B(n,p)R=binornd(n,p,m,n)l泊松分布泊松分布 P()R=poissrnd(,m,n)l以上以上语句均句均产生生m n 的矩的矩阵现在学习的是第11页,共61页2:案例分析案例分析l例1:unifrnd(2,3)lunifrnd(1,32,
10、1,4)lnormrnd(1,2)l normrnd(1,2,2,3)lrand(2,3)lrandn(2,3)现在学习的是第12页,共61页2:案例分析案例分析lans=2.8132lans=1.3057 5.3056 7.2857 7.1604lans=0.2527lans=l 2.7429 0.0219 2.7759l 2.2756 0.0992 -0.9560lans=l 0.6038 0.1988 0.7468l 0.2722 0.0153 0.4451lans=l -0.0945 -1.3089 -0.2440l -0.2141 0.8248 -0.1778l 现在学习的是第13页
11、,共61页2:案例分析案例分析l例例2:敌空空战部部队对我方港口我方港口进行空行空袭,其到达其到达规律服从泊松分律服从泊松分布布,平均每分平均每分钟到达到达4架架飞机机.l(1)模模拟敌机在机在3分分钟内到达目内到达目标区域的数量区域的数量,以及在第以及在第1,2,3分分钟内各到达几架内各到达几架飞机机;l(2)模模拟在在3分分钟内每架内每架飞机的到达机的到达时刻刻.分析分析:(1)n1=poissrnd(4),n2=poissrnd(4),n3=poissrnd(4),n=n1+n2+n3 (2)由排由排队论知知识,敌机到达机到达规律服从泊松分布等价于律服从泊松分布等价于敌机到达港口机到达港
12、口的的间隔隔时间服从参数服从参数为1/4的指数分布的指数分布,故可由指数分布模故可由指数分布模拟每架每架飞机机的到达的到达时刻刻.现在学习的是第14页,共61页2:案例分析案例分析lclearlt=0;lj=0;%到达的飞机数 lwhile t3l j=j+1l t=t+exprnd(1/4)lend现在学习的是第15页,共61页二二:随机变量的模拟随机变量的模拟l利用均匀分布的随机数可以利用均匀分布的随机数可以产生具有任意分布的随机生具有任意分布的随机变量的量的样本本,从而可以从而可以对随机随机变量的取量的取值情况情况进行模行模拟.l1 连续型随机型随机变量的模量的模拟l具有具有给定分布的定
13、分布的连续型随机型随机变量可以利用在区量可以利用在区间(0,1)上均匀分布上均匀分布的随机数来模的随机数来模拟,最常用的方法是逆最常用的方法是逆变换法法.l结论:若随机若随机变量量Y有有连续的分布函数的分布函数F(y),l 则Z与与Y有相同的分布有相同的分布.现在学习的是第16页,共61页1 连续型随机型随机变量的模量的模拟l若已知Y的概率密度为l如果给定区间(0,1)上均匀分布的随机数 ,则具有给定分布Y的随机数 可由方程 l 解出.l例:模拟服从参数为 的指数分布时,由 可得 现在学习的是第17页,共61页2 离散型随机变量的模拟离散型随机变量的模拟l设随机变量X的分布律为:有相同的发生的
14、概率有相同的发生的概率.因此我们可以用随机变量因此我们可以用随机变量R落在小区落在小区间内的情况来模拟离散的随机变量间内的情况来模拟离散的随机变量X的取值情况的取值情况.现在学习的是第18页,共61页2 离散型随机变量的模拟离散型随机变量的模拟l例例 3:随机随机变量量表示每分表示每分钟到达到达银行柜台的行柜台的顾客数客数.X的分的分布列布列见下表下表,试模模拟10分分钟内内顾客到达柜台的情况客到达柜台的情况.l 表表1 10分分钟内内顾客到达柜台的情况客到达柜台的情况lXk 0 1 2l pk 0.4 0.3 0.3l分析分析:因因为每分每分钟到达柜台的人数是随机的到达柜台的人数是随机的,所
15、以可用所以可用计算机随机生算机随机生成一成一组(0,1)的数据的数据,由由X的概率分布情况的概率分布情况,可可认为随机数在随机数在(0,0.4)范范围内内时没有没有顾客光客光顾,在在0.4,0.7)时,有一个有一个顾客光客光顾,在在0.7,1)时,有两有两个个顾客光客光顾.l 从而有从而有MATLAB程序程序:现在学习的是第19页,共61页2 离散型随机变量的模拟离散型随机变量的模拟lr=rand(1,10);lfor i=1:10;l if r(i)0.4l n(i)=0;l elseif 0.4=r(i)&r(i)0.1)lfor i=1:2:7ld=sqrt(x(i)-x(i+1)2+(
16、x(i+1)-x(i+3)2);lx(i)=x(i)+v*dt*(x(i+2)-x(i)/d;lx(i+1)=x(i+1)+v*dt*(x(i+3)-x(i+1)/d;lplot(x(i),x(i+1),.)lendlx(9)=x(1);x(10)=x(2);lendlhold3 MATLAB实现现在学习的是第28页,共61页3 MATLAB实现现在学习的是第29页,共61页例例9.6 水池含盐量问题水池含盐量问题l某水池有某水池有2000m3水水,其中含其中含盐2kg,以以6m3/min的速率向水池内注的速率向水池内注入含入含盐为0.5kg/m3的的盐水水,同同时又以又以4m3/min的速率
17、从水池流出的速率从水池流出搅拌均匀的拌均匀的盐水水.试用用计算机仿真算机仿真该水池内水池内盐水的水的变化化过程程,并每并每隔隔10min计算水池中水的体算水池中水的体积,含含盐量量,含含盐率率.欲使池中欲使池中盐水水含含盐率达到率达到0.2kg/m3,需需经过多多长时间?l分析分析:这是一个是一个连续系系统,首先要将系首先要将系统离散化离散化,在一些离散点上在一些离散点上进行考察行考察,这些离散点的些离散点的间隔就是隔就是时间步步长.可取步可取步长为1min,即隔即隔1min考察一次系考察一次系统的状的状态,并相并相应地地记录和分析和分析.在注入和流出在注入和流出的作用下的作用下,池中水的体池
18、中水的体积与含与含盐量量,含含盐率均随率均随时间变化化,初始初始时刻含刻含盐率率为0.001kg/m3,以后每分以后每分钟注入含注入含盐率率为0.5kg/m3的水的水6m3,流流出混合均匀的出混合均匀的盐水水为4m3,当池中水的含当池中水的含盐率达到率达到0.2kg/m3时,仿真仿真过程程结束束.现在学习的是第30页,共61页例例9.6 水池含盐量问题水池含盐量问题l记T时刻的体刻的体积为w(m3),水的含,水的含盐量量为s(kg),水的含,水的含盐率率为r=s/w(kg/m3),每隔,每隔1min池水的池水的动态变化化过程如下:程如下:每分每分钟水的体水的体积增加增加6-4=2(m3);每分
19、;每分钟向池内注入向池内注入盐60.5=3(kg);每分;每分钟向池外流出向池外流出盐4r(kg);每分;每分钟池内池内增加增加盐3-4r(kg).l本例本例还可以用微分方程建立数学模型,并求出它的解析解,可以用微分方程建立数学模型,并求出它的解析解,这个解析解就是个解析解就是问题的精确解,有的精确解,有兴趣的趣的读者可以按照者可以按照这个思路求出个思路求出该问题的精确解,考察相的精确解,考察相应时刻精确解与仿真刻精确解与仿真解的差异,解的差异,还可以可以进一步一步调整仿真整仿真过程的程的时间步步长,通,通过与精确解的比与精确解的比较来研究来研究时间步步长的大小的大小对仿真度的影响。仿真度的影
20、响。现在学习的是第31页,共61页MATLAB实现实现lclearlh=1;%时间步长为1ls0=2;%初始含盐2kglw0=2000;%初始水池有水2000m3lr0=s0/w0;%初始浓度ls(1)=s0+0.5*6*h-4*h*r0;%一分钟后的含盐量lw(1)=w0+2*h;%一分钟后水池中的盐水体积lr(1)=s(1)/w(1);%一分钟后的浓度 lt(1)=h;ly(1)=(2000000+3000000*h+3000*h2+h3)/(1000+h)2;lfor i=2:200l t(i)=i*h;l s(i)=s(i-1)+0.5*6*h-4*h*r(i-1);%第i步后的含盐量
21、l w(i)=w(i-1)+2*h;%第i步后的盐水体积l r(i)=s(i)/w(i);%第i步后的盐水浓度l y(i)=(2000000+3000000*t(i)+3000*t(i)2+t(i)3)/(1000+t(i)2;l m=floor(i/10);现在学习的是第32页,共61页MATLAB实现实现l if i/10-m0.2%若第i步后的盐水浓度大于0.2l t02=i*h;l r02=r(i);l break l endlendlt02,r02l10*tm,sm,rm%表示逆lsubplot(1,2,1),plot(t,s,blue);lhold onlsubplot(1,2,2
22、),plot(t,y,red);现在学习的是第33页,共61页四四:离散系统的模拟离散系统的模拟-事件步长法事件步长法 l离散系离散系统(discrete system)是指系是指系统状状态只在有限的只在有限的时间点或可数的点或可数的时间点上有随机事件点上有随机事件驱动的系的系统例如排例如排队系系统(queue system),),显然状然状态量的量的变化只是在离散化只是在离散的随机的随机时间点上点上发生假生假设离散系离散系统状状态的的变化是在化是在一个一个时间点上瞬点上瞬间完成的完成的 l常用的是事件步常用的是事件步长法(下次事件推法(下次事件推进法)其法)其过程是:程是:置模置模拟时钟的初
23、的初值为0,跳到第一个事件,跳到第一个事件发生的生的时刻,刻,计算系算系统的状的状态,产生未来事件并加入到生未来事件并加入到队列中去,跳到下列中去,跳到下一事件,一事件,计算系算系统状状态,重复,重复这一一过程直到程直到满足足某个某个终止条件止条件为止止现在学习的是第34页,共61页例例9.7 收款台前的排队过程收款台前的排队过程l假假设:(1)顾客到达收款台是随机的客到达收款台是随机的,平均平均时间间隔隔为0.5min,即即间隔隔时间服从服从lamda=2的指数分的指数分布布.l(2)对不同的不同的顾客收款和装袋的客收款和装袋的时间服从正服从正态分布分布N(1,1/3).l试模模拟20位位顾
24、客到收款台前的排客到收款台前的排队情况情况,我我们关关心的心的问题是每个是每个顾客的平均等待客的平均等待时间,队长及服及服务员的工作效率的工作效率现在学习的是第35页,共61页例例9.7 收款台前的排队过程收款台前的排队过程l分析分析:单服服务台台结构的排构的排队系系统有两有两类原原发事件即到来和离去事件即到来和离去,顾客到来的后客到来的后继事件是事件是顾客接受服客接受服务,顾客离去的后客离去的后继事件是服事件是服务台台寻找服找服务,这四四类事件各自的子程序框事件各自的子程序框图如如图1所示所示.l假假设:t(i)为第第i位位顾客到达客到达时刻刻;t2(i)为第第i位位顾客受到服客受到服务的的
25、时间(随机随机变量量);T(i)为第第i位位顾客离去客离去时刻刻.l将第将第i位位顾客到达作客到达作为件事件事发生生:t(i+1)-t(i)=r(i)(随机随机变量量);平衡关系平衡关系:当当t(i+1)T(i)时,T(i+1)=t(i+1)+t2(i+1);否否则,T(i+1)=T(i)+t2(i+1).现在学习的是第36页,共61页图图1 到来事件子程序到来事件子程序l 系统人数+1产生下一个顾客到来时刻调用接受服务事件的程序现在学习的是第37页,共61页图图 2 离去事件子程序离去事件子程序 系统人数-1置服务台”闲”已服务人数+1调用寻找服务事件子程序现在学习的是第38页,共61页图图
26、3:接受服务事件子程序接受服务事件子程序 服务台空置服务台”忙”产生服务结束时刻登记到事件表排队人数+1否是现在学习的是第39页,共61页图图4:寻找服务事件子程序寻找服务事件子程序 排队人数1置服务台”忙”产生服务结束时刻排队人数-1排队人数+1否是现在学习的是第40页,共61页五:蒙特卡洛方法五:蒙特卡洛方法l在用在用传统方法方法难以解决的以解决的问题中,有很大一部分可中,有很大一部分可以用概率模型以用概率模型进行描述由于行描述由于这类模型含有不确定模型含有不确定的随机因素,分析起来通常比确定性的模型困的随机因素,分析起来通常比确定性的模型困难有的模型有的模型难以作定量分析,得不到解析的以
27、作定量分析,得不到解析的结果,或果,或者是者是虽有解析有解析结果,但果,但计算代价太大以至不能使用算代价太大以至不能使用在在这种情况下,可以考种情况下,可以考虑采用采用Monte Carlo方法。方法。Monte Carlo方法是方法是计算机模算机模拟的基的基础,它的名字,它的名字来源于世界著名的来源于世界著名的赌城城摩摩纳哥的蒙特卡洛,其哥的蒙特卡洛,其历史起源于史起源于1777年法国科学家蒲丰提出的一种年法国科学家蒲丰提出的一种计算算圆周周的方法的方法随机投随机投针法,即著名的法,即著名的蒲丰投蒲丰投针问题。现在学习的是第41页,共61页五:蒙特卡洛方法五:蒙特卡洛方法lMonte Car
28、lo方法的基本思想是首先建立一个概率模方法的基本思想是首先建立一个概率模型,使所求型,使所求问题的解正好是的解正好是该模型的参数或其他有关模型的参数或其他有关的特征量然后通的特征量然后通过模模拟一一统计试验,即多次随机抽,即多次随机抽样试验(确定(确定m和和n),),统计出某事件出某事件发生的百分比生的百分比只要只要试验次数很大,次数很大,该百分比便近似于事件百分比便近似于事件发生的生的概率概率这实际上就是概率的上就是概率的统计定定义利用建立的概利用建立的概率模型,求出要估率模型,求出要估计的参数蒙特卡洛方法属于的参数蒙特卡洛方法属于试验数学的一个分支数学的一个分支现在学习的是第42页,共61
29、页五:蒙特卡洛方法五:蒙特卡洛方法l蒙特卡洛方法适用范蒙特卡洛方法适用范围很广泛,它既能求解确很广泛,它既能求解确定性的定性的问题,也能求解随机性的,也能求解随机性的问题以及科学以及科学研究中的理研究中的理论问题例如利用蒙特卡洛方法可例如利用蒙特卡洛方法可以近似地以近似地计算定算定积分,即分,即产生数生数值积分分问题现在学习的是第43页,共61页蒙特卡洛法求圆周率蒙特卡洛法求圆周率lclearln=50000lX=rand(n,1);lY=rand(n,1);lk=0;lfor i=1:n;l if X(i)2+Y(i)2a;l fprintf(error:针长必须小于等于%dn,a);l f
30、printf(请重新调用函数pinpi(k,d,l)n);l pi_value=0;lelse lfor i=1:kl if a*rand(1)pinpi(100000,4,3)l投针法求得pi=3.143797e+000lans=l 3.14379728795087现在学习的是第46页,共61页任意曲边梯形面积的近似计算任意曲边梯形面积的近似计算l一个古老的一个古老的问题:用一堆石:用一堆石头测量一个水塘的量一个水塘的面面积应该怎怎样做呢?做呢?测量方法如下:假定水量方法如下:假定水塘位于一塘位于一块面面积已知的矩形已知的矩形农田之中如田之中如图82所示随机地向所示随机地向这块农田扔石田扔石
31、头使得它使得它们都落在都落在农田内被扔到田内被扔到农田中的石田中的石头可能可能溅上上了水,也可能没有了水,也可能没有溅上水,估上水,估计被被“溅上水的上水的”石石头量占量占总的石的石头量的百分比量的百分比试想如何利想如何利用用这估估计的百分比去近似的百分比去近似计算算该水塘面水塘面积?现在学习的是第47页,共61页任意曲边梯形面积的近似计算任意曲边梯形面积的近似计算现在学习的是第48页,共61页任意曲边梯形面积的近似计算任意曲边梯形面积的近似计算l结合合图82中的中的图形形(1)分析,只要已知各种参数及函数(分析,只要已知各种参数及函数(a,b,H,f(x)),有以下两种方法可近似),有以下两
32、种方法可近似计算水塘面算水塘面积 l1随机投点法随机投点法 1)赋初初值:试验次数次数n=0,成功次数,成功次数m=0;规定投点定投点试验的的总次数次数N;l2)随机)随机选择m个数个数对xi,yi,1im,其中,其中yaxib,0yiH,置,置 nnl;l3)判断)判断nN,若是,若是,转4,否,否则停止停止计算;算;l4)判断条件)判断条件(表示一表示一块溅水的石水的石头)是否成立,若成是否成立,若成立立则置置m=m+1,转2,否,否则转2;l5)计算水塘面算水塘面积的近似的近似值S=H(b-a)m/N 现在学习的是第49页,共61页任意曲边梯形面积的近似计算任意曲边梯形面积的近似计算l2
33、平均平均值估估计法法l1)产生生a,b区区间的均匀随机数的均匀随机数x,i=1,2,N l2)计算算f(xi),),i=1,2,Nl3)计算算l该方法的特点是估方法的特点是估计函数函数f(x)在在a,b上的平均上的平均值,面,面积近似等于近似等于该平均平均值乘以乘以(b-a)现在学习的是第50页,共61页例例9 库存问题库存问题l在物在物资的供的供应过程中程中,由于到由于到货和和销售不可能做到同步售不可能做到同步同量同量,故故总要保持一定的要保持一定的库存存储备.如果如果库存存过多多,就会造就会造成成积压浪浪费以及保管以及保管费的上升的上升;如果如果库存存过少少,会造成会造成缺缺货.如何如何选
34、择库存和存和订货策略策略,就是一个需要研究的就是一个需要研究的问题.库存存问题有多种有多种类型型,一般都比一般都比较复复杂,下面下面讨论一一种种简单的情形的情形.l 某某电动车行的行的仓库管理人管理人员采取一种采取一种简单的的订货策略策略,当当库存降低到存降低到P辆电动车时就向厂家就向厂家现在学习的是第51页,共61页例例9 库存问题库存问题l订货,每次每次订货Q辆,如果某一天的需求量超如果某一天的需求量超过了了库存量存量,商店就有商店就有销售售损失和信誉失和信誉损失失,但如果但如果库存量存量过多多,就会就会导致致资金金积压和保管和保管费增加增加.若若现在有如下表所示的在有如下表所示的两种两种
35、库存策略存策略,试比比较选择一种策略以使一种策略以使总费用最少用最少.l 表表订货方案方案方案方案重新重新订货点点P/辆重新重新订货量量Q/辆 方案方案1 125 150 方案方案2 150 250现在学习的是第52页,共61页例例9 库存问题库存问题l这个个问题的已知条件是的已知条件是:l(1)从从发出出订货到收到到收到货物需隔物需隔3天天.l(2)每每辆电动车保管保管费为0.50元元/天天,每每辆电动车的缺的缺货损失失为1.60元元/天天,每次的每次的订货费为75元元.l(3)每天每天电动车需求量是需求量是0到到99之之间均匀分布的均匀分布的随机数随机数.l(4)原始原始库存存为110辆,
36、假假设第一天没有第一天没有发出出订货.现在学习的是第53页,共61页例例9 库存问题库存问题l分析分析:这一一问题用解析法用解析法讨论比比较麻麻烦,但用但用计算机按算机按天仿真天仿真仓库货物的物的变动情况却很方便情况却很方便.我我们以以30天天为例例,依次依次对这两种方案两种方案进行仿真行仿真,最后比最后比较各方案的各方案的总费用用,从而就可以作出决策从而就可以作出决策.l计算机仿真算机仿真时的工作流程是早上到的工作流程是早上到货,全天全天销售售,晚上晚上订货,输入一些常数和初始数据后入一些常数和初始数据后,以一天以一天为时间步步长进行仿行仿真真.首先首先检查这一天是否一天是否为预订到到货日期
37、日期,如果是如果是,则原有原有库存量加存量加Q,并把并把预定到定到货量清量清为0;如果不是如果不是,则库存量存量不不变.接着用接着用计算机中的随机函数仿真随机需求量算机中的随机函数仿真随机需求量,若若库存存量大于需求量量大于需求量,则新的新的库存量减去需求量存量减去需求量;反之反之,则新新库存存量量变为0,并且要在并且要在总费用上加缺用上加缺货损失失,然后然后检查实际现在学习的是第54页,共61页例例9 库存问题库存问题l库存量加上存量加上预定到定到货量是否小于重新量是否小于重新订货点点P,如果是如果是,则需要重新需要重新订货,这时就加一次就加一次订货费.如此重复运行如此重复运行30天天,即可
38、得所需即可得所需费用用总值.由此比由此比较这两种方案的两种方案的总费用用,即得最好方案即得最好方案.现在学习的是第55页,共61页lclearldays=30;lP=125,150;lQ=150,250;lcost=0,0;larrivalinterval=2;lstoragefee=0.5;lossfee=1.6;bookfee=75;lstorage0=110;booknumber=0;arrivedate=0;lnr=rand(days,1);lfor i=1:2l storage(1)=storage0;l n=round(99*nr(1);l sale=n;l remain=stor
39、age(1)-n;l if remain=P(i);l booknumber=Q(i);l arrivedate=4;l orderfee=bookfee;l elsel orderfee=0;l endl storage(1)=remain;l cost(i)=cost(i)+remain*storagefee+orderfee;l for j=2:daysl dh=j;l if abs(dh-arrivedate)=nl sale=n;l remain=storage(j)-n;l shortagenumber=0;l else l sale=storage(j);l remain=0;l
40、 shortagenumber=n-storage(j);l endl storage(j)=remain;l if remain+booknumber=P(i);l booknumber=Q(i);l arrivedate=dh+arrivalinterval;l orderfee=bookfee;l elsel orderfee=0;l endl cost(i)=cost(i)+remain*storagefee+shortagenumber*lossfee+orderfee;l end;l mincost=min(cost);l endl costl mincost现在学习的是第57页,
41、共61页例例9.10 赶火车过程仿真赶火车过程仿真l一列火一列火车从从A站站经B站开往站开往C站站,某人每天赶往某人每天赶往B站乘站乘这趟趟火火车.已知火已知火车从从A站到站到B站运行站运行时间为均均值30min,标准差准差为2min的正的正态随机随机变量量.火火车大大约在下午在下午1点离开点离开A站站,离开离开时刻的刻的频率分布率分布见表表1.这个人到达个人到达B站站时的的频率分布表率分布表见表表2.用用计算机仿真火算机仿真火车开出开出,火火车到达到达B站站,这个人到达个人到达B站的情况站的情况,并并给出能赶上火出能赶上火车的仿真的仿真结果果.表表1 离开离开时刻的刻的频率分布率分布出出发时
42、刻刻T 1:00 1:05 1:10频率率0.7 0.2 0.1现在学习的是第58页,共61页例例9.10 赶火车过程仿真赶火车过程仿真l表表2 人到达人到达B站站时的的频率分布率分布l 到达到达时刻刻T 1:28 1:30 1:32 1:34l 频率率:0.3 0.4 0.2 0.1l分析分析:引入以下引入以下变量量:T1为火火车从从A站开出的站开出的时刻刻;T2为火火车从从A站站运行到运行到B站所需要的站所需要的时间;T3为此人到达此人到达B站的站的时刻刻.则有表有表3.l 表表3 T1,T2的的频率分布率分布lT1,/min 0 5 10 T2/min 28 30 32 34l p 0.
43、7 0.2 0.1 0.3 0.4 0.2 0.1现在学习的是第59页,共61页例例9.10 赶火车过程仿真赶火车过程仿真l显然然,这位旅客要赶上火位旅客要赶上火车的条件是的条件是T3 T1+T2,可以通可以通过计算机模算机模拟出出这三个三个时间,再再检验是否是否满足足T3 T1+T2.如果如果满足足,即能即能够赶上赶上火火车,若不然若不然,则不能赶上火不能赶上火车.火火车运行运行时间的仿真程序的仿真程序x=randn(10000,1);for i=1:10000 y(i)=30+2*x(i);end现在学习的是第60页,共61页开车时间的仿真程序开车时间的仿真程序ls1=0;s2=0;s3=0;l x=rand(10000,1);l for i=1:10000l if x(i)0.9l s3=s3+1;l endl endls1/10000,1-s1/10000-s3/10000,s3/10000现在学习的是第61页,共61页