数学建模之计算机仿真课件.ppt
《数学建模之计算机仿真课件.ppt》由会员分享,可在线阅读,更多相关《数学建模之计算机仿真课件.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数学建模之计算机仿真数学建模之计算机仿真第1页,此课件共61页哦概述l计算机科学技算机科学技术的迅猛的迅猛发展,展,给许多学科多学科带来了巨大的影来了巨大的影响响计算机不但使算机不但使问题的求解的求解变得更加方便、快捷和精确,得更加方便、快捷和精确,而且使得解决而且使得解决实际问题的的领域更加广泛域更加广泛计算机适合于解算机适合于解决那些决那些规模大、模大、难以解析化以及不确定的数学模型例如以解析化以及不确定的数学模型例如对于一些于一些带随机因素的复随机因素的复杂系系统,用分析方法建模常常需,用分析方法建模常常需要作要作许多多简化假化假设,与面,与面临的的实际问题可能相差甚可能相差甚远,以,以
2、致解答根本无法致解答根本无法应用,用,这时仿真几乎成仿真几乎成为人人们的唯一的唯一选择在在历届的美国和中国大学生的数学建模届的美国和中国大学生的数学建模竞赛(MCM)中,)中,学生学生们经常用到常用到计算机仿真方法去求解、算机仿真方法去求解、检验等等计算机算机仿真仿真(computer simulation)是建模是建模过程中程中较为重要的一重要的一类方方法法 第2页,此课件共61页哦计算机仿真的基本概念计算机仿真的基本概念 计算机仿真,是根据已知的信息和知算机仿真,是根据已知的信息和知识(如数学、物理(如数学、物理规律),利用律),利用计算机模算机模拟现实情况和系情况和系统的演的演变过程,程
3、,发现新的知新的知识或或规律,律,从而解决从而解决问题的一种方法的一种方法第3页,此课件共61页哦计算机仿真的基本概念计算机仿真的基本概念 独立于理独立于理论研究与研究与实验研究的研究的认识世界世界的第三中方法的第三中方法第4页,此课件共61页哦计算机仿真的基本概念计算机仿真的基本概念计算机仿真的特点算机仿真的特点 代价小、代价小、时间短、可重复、参数短、可重复、参数设置灵活置灵活第5页,此课件共61页哦计算机仿真可以解决以下计算机仿真可以解决以下5类问题类问题:l(1)难以用数学公式表示的系以用数学公式表示的系统,或者没有建立和求解的有效方法或者没有建立和求解的有效方法.l(2)虽然可以用解
4、析的方法解决然可以用解析的方法解决问题,但数学的分析与但数学的分析与计算算过于于复复杂,这时计算机仿真可能提供算机仿真可能提供简单可行的求解方法可行的求解方法.l(3)希望能在希望能在较短的短的时间内内观察到系察到系统发展的全展的全过程程,以估以估计某些某些参数参数对系系统行行为的影响的影响.l(4)难以在以在实际环境中境中进行行试验和和观察察时,计算机仿真是唯一可行算机仿真是唯一可行的方法的方法,如太空如太空飞行的研究行的研究.l(5)需要需要对系系统或或过程程进行行长期运行比期运行比较,从大量方案中从大量方案中寻找最找最优方案方案.第6页,此课件共61页哦 计算机仿真的分类计算机仿真的分类
5、l计算机仿真在算机仿真在计算机中运行算机中运行实现,不怕破坏不怕破坏,易修改易修改,可重用可重用,安安全全经济,不受外界条件和不受外界条件和场地空地空间的限制的限制.l仿真仿真分分为静静态仿真仿真(static simulation)和和动态仿真仿真(dynamic simulation).数数值积分中的蒙特卡洛方法(分中的蒙特卡洛方法(统计模模拟方法)是方法)是典型的静典型的静态仿真仿真动态仿真仿真又分又分为连续系系统仿真仿真和离散系和离散系统仿真仿真连续系系统是指状是指状态变量随着量随着时间连续变化的系化的系统,例,例如如传染病的染病的检测与与预报系系统.离散系离散系统是指系是指系统状状态
6、变量只在量只在有限的有限的时间点或可数的点或可数的时间点上点上发生生变化的系化的系统,例如排例如排队系系统.第7页,此课件共61页哦l 仿真系仿真系统,必,必须设置一个仿真置一个仿真时钟(simulate clock),它能将,它能将时间从一个从一个时刻向刻向另一个另一个时刻刻进行推行推进,并且能随,并且能随时反映系反映系统时间的当前的当前值其中,模其中,模拟时间推推进方方式有两种式有两种:时间步步长法法(均匀均匀间隔隔时间推推进法法,连续系系统常用常用)和事件步和事件步长法法(下次事件推下次事件推进法法,离散系离散系统常用常用)第8页,此课件共61页哦主要内容主要内容l一一:准备知识准备知识
7、:随机数的产生随机数的产生l二二:随机变量的模拟随机变量的模拟l三三:连续系统的模拟连续系统的模拟-时间步长法时间步长法l四四:离散系统的模拟离散系统的模拟-事件步长法事件步长法五:蒙特卡洛方法五:蒙特卡洛方法第9页,此课件共61页哦一一:准备知识准备知识:随机数的产生随机数的产生l由于仿真研究的由于仿真研究的实际系系统要受到多种随机因素的作要受到多种随机因素的作用和影响用和影响,在仿真在仿真过程中必程中必须处理大量的随机因素理大量的随机因素.要解要解决此决此问题的前提是确定随机的前提是确定随机变量的量的类型和型和选择合适的合适的随机数随机数产生的方法生的方法.l对随机随机现象象进行模行模拟,
8、实质是要是要给出随机出随机变量的模量的模拟,也就是也就是说要利用要利用计算机随机算机随机产生一系列数生一系列数值,使它使它们服从一定的概率分布服从一定的概率分布,称称这些数些数值为随机数随机数.l最基本最基本,最常用的是最常用的是(0,1)区区间内均匀分布的随机数内均匀分布的随机数.其他其他分布的随机数均可利用它来分布的随机数均可利用它来产生生.第10页,此课件共61页哦1:产生模生模拟随机数的随机数的计算机命令算机命令l在在MATLAB中中,可以直接可以直接产生生满足各种分布的随机数足各种分布的随机数,命命令如下令如下:l常常见的分布函数的分布函数 MATLAB语句句 l均匀分布均匀分布U0
9、,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,1,4)lnormrnd(1,2)l no
10、rmrnd(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页,此课件共61页哦2:案例分析案例分析l例例2:敌空空战部
11、部队对我方港口我方港口进行空行空袭,其到达其到达规律服从泊松分布律服从泊松分布,平均每分平均每分钟到达到达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)由排由排队论知知识,敌机到达机到达规律服从泊松分布等价于律服从泊松分布等价于敌机到达机到达港口的港口的间隔隔时间服从参数服从参数为1/4的指数分布
12、的指数分布,故可由指数分布模故可由指数分布模拟每架每架飞机的到达机的到达时刻刻.第14页,此课件共61页哦2:案例分析案例分析lclearlt=0;lj=0;%到达的飞机数 lwhile t3l j=j+1l t=t+exprnd(1/4)lend第15页,此课件共61页哦二二:随机变量的模拟随机变量的模拟l利用均匀分布的随机数可以利用均匀分布的随机数可以产生具有任意分布的随机生具有任意分布的随机变量的量的样本本,从从而可以而可以对随机随机变量的取量的取值情况情况进行模行模拟.l1 连续型随机型随机变量的模量的模拟l具有具有给定分布的定分布的连续型随机型随机变量可以利用在区量可以利用在区间(0
13、,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分析分析:因因为每分每分钟到达柜台的人数是随机的到达柜台的人数是随机的,所以可用所以可用计算机随机生成一算机随机生成一组(0,1)的数据的数据,
15、由由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+(x(i+1)-x(i+3)2);lx(i)=x(i)+v*dt*(x(i+
16、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);每分;每分钟向池内注入向池内注入盐60.5=3(kg);每分;每分钟向池外流出向池外流出盐
19、4r(kg);每分;每分钟池内池内增加增加盐3-4r(kg).l本例本例还可以用微分方程建立数学模型,并求出它的解析解,可以用微分方程建立数学模型,并求出它的解析解,这个解析解就是个解析解就是问题的精确解,有的精确解,有兴趣的趣的读者可以按照者可以按照这个思路求出个思路求出该问题的精确解,考察相的精确解,考察相应时刻精确解与仿真刻精确解与仿真解的差异,解的差异,还可以可以进一步一步调整仿真整仿真过程的程的时间步步长,通,通过与精确解的比与精确解的比较来研究来研究时间步步长的大小的大小对仿真度的影响。仿真度的影响。第31页,此课件共61页哦MATLAB实现实现lclearlh=1;%时间步长为1
20、ls0=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步后的含盐量l w(i)=w(i-1)+2*h;%第i步后的盐水体积l r(i)=s(i)/w(i);
21、%第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),plot(t,y,red);第33页,此课件共61页哦四四:离散系统的模拟离散系统的模拟-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 计算机仿真 课件
限制150内