最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【元胞自動(dòng)機(jī)】基于元胞自動(dòng)機(jī)3D森林火災(zāi)模型matlab源碼

2021-08-30 00:18 作者:Matlab工程師  | 我要投稿

?一、簡介

元胞自動(dòng)機(jī)(CA)是一種用來仿真局部規(guī)則和局部聯(lián)系的方法。典型的元胞自動(dòng)機(jī)是定義在網(wǎng)格上的,每一個(gè)點(diǎn)上的網(wǎng)格代表一個(gè)元胞與一種有限的狀態(tài)。變化規(guī)則適用于每一個(gè)元胞并且同時(shí)進(jìn)行。典型的變化規(guī)則,決定于元胞的狀態(tài),以及其( 4 或 8 )鄰居的狀態(tài)。
1 對元胞自動(dòng)機(jī)的初步認(rèn)識
元胞自動(dòng)機(jī)(CA)是一種用來仿真局部規(guī)則和局部聯(lián)系的方法。典型的元
胞自動(dòng)機(jī)是定義在網(wǎng)格上的,每一個(gè)點(diǎn)上的網(wǎng)格代表一個(gè)元胞與一種有限的狀
態(tài)。變化規(guī)則適用于每一個(gè)元胞并且同時(shí)進(jìn)行。
2 元胞的變化規(guī)則&元胞狀態(tài)
典型的變化規(guī)則,決定于元胞的狀態(tài),以及其( 4 或 8 )鄰居的狀態(tài)。
3 元胞自動(dòng)機(jī)的應(yīng)用
元胞自動(dòng)機(jī)已被應(yīng)用于物理模擬,生物模擬等領(lǐng)域。
4 元胞自動(dòng)機(jī)的matlab編程
結(jié)合以上,我們可以理解元胞自動(dòng)機(jī)仿真需要理解三點(diǎn)。一是元胞,在matlab中可以理解為矩陣中的一點(diǎn)或多點(diǎn)組成的方形塊,一般我們用矩陣中的一點(diǎn)代表一個(gè)元胞。二是變化規(guī)則,元胞的變化規(guī)則決定元胞下一刻的狀態(tài)。三是元胞的狀態(tài),元胞的狀態(tài)是自定義的,通常是對立的狀態(tài),比如生物的存活狀態(tài)或死亡狀態(tài),紅燈或綠燈,該點(diǎn)有障礙物或者沒有障礙物等等。

二、源代碼

clear all; n=300; H=cell2mat(struct2cell(load('Z-HIGH.mat'))); %讀取數(shù)據(jù) S=cell2mat(struct2cell(load('Z-SHI.mat'))); T=cell2mat(struct2cell(load('Z-TEM.mat'))); W=cell2mat(struct2cell(load('Z-WIN.mat'))); h=0.08441; s=-0.07848; t=0.08785; w=0.08332; load lll.dat x=lll(:,1);y=lll(:,2);z=lll(:,3); [X, Y, Z1]=griddata(x,y,z,linspace(min(x),max(x),n)',linspace(min(y),max(y)',n),'cubic'); A=max(max(Z1));B=min(min(Z1));%A=A(1,1);B=B(1,1); Z=(Z1-B)./(A-B); Z=Z.*1000; figure(1) cdata=cat(3,zeros(size(X)),ones(size(X)),zeros(size(X)));%綠色 surf(X,Y,Z,cdata); T1=h.*H+s.*S+t.*T+w.*W; T1=flipdim(T1,1);%二維到三維的變化中會(huì)形成矩陣列顛倒 T2=ones(n);%隔離帶 R=0.85; for j=1:5 ? ?T2(50*j,:)=R; ? ?T2(50*j+1,:)=R; ? ?T2(50*j-1,:)=R; end for j=1:5 ? ?T2(:,50*j)=R; ? ?T2(:,50*j+1)=R; ? ?T2(:,50*j-1)=R; end [XX,YY]=find(T2==0.85) XX=X(1,XX); YY=Y(YY,1); T=mapminmax(T1,0.6,1).*T2;%影響因素歸一化 pspread=0.63; pgrowth=0; ul=[n,1:n-1]; dr=[2:n,1]; ? hang=175; lie=175; veg=2*ones(n); veg(hang,lie)=1 for i=1:300 e(i,1)=length(find(veg==0)); if(e(i,1)>81000) break else h1=veg; ? h2=h1; ? h3=h2; h4=h3; ? h1(n,1:n)=0; ? h2(1:n,n)=0; h3(1:n,1)=0; h4(1,1:n)=0; ? sum=(h1(ul,:)==1)+(h2(:,ul)==1)+(h3(:,dr)==1)+(h4(dr,:)==1); sum1=((sum==1).*(1-(1-pspread))); sum2=((sum==2).*(1-(1-pspread)^2)); sum3=((sum==3).*(1-(1-pspread)^3)); ? sum4=((sum==4).*(1-(1-pspread)^4)); s=sum1+sum2+sum3+sum4; veg=2*(veg==2)-((veg==2)&((sum>0)&(rand(n,n)<s.*T)))+2*((veg==0)&rand(n,n)<pgrowth); ? [xx,yy]=find(veg==1); zz=diag(Z(xx(:,1),yy(:,1))); xx=X(1,xx); yy=Y(yy,1); % if((i>100)&(length(zz)<10)) % ? ? break; % else hold on; plot3(yy,xx,zz,'r.'); % [xx,yy]=find(veg==1); % [xx1,yy1]=find(veg==0); % zz=Z(xx,yy); % % zz1=Z(xx1,yy1); % hold on; % plot3(xx,yy,zz,'r.'); % % hold on; % % plot3(xx1,yy1,zz1,'r.'); xlabel('橫坐標(biāo)'); ylabel('縱坐標(biāo)'); zlabel('海拔'); % figure(2) % contour(X,Y,Z,10)%畫10條等高線 % plot() drawnow title(i) end end % end xlabel('經(jīng)度'); ylabel('緯度'); zlabel('海拔'); figure(2) surf(X,Y,T);%概率分布圖 xlabel('經(jīng)度'); ylabel('緯度'); title('蔓延率'); shading interp; figure(3)

三、運(yùn)行結(jié)果

在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


在這里插入圖片描述


【元胞自動(dòng)機(jī)】基于元胞自動(dòng)機(jī)3D森林火災(zāi)模型matlab源碼的評論 (共 條)

分享到微博請遵守國家法律
宣城市| 衡南县| 阳朔县| 石城县| 饶河县| 宁海县| 班玛县| 崇明县| 交城县| 明溪县| 邵阳市| 滁州市| 平凉市| 兴安县| 拉孜县| 孟津县| 长顺县| 冀州市| 日照市| 宁晋县| 太仆寺旗| 沧源| 孙吴县| 天门市| 嵩明县| 营口市| 聂拉木县| 林周县| 汉源县| 汉沽区| 甘谷县| 普安县| 尚义县| 廉江市| 灵石县| 岑溪市| 泗水县| 两当县| 疏勒县| 千阳县| 江阴市|