资源描述:
《数学建模之计算机仿真备课讲稿.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学建模之计算机仿真掷硬币仿真流程图概述计算机科学技术的迅猛发展,给许多学科带来了巨大的影响.计算机不但使问题的求解变得更加方便、快捷和精确,而且使得解决实际问题的领域更加广泛.计算机适合于解决那些规模大、难以解析化以及不确定的数学模型.例如对于一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假设,与面临的实际问题可能相差甚远,以致解答根本无法应用,这时仿真几乎成为人们的唯一选择.在历届的美国和中国大学生的数学建模竞赛(MCM)中,学生们经常用到计算机仿真方法去求解、检验等.计算机仿真(computersimulation)是建模过程中较为重要的一类方法.计
2、算机仿真可以解决以下5类问题:(1)难以用数学公式表示的系统,或者没有建立和求解的有效方法.(2)虽然可以用解析的方法解决问题,但数学的分析与计算过于复杂,这时计算机仿真可能提供简单可行的求解方法.(3)希望能在较短的时间内观察到系统发展的全过程,以估计某些参数对系统行为的影响.(4)难以在实际环境中进行试验和观察时,计算机仿真是唯一可行的方法,如太空飞行的研究.(5)需要对系统或过程进行长期运行比较,从大量方案中寻找最优方案.计算机仿真案例1模型建立:由于本题要求使从搅拌中心到各个工地运输混凝土的总的吨公里数最少,所以,该问题的目标函数是求解方法:1、高数中的方法2
3、、数值计算方法3、计算机仿真:离散化,遍历!计算机仿真案例2例2(赶火车过程仿真)一列火车从A站经过B站开往C站,某人每天赶往B站乘这趟火车。已知火车从A站到B站的运行时间是均值为30min、标准差为2min的正态随机变量。火车大约在下午1点离开A站。火车离开时刻的频率分布和这个人到达B站时刻的频率分布如下表所示。问他能赶上火车的概率有多大?出发时刻1:001:051:10到达时刻1:281:301:321:34频率0.70.20.1频率0.30.40.20.1仿真过程:1、生成火车的发车时间、运行时间,从而达得到其到达B站的时间。2、生成此人达到B站的时间。3、如果
4、此人到达B站的时间早于火车到达时间,则算赶上火车一次。4、将上述过程重复一万次,统计赶上火车的频率作为所求概率。分析:这个问题用概率论的方法求解十分困难,它涉及此人到达时刻、火车离开A站的时刻、火车运行时间几个随机变量。我们可以用计算机仿真的方法来解决。概述计算机仿真在计算机中运行实现,不怕破坏,易修改,可重用,安全经济,不受外界条件和场地空间的限制.仿真分为静态仿真(staticsimulation)和动态仿真(dynamicsimulation).数值积分中的蒙特卡洛方法是典型的静态仿真.动态仿真又分为连续系统仿真和离散系统仿真.连续系统是指状态变量随着时间连续变
5、化的系统,例如传染病的检测与预报系统.离散系统是指系统状态变量只在有限的时间点或可数的时间点上发生变化的系统,例如排队系统.概述仿真系统,必须设置一个仿真时钟(simulateclock),它能将时间从一个时刻向另一个时刻进行推进,并且能随时反映系统时间的当前值.其中,模拟时间推进方式有两种:时间步长法(均匀间隔时间推进法,连续系统常用)和事件步长法(下次事件推进法,离散系统常用).主要内容一:准备知识:随机数的产生二:随机变量的模拟三:连续系统的模拟-时间步长法四:离散系统的模拟-事件步长法五:蒙特卡洛方法一:准备知识:随机数的产生由于仿真研究的实际系统要受到多种随
6、机因素的作用和影响,在仿真过程中必须处理大量的随机因素.要解决此问题的前提是确定随机变量的类型和选择合适的随机数产生的方法.对随机现象进行模拟,实质是要给出随机变量的模拟,也就是说要利用计算机随机产生一系列数值,使它们服从一定的概率分布,称这些数值为随机数.最基本,最常用的是(0,1)区间内均匀分布的随机数.其他分布的随机数均可利用它来产生.1:产生模拟随机数的计算机命令在MATLAB中,可以直接产生满足各种分布的随机数,命令如下:常见的分布函数MATLAB语句均匀分布U[0,1]R=rand(m,n)均匀分布U[a,b]R=unifrnd(a,b,m,n)指数分布E
7、(λ)R=exprnd(λ,m,n)正态分布N(mu,sigma)R=normrnd(mu,sigma,m,n)标准正态分布N(0,1)R=randn(m,n)二项分布B(n,p)R=binornd(n,p,m,n1)泊松分布P(λ)R=poissrnd(λ,m,n)以上语句均产生m×n的矩阵.2:案例分析例1:unifrnd(2,3)unifrnd(1,32,1,4)normrnd(1,2)normrnd(1,2,2,3)rand(2,3)randn(2,3)ans=2.8132ans=1.30575.30567.28577.1604ans=0.2