用matlab实现元胞自动机

作者:流年 | 创建时间: 2023-07-29
元胞自动机(Cellular Automata)是一种时间和空间以及对象的状态都是离散形式的动力学模型,也是目前研究非线性科学的重要研究工具。元胞自动机非常适合复杂系统蟽演化过程的动态模拟,比如图像加密、交通问题、人口问题以及一些关于群体性...
用matlab实现元胞自动机

操作方法

首先介绍什么是奇偶规则。奇偶规则是定义在二维网格上的一种元胞自动机。每个网格的状态用0各1表示。 (1)     对应于每一个元胞位置(i,j)计算出其上下左右四个最近领居在t时刻的状态值St的总和M(i,j)。 (2)     根据M(i,j)取值的奇偶性来决定下一时刻t+1该点的状态St+1(i,j)。当M(i,j)为偶数时,St+1(i,j)等于0;当M(i,j)为奇数时,St+1(i,j)等于1.

下面给出完整的实现代码以及注释,下图是第一部分。第2行代码gcf是当前图像的句柄;set(句柄'属性名'属性值) doublebuffer 双缓存;双缓冲设置在动画的制作中比较常用,这样设置的目的是为了防止在不断循环画动画的时候产生闪烁的现象。第10行代码fix()是取趋近于0整数,如a=-1.9,fix(a)=-1。

下面第二部分代码,也是实现元胞状态转换规则的核心部分。第13行是计算近邻状态值,你也可以用循环来做,这里是用矩阵计算,更快捷方便。

运行的结果如下:

其中,t=90和t=108时刻的运行结果单独展示出来如下 :

温馨提示

如有疑问欢迎交流讨论
如有错误欢迎指正
点击展开全文

更多推荐