模拟森林火灾

代码

clc;
clear;
close;%0为空地 1为燃烧的树 2为正常的树
%初始情况是森林数目有一定的覆盖率 某些树木着火
length=300; % 森林长
width=500; % 森林宽
coverage_rate=0.8;% 初始森林覆盖率
growth_rate=0.0001;% 新树生长的概率
spread_rate=0.7;% 火情扩散率tes=rand(length,width);
tt=(tes<growth_rate);
u=sum(tt(:));SUM=zeros(length,width);%计算每个点有多少个邻居着火
a=randperm(length*width);
forest=reshape(2*(a<=coverage_rate*length*width),length,width);% initial_fire_tree_number=10;
% 随机生成着火的树的位置【不太准确 应该使得着火的树应该比较集中?】
% b=randperm(length,initial_fire_tree_number);
% c=randperm(width,initial_fire_tree_number);
% forest(sub2ind(size(forest),b,c))=1;
forest([length/2-3,length/2+3],[width/2-3,width/2+3])=1;left= [width 1:width-1]; %左边邻居
up=[length 1:length-1]; % 上边邻居
right=[2:width 1];% 右边邻居
down =[2:length 1]; % 下边邻居  test=cat(3,forest,forest,forest);
imh = image(cat(3,(forest==1),(forest==2),zeros(length,width)));%cat用于建立一个三维的forest组成的矩阵 image将三维矩阵做成图片
temp=(forest==1);
Pause=sum(temp(:));for i=1:3000 %循环if Pause==0 break;else%观察每一个空位其上下左右邻居正在燃烧的树的个数SUM = (forest(up,:)==1)+(forest(:,left)==1)+(forest(:,right)==1)+(forest(down,:)==1);%根据周围有多少棵树着火决定下一个时间着火的概率S=((SUM==1).*(1-(1-spread_rate)^1))+((SUM==2).*(1-(1-spread_rate)^2))+((SUM==3).*(1-(1-spread_rate)^3))+((SUM==4).*(1-(1-spread_rate)^4));%现存的树=树-被烧毁的树+新生的树forest = 2*(forest==2)-(forest==2 & SUM>0 & (rand(length,width)<S))+2*((forest==0) & rand(length,width)<growth_rate);set(imh, 'cdata', cat(3,(forest==1),(forest==2),zeros(length,width)) )%更新图片    drawnowtemp=(forest==1);Pause=sum(temp(:));end
end

数学建模模型11——元胞自动机相关推荐

  1. 澳洲森林火灾蔓延数学建模,基于元胞自动机模拟多模式下火灾蔓延(附部分源码)

    前言 本文篇幅较长,希望各位小伙伴能够耐心看完. 元胞自动机模型可以用来模拟交通流.火灾蔓延情况.高速收费站交通情况,有利于我们更好地改善交通状况,更好地控制火灾蔓延,合理地设置收费站的数量等. 关于 ...

  2. 数学建模美赛 元胞自动机

    元胞自动机构成 元胞自动机由元胞.元胞空间.元胞邻居和元胞规则四部分构成. 元胞可称为单元或基元,是元胞自动机最基本的部分. 元胞空间就是元胞在空间分布上的集合. 某一元胞状态更新时所要搜索的空间域就 ...

  3. 雨水冲刷沙堡模型——matlab元胞自动机

    雨水冲刷沙堡模型,新手练习matlab元胞自动机写的. 这是代码 clear all; % 设置GUI按键 plotbutton=uicontrol('style','pushbutton','str ...

  4. 一篇文章带你搞定数学建模中的元胞思想(11年土壤重金属污染示例讲解含代码)

    文章目录 一.题目分析 二.重金属污染物的传播特征 1. 定性分析 2. 定量分析 三.确定污染源的位置 1. 模型建立 2. 模型求解 四.模型代码 1. 元胞思想求解极大值点 2. 确定污染源坐标 ...

  5. 雨水冲刷沙堡模型——matlab元胞自动机(二)

    第二代和第一代有些许不同,每体积沙子被雨水打到后会增加一定量的含水量,当最上面一层的含水量平均值大于某个值得时候,最上面一层沙子就会塌陷. 不多说啥了,看代码(个人练习记录,大佬轻喷) clear a ...

  6. 元胞自动机与相关理论和方法

    元胞自动机与相关理论和方法的发展有着千丝万缕的联系,一方面,元胞自动机的发展得益于相关理论的研究,如逻辑数学.离散数学.计算机中的自动机理论,图灵机思想;另一方面,元胞自动机的发展也促进了一些相关学科 ...

  7. GIS实战应用案例100篇(二)-元胞自动机模拟城市扩张过程

    前言 CA模型:CA(Cellular Automat)即元胞自动机模型,元胞自动机是一种具有时空计算特征的模型框架,从局部到整体的建模思想被广泛的应用于空间上离散.时间上也离散的复杂性系统模拟.标准 ...

  8. python元胞自动机模拟交通_结构专栏 | 解析DEFORM软件中的元胞自动机法

    点击上方蓝色字体,关注我们 导语 金属材料的性能取决于内部的微观组织结构,而好的材料性能和价格是产品最大的优势.随着现代物理冶金.热成形技术.热处理技术和计算机技术的兴起与发展,使预测和控制金属材料热 ...

  9. 笔记丨元胞自动机模拟城市扩张过程

    忙啊忙啊....实验数据来自翁敏老师的空间分析.我是初次接触,为了熟悉操作,参照课本进行粗浅记录,很粗糙,不具备参考价值,请各位仔细甄别. CA模型:CA(Cellular Automat)即元胞自动 ...

最新文章

  1. Android文件系统的结构
  2. boost::mp11::mp_eval_if_q相关用法的测试程序
  3. Windows下载、安装、卸载Redis
  4. oracle创建简单包,Oracle创建程序包是什么?
  5. Delphi XE2 之 FireMonkey 入门(18) - TLang(多语言切换的实现)
  6. kali字典_kali黑客系统wpscan工具扫描wordpress漏洞入侵攻击测试教程
  7. 程序员出差是去干什么_让我来告诉你,35岁以上的人都在干什么!
  8. 我不是天生的飞鸽传书2011
  9. 数据结构与算法(二):比较有名的排序和所有算法
  10. P1640 [SCOI2010]连续攻击游戏
  11. 【笔记】mac上如何用命令行编译jni
  12. linux的mongo主从异常,解决Linux系统下MongoDB数据库异常退出的问题
  13. VBM后的配对t检验以及xjview使用
  14. linux怎么卸载字体,Ubuntu下字体安装与卸载
  15. 程序员再忙也应该看看《琅琊榜》
  16. 程序员必备之沟通的艺术
  17. 【虚幻引擎UE】UE5 可编辑动态样条线轨迹及AI跟随路径移动(含工程源码)
  18. 短视频运营技巧,掌握这五点你的视频也可以火爆
  19. 数字逻辑与EDA技术课程设计---闹钟
  20. netbeans 自动生成html,NetBeans IDE 5.0 HTML Editor 教程

热门文章

  1. 苹果终于要认真发力智能家居了!挖来前微软副总裁掌舵其人工智能部门!
  2. win10双系统linux视频教程,Win10+Linux(CentOS) 双系统安装--踩坑实录
  3. 是三的倍数但不是七的倍数
  4. python中blit的意思,pygame中的surface.blit()函数是什么?它有什么作用?它是如何工作的?...
  5. 电信云RDS数据库注册金蝶云星空产品数据库账套
  6. springboot+vue框架搭建教程
  7. 自动脚本以及打包,将写好的脚本打包成exe可执行文件
  8. Android Retrofit详解(retrofit:2.3.0)
  9. 强连通分量/点双连通分量/边双联通分量 总结
  10. 淘宝美工 电商设计PS零基础到实战课程学习目录-来自于三人行慕课