资源简介
元胞自动机中经典森林火灾模型((1)正在燃烧的树变成空格位;
(2)如果绿树格位的最近邻居中有一个树在燃烧,则它变成正在燃烧的树;
(3)在空格位,树以概率p生长;
(4)在最近的邻居中没有正在燃烧的树的情况下,树在每一步,以概率f(闪电)变为正在燃烧的树。)的拓展:初始状态只有一个着火点,不存在闪电袭击导致着火,从这一个着火点开始蔓延,蔓延的概率达到多大的时候,整个森林可能会被烧光?
MATLAB代码 m文件,创新点是考虑了风向的影响,受到表扬
代码片段和文件信息
%矩阵中0代表空地,1代表绿树,2代表燃烧
%网格图中白色代表空地,绿色代表绿树,红色代表燃烧
%rule 1正在燃烧的树变成空格位;
%rule 2如果绿树格位的最近邻居中有一个树在燃烧,则它以蔓延概率变成正在燃烧的树;
%rule 3在空格位,树以概率p生长;
%% 准备和初始化
close all;
clc;
clear;
figure;
p=0.001;%s生长概率
f=0.01;%着火概率
M=50;%森林大小
T=100;%运行步数
%蔓延概率
p0=0.3;%风力影响
a=pi/4;%风向夹角
q=1;%计算概率时的临时变量初值
for p1=0.75:0.05:01%改变蔓延概率p1大小
p1
%% 概率矩阵
%计算八邻域内着火的树木在风力影响下使中心绿树着火的概率,风力影响通过沿八方向向量分解表达
P=[];
g=[cos(a);sin(a)];
for i=1:3;
for j=1:3;
P(ij)=[i-2j-2]*g*p0/sqrt((i-2)^2+(j-2)^2)+p1;
end
end
P(22)=0;
%% 每次实验赋初值
flag=0;
for l=1:10%对每个蔓延概率,进行十次实验,记录“烧光”的次数
set(gcf‘DoubleBuffer‘‘on‘);
I=randi(2M)-1;%Inside森林矩阵
I(randi(M^2))=2;
D=ones(M+2M+23);%Draw画RGB森林矩阵
D(2:M+12:M+11)=(I~=1);%R
D(2:M+12:M+12)=(I~=2);%G
D(2:M+12:M+13)=(I==0);%B
imshow(D‘InitialMagnification‘‘fit‘);%使图像以合适大小显示
t=0;
title([‘p=‘num2str(p1)‘ n=‘num2str(l)‘ T=‘num2str(t)]);%%时间记录
pause(0.2)
for t=1:T
NI=I;%New Inside新森林矩阵
NI(I==2)=0;%for rule 1
NI=NI+(I==0).*(rand(M) %% for rule 2
O=zeros(M+2);%Outside加边森林矩阵
O(2:M+12:M+1)=I;
NO=O;%New Outside新加边森林矩阵
NO(2:M+12:M+1)=NI;
相关资源
- 利用BP神经网络对图像提取的MATLAB代码
- 6自由度机器人正逆运动学matlab
- MATLAB 灰度共生矩阵特征提取
- 机器人焊接轨迹规划matlab仿真程序
- 有约束的基于适应度和连续世代策略
- 同步电机模型的MATLAB仿真-毕业设计论
- 通信原理matlab最全仿真,曹丽娜,樊
- 《信息隐藏技术实验教程》MATLAB源码
- libsvm数据格式转换程序
- matlab实现单纯形法
- 基于卡尔曼滤波的三种经典室内定位
- emd和eemd算法的matlab源程序
- 基于MATLAB GUI的多功能计算器
- 用MATLAB做的基于霍夫曼编码的图像压
- 互信息 matlab
- 使用matlab实现ICP点云匹配
- 找出两点间所有最短路径
- MATLAB 夜间车牌识别
- matlab使用有限元方法求解偏微分方程
- matlab纹理特征提取源代码
- 中央大学 EMD HHT Matlab 源代码
- 方崇智《过程辨识》一书中各种辨识
- 求取图像的平均梯度---matlab ---M文件
- matlab潮流程序牛顿拉夫逊+PQ分解法有
- MATLAB 4f光学系统仿真
- 基于肤色模型的人脸检测MATLAB代码
- 自动寻峰算法matlab源文件
- matlab时间序列分析工具程序
- 灰色预测模型及Matlab实现附参考论文
- MSE+ 一对一多类技术的matlab实现
评论
共有 条评论