数学建模-元胞自动机




































bash 复制代码
clc
clear
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 = 空地为0 着火为1 树木为2
for i=1:3000 
    sum =(veg(UL,:)==1) + (veg(:,UL)==1)+(veg(:,DR)==1) +  (veg(DR,:)==1);  % 计算出所有格子有几个邻居是着火的
% 根据规则更新森林矩阵:是否树=是否树-是否着火的树+是否新生的树(0-1运算)
    veg = 2*(veg==2) - ( (veg==2) & (sum>0 |(rand(n,n)<Plight)) ) +2*((veg==0) & rand(n,n)<Pgrowth) ;  
    set(imh, 'cdata', cat(3,(veg==1),(veg==2),zeros(n)) )
    drawnow                         % 可视化表示森林的矩阵
end
bash 复制代码
clc
clear all;
n=200;
Se=zeros(n);
Z=zeros(n)
Se(n/2-2:n/2+2,n/2-2:n/2+2)=1;
Ch=imagesc(cat(3,Se,Z,Z));
axis square
Sd=zeros(n+2);
while(1)
    Sd(2:n+1,2:n+1)=Se;
    sum=Sd(1:n,2:n+1)+Sd(3:n+2,2:n+1)+Sd(2:n+1,1:n)+Sd(2:n+1,3:n+2);
    Se=mod(sum,2);
   
    set(Ch,'cdata',cat(3,Se,Z,Z))
    pause(0.05)
end
   figure
bash 复制代码
clc
clear;
n=200;
p=0.4;
z=zeros(n)
Se=rand(n)<p;
Sd=zeros(n+2);%矩阵初始化
Ph=image(cat(3,Se,z,z));%初始可视化
while(1)
    Sd(2:n+1,2:n+1)=Se;%
    Sum=Sd(1:n,2:n+1)+Sd(3:n+2,2:n+1)+Sd(2:n+1,1:n)+Sd(2:n+1,3:n+2)+Sd(1:n,1:n)+Sd(3:n+2,1:n)+Sd(1:n,3:n+2)+Sd(3:n+2,3:n+2);
%邻居之和(邻居中生的元胞的数目)
    for i=1:n
    for j=1:n
    if Sum(i,j)==3||(Sum(i,j)==2&&Se(i,j)==1)%生的条件
        Se(i,j)=1;
    else 
            Se(i,j)=0;
    end
    end
end
set(Ph,'cdata',cat(3,Se,z,z))%更新可视化
   drawnow
end
相关推荐
优美的赫蒂1 天前
理解欧拉公式
线性代数·算法·数学建模
人大博士的交易之路1 天前
龙虎榜——20250422
大数据·数学建模·数据挖掘·缠论·缠中说禅·涨停回马枪·龙虎榜
烟锁池塘柳02 天前
【数学建模】孤立森林算法:异常检测的高效利器
算法·数学建模
烟锁池塘柳03 天前
【数学建模】随机森林算法详解:原理、优缺点及应用
算法·随机森林·数学建模
嵌入式冰箱3 天前
2025妈妈杯数学建模D题完整分析论文
数学建模
烟锁池塘柳03 天前
齐次坐标系下的变换矩阵
线性代数·数学建模·矩阵
CC数学建模3 天前
第十七届“华中杯”大学生数学建模挑战赛题目C题就业状态分析与预测完整 思路 代码 模型 结果 分享
数学建模
Lucifer三思而后行3 天前
零基础玩转AI数学建模:从理论到实战
人工智能·数学建模
小陈爱建模4 天前
【已更新】2025华中杯B题数学建模网络挑战赛思路代码文章教学:校园共享单车的调度与维护问题
数学建模
CC数学建模4 天前
2025第十七届“华中杯”大学生数学建模挑战赛题目B 题 校园共享单车的调度与维护问题完整成品正文33页(不含附录)文章思路 模型 代码 结果分享
数学建模