-
大小: 3KB文件類(lèi)型: .m金幣: 1下載: 0 次發(fā)布日期: 2023-12-19
- 語(yǔ)言: Matlab
- 標(biāo)簽: MATLAB??數(shù)學(xué)建模??
資源簡(jiǎn)介
元胞自動(dòng)機(jī)中經(jīng)典森林火災(zāi)模型((1)正在燃燒的樹(shù)變成空格位;
(2)如果綠樹(shù)格位的最近鄰居中有一個(gè)樹(shù)在燃燒,則它變成正在燃燒的樹(shù);
(3)在空格位,樹(shù)以概率p生長(zhǎng);
(4)在最近的鄰居中沒(méi)有正在燃燒的樹(shù)的情況下,樹(shù)在每一步,以概率f(閃電)變?yōu)檎谌紵臉?shù)。)的拓展:初始狀態(tài)只有一個(gè)著火點(diǎn),不存在閃電襲擊導(dǎo)致著火,從這一個(gè)著火點(diǎn)開(kāi)始蔓延,蔓延的概率達(dá)到多大的時(shí)候,整個(gè)森林可能會(huì)被燒光?
MATLAB代碼 m文件,創(chuàng)新點(diǎn)是考慮了風(fēng)向的影響,受到表?yè)P(yáng)
代碼片段和文件信息
%矩陣中0代表空地,1代表綠樹(shù),2代表燃燒
%網(wǎng)格圖中白色代表空地,綠色代表綠樹(shù),紅色代表燃燒
%rule?1正在燃燒的樹(shù)變成空格位;
%rule?2如果綠樹(shù)格位的最近鄰居中有一個(gè)樹(shù)在燃燒,則它以蔓延概率變成正在燃燒的樹(shù);
%rule?3在空格位,樹(shù)以概率p生長(zhǎng);
%%?準(zhǔn)備和初始化
close?all;
clc;
clear;
figure;
p=0.001;%s生長(zhǎng)概率
f=0.01;%著火概率
M=50;%森林大小
T=100;%運(yùn)行步數(shù)
%蔓延概率
p0=0.3;%風(fēng)力影響
a=pi/4;%風(fēng)向夾角
q=1;%計(jì)算概率時(shí)的臨時(shí)變量初值
for?p1=0.75:0.05:01%改變蔓延概率p1大小
????p1
????%%?概率矩陣
????%計(jì)算八鄰域內(nèi)著火的樹(shù)木在風(fēng)力影響下使中心綠樹(shù)著火的概率,風(fēng)力影響通過(guò)沿八方向向量分解表達(dá)
????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;
????%%?每次實(shí)驗(yàn)賦初值
????flag=0;
????for?l=1:10%對(duì)每個(gè)蔓延概率,進(jìn)行十次實(shí)驗(yàn),記錄“燒光”的次數(shù)
????????set(gcf‘DoubleBuffer‘‘on‘);
????????I=randi(2M)-1;%Inside森林矩陣
????????I(randi(M^2))=2;
????????D=ones(M+2M+23);%Draw畫(huà)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)]);%%時(shí)間記錄
????????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;
??
評(píng)論
共有 條評(píng)論