建模3----学习笔记之元胞自动机

元胞自动机是一种离散动力系统,常用于模拟复杂动态过程。文章介绍了火灾模型、图案扩散和建筑物逃生三个应用实例,展示了元胞自动机在模拟现实世界现象中的潜力。
摘要由CSDN通过智能技术生成

建模3----学习笔记之元胞自动机

概念

元胞自动机(Cellular Automata, 简称CA)是一时间和空间都离散的动力系统。散布在规则格网(Lattice Grid)中的每一元胞(Cell)取有限的离散状态,遵循同样的作用规则,依据确定的局部规则作同步更新。大量元胞通过简单的相互作用而构成动态系统的演化。

一般常见的有一维和二维元胞自动机,二维元胞自动机又可根据邻域的种类分为:冯诺依曼型(四邻域)和摩尔类型(八邻域)。

元胞自动机作为一种动态模型,常用于模拟在有限的离散空间中按照固定的一些规则随着离散时间变化的过程。

例程

动态地展示变化过程:

h = imagesc(你的元胞矩阵)
在按照一定规则更行状态的循环中,
set(h,‘cdata’,你的更新后的元胞矩阵)
drawnow或者pause(时间间隔)

火灾模型

参考博文:https://blog.csdn.net/cokezkx/article/details/98472741
用二维矩阵描述一片森林,每一个单位有三种状态:空地(0)、着火(1)、树木(2)。
规则:某格点的状态只由它的4邻域决定:
(1)正在燃烧的树变成空格位;
(2)如果绿树格位的最近邻居中有一个树在燃烧,则它变成正在燃烧的树;
(3)在空格位,树以概率p生长;
(4)在最近的邻居中没有正在燃烧的树的情况下树在每一时步以概率f(闪电)变为正在燃烧的树。

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));  %构成三维矩阵
% veg: empty=0 burning=1 green=2
for i=1:3000  %主循环开始
    %判断上下左右四个邻居是否有火
    sum = (veg(UL,:)==1) + (<
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值