内有详细程序例子分析!!!

案例+下载链接
元胞自动机(CA)是一种用来仿真局部规则和局部联系的方法。典型的元胞自动机是定义在网格上的,每一个点上的网格代表一个元胞与一种有限的状态。变化规则适用于每一个元胞并且同时进行。典型的变化规则,决定于元胞的状态,以及其( 4 或 8 )邻居的状态。
元胞自动机已被应用于物理模拟,生物模拟等领域。本文就一些有趣的规则,考虑如何编写有效的 MATLAB 的程序来实现这些元胞自动机。
1、案例——森林火灾
规则:
元胞有 3 个不同的状态。状态为 0 是空位,状态= 1 是燃烧着的树木,状态= 2 是树木。
如果 4 个邻居中有一个或一个以上的是燃烧着的并且自身是树木(状态为2 ) ,那么该元胞下一时刻的状态是燃烧(状态为 1 ) 。
森林元胞(状态为 2 )以一个低概率(例如 0.000005 )开始烧(因为闪电)。
一个燃烧着的元胞(状态为 1 )在下一时时刻变成空位的(状态为 0 ) 。
空元胞以一个低概率(例如 0.01 )变为森林以模拟生长。
出于矩阵边界连接的考虑,如果左边界开始着火,火势将向右蔓延,右边界同理。同样适用于顶部和底部。
核心代码:
- sum = (veg(1:n,[n 1:n-1])==1) + (veg(1:n,[2:n 1])==1) + ...
- (veg([n 1:n-1], 1:n)==1) + (veg([2:n 1],1:n)==1) ;
- veg = ...
- 2*(veg==2) - ((veg==2) & (sum> 0 | (rand(n,n)< Plightning))) + ...
- 2*((veg==0) & rand(n,n)< Pgrowth) ;
注意环形连接是由序标实现的。
2、文件下载
点击:元胞自动机与Matlab(内有详细程序样例分析)



雷达卡






京公网安备 11010802022788号







