欢迎来到天天文库
浏览记录
ID:45268452
大小:3.10 MB
页数:52页
时间:2019-11-11
《第7讲:仿真模型的matlab实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7讲仿真模型与Matlab实现王丹理学院数学与系统科学系2016年夏季例1:生命游戏生命游戏(gameoflife)是由剑桥大学的数学家JohnHortonConway在1970年提出来的。元胞分布在规则划分的二维网格上;元胞具有0,1两种状态,0代表“死”,1代表“生”;元胞以相邻的8个元胞为邻居;一个元胞的生死由其在该时刻本身的生死状态和周围八个邻居的状态决定。生命游戏的规则:生存:对一个活的元胞,如果它的邻居中有两个或三个元胞是活的,那么该元胞将继续生存下去。死亡:对一个活的元胞(a)如果它的邻居中有四个或四个以上的元胞是活的,那么该元胞将死去;(b)如果它的邻
2、居中只有一个或没有活的元胞,那么该元胞也将死去。繁殖:对一个死的元胞,如果它的邻居中有3个(不能多也不能少)活的,那么该元胞将成为一个活的元胞。生命游戏的规则(数学形式):规则的不断演化所形成的规律性与初始状态有关,不同的初始状态可能导致不同的演化结果。生命游戏的一些演化过程和形态演示(1)完全生成初始状态(2)脉冲星(Explore)(3)滑翔机(Glider)(4)小脉冲星(SmallExplore)(5)10元胞行(10Cellsrow)(6)轻型飞船(LightweightSpaceship)(7)图姆勒(Tumler)(8)滑翔机发射器(GosperGlide
3、rGun)完全生成初始状态脉冲星(Explore)滑翔机(Glider)10元胞行(10Cellsrow)轻型飞船(LightweightSpaceship)图姆勒(Tumler)滑翔机发射器(GosperGliderGun)滑翔机发射器(GosperGliderGun)程序实现几个核心问题:(1)棋盘状态如何表示?(2)邻域活细胞总数如何统计?(3)元胞自动机的状态改变规则在程序中如何体现?(4)动画如何生成?(5)初始状态如何给定?(1)棋盘状态如何表示?用一个0-1矩阵表示元胞自动机的棋盘,即:(2)邻域活细胞总数如何统计?(3)元胞自动机的状态改变规则在程序中如
4、何体现?换一种写法:程序效率差异显著(4)动画如何生成?初始化:每次更新:(5)初始状态如何给定?直接赋值,如省略了赋初值语句例2:Langton'sant兰顿蚂蚁是元胞自动机另外一个经典的案例。其通过简单两条规则模拟蚂蚁的行为规律。蚂蚁在方形网格上运动,网格分为黑色和白色两种,蚂蚁在网格上头可朝向上、下、左、右四个方向,头朝向哪个方向,下一步运动就向该方向,并且不改变头的方向,运动遵循两条规则:(1)若蚂蚁位于黑色网格,则头向右转90度,前进一步,并将原网格变成白色;(2)若蚂蚁位于白色网格,则头向左转90度,前进一步,并将原网格变成黑色;通过模拟可以发现,蚂蚁表现出
5、了相当复杂的行为。初始状态为一只小蚂蚁位于网格中间,且头朝上。随着蚂蚁的行走演变,系统行为表现为三个阶段:程序实现核心变量:(1)棋盘的状态改变(2)蚂蚁的当前位置和头的朝向用一个二维数组表示棋盘的状态,假设棋盘大小为200*200,蚂蚁位于棋盘中心(100,100)位置,初始蚂蚁头朝上。棋盘:cells(1:200,1:200)=1;%白色棋盘posx=100;posy=100;%蚂蚁当前位置direct=1;%1,2,3,4代表从上开始顺时针四个方向棋盘大小全为白色棋盘设定图像显示蚂蚁初始位置和方向当前位置为黑格头朝上头朝右头朝下头朝左当前位置为白格头朝上头朝右头朝
6、下头朝左例3:森林火灾模拟元胞空间采用2维正方形网格自动机,元胞包括三种状态:正在生长的树(绿色),正在燃烧的树(红色)和空状态(黑色)。初始状态由这三种情况随机填充,邻域取Moore型。每一步按下述规则更新状态:(1)正在燃烧的树变为空状态;(2)如果正在生长的树格位最近的邻居中有不少于一棵树正在燃烧,则它将变为燃烧状态;(3)如果是空状态格位,则其以概率p生长出树;(4)考虑到闪电的作用,在最近邻居中没有正在燃烧的树(周围全是树且没有燃烧)的情况下,生长树在每个时间步以概率f变成燃烧的树。程序实现核心变量:规则(1)—规则(4)的实现!用一个二维数组表示棋盘的状态,
7、假设棋盘大小为100*100,初始根据概率随机确定是否有树。棋盘:S=rand(100);%随机生成[0,1]间的棋盘矩阵S(S<=0.5)=0;S(S>0.5)=1;Sk=zeros(102);Sk(2:N+1,2:N+1)=S;例4:基于元胞自动机的交通流模拟将道路离散化为一维网格,车辆为元胞,匀速行驶,其在一维网格上的移动看成一维网格的状态变化,邻域取前后各一个位置,即邻域半径r=1,初始状态为道路入口处有一辆车,随着时间的进行,道路入口处按均匀分布随机产生一辆车作为道路的输入(产生概率决定了车流密度),车辆在道路上的移动可使用元胞
此文档下载收益归作者所有