元胞自动机

matlab——元胞自动机

我们两清 提交于 2020-02-03 06:03:45
(主要参考zhou lvwen教学视频) 元胞自动机是离散的动力学系统,即元胞定义在有限的时间空间,且个数有限 数学表示A=(L,d,s,N,f) L: 元胞网格空间 d:空间维数 s:有限离散状态集合(例如0,1) N:某邻域内所有元胞出现的可能性 f:局部映射或局部规则 元胞是其基本单元,每一个都具有记忆储存状态的功能 几种不同邻居关系 边界条件:周期型,定值型,吸收型,反射型 规则: 总和型:看邻居总的状态 合法型: 实例:森林火灾 代码 % simulate forest fire with cellular automata n = 300;%定义表示森林矩阵大小 Plight = 5e-6; %闪电概率 Pgrowth = 1e-2;%树生长概率 UL = [n 1:n-1]; %上左邻居处理 DR = [2:n 1]; veg=zeros(n,n);%初始化矩阵 imh = image(cat(3,veg,veg,veg));%可视化(R,G,B表示三层矩阵) % veg = empty=0 burning=1 green=2三种不同状态 for i=1:3000%循环开始 %nearby fires? sum = (veg(UL,:)==1) + ... (veg(:,UL)==1) + (veg(:,DR)==1) + ... (veg(DR,:)==1);