数学建模-元胞自动机




































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
相关推荐
老鱼说AI5 天前
从点积到希尔伯特空间:向量内积的几何本质与大模型相似度度量
人工智能·深度学习·线性代数·算法·机器学习·数学建模
蒲公英eric5 天前
数学建模全流程:从一道题到一篇论文
人工智能·数学建模·数学建模竞赛·论文写作·建模流程
蒲公英eric5 天前
近年数学建模出题趋势:数模在往哪走
人工智能·数学建模·数学建模竞赛·论文写作·建模流程·数模趋势
统计学小王子5 天前
华为杯倒计时4天——《如何使用AI分工》
数学建模·倒计时·华为杯
热心网友俣先生6 天前
2026年高教社杯全国大学生数学建模竞赛A题《药材的烘干问题》某中等强度赛区评阅细则
数学建模
热心网友俣先生6 天前
2026年华为杯研赛焚诀3:评分要点与评阅细节
数学建模
统计学小王子7 天前
华为杯倒计时5天——《AI使用说明详解》
数学建模
统计学小王子8 天前
数学建模十万个为什么(一)
经验分享·数学建模
kaixin_啊啊8 天前
中国研究生数学建模竞赛(华为杯)学习笔记——AI绘图方法
人工智能·笔记·学习·数学建模
lisw059 天前
函数的概述与其几种基本性质!
数学建模