Documente Academic
Documente Profesional
Documente Cultură
Simulator Automate Celulare Pentru Evolutia Unei Insule Vulcanice PDF
Simulator Automate Celulare Pentru Evolutia Unei Insule Vulcanice PDF
Este propusa o aplicatie care simuleaza evolutia unei insule de origine vulcanica pe o
anumita perioada de timp. Problema care se pune este legata atat de curgerea lavei la o
eruptie, cat si de inaltarea nivelului insulei si formarea reliefului. Dupa ce vulcanul se stinge,
se poate observa procesul de eroziune asupra muntilor formati in era anterioara.
daca celulele din jurul celulei curente sunt mai inalte (acoperite de lava sau sub
actiunea de incretire determinata de miscarea placilor tectonice), atunci celula curenta se va
inalta pana la nivelul celei mai inalte celule adiacente
Astfel se obtine:
ics = (a(j,k+1) >= a(j,k)) + (a(j,k-1) >=a(j,k)) + (a(j-1,k) >= a(j,k))+ (a(j+1,k) >= a(j,k)) + (a(j+1,k+1)
>= a(j,k)) + (a(j-1,k-1) >= a(j,k)) + (a(j-1,k+1) >= a(j,k)) + (a(j+1,k-1) >=a (j,k))
Pas 2. daca cel putin 8 dintre ele sunt mai inalte ics = (ics>=8) cauta cea mai inalta celula din jur
Initializare: fisierul init.mat contine harta initiala ce trebuie incarcata in Workspace Matlab
inainte de rulare;
Rulare: fisierul island_lava_flow.m reprezinta aplicatia; este indeajuns a rula acest fisier dupa
incarcarea hartii in Workspace.
%the folloing program simulates the 'growth' and 'decay' of an island due to underwater volcano
activity.
% (c) M. Patrascu
%---------------------------
%controls:
%---------------------------
%define the plot button
plotbutton=uicontrol('style','pushbutton',...
'string','Play.', ...
'fontsize',12, ...
'position',[100,400,50,20], ...
'callback', 'run=1;');
im = image(a);
set(im, 'erasemode', 'none')
%Main loop
stop= 0; %wait for a quit button push
run = 0; %wait for play
freeze = 0; %wait for freeze
while (stop==0)
if (run==1)
i=i+1; %as time passes...
if (i<=200)
for (j=2:99)
for (k=2:99)
%whenever a vulcano erupts
ics = (a(j,k+1) >= a(j,k)) + (a(j,k-1) >= a(j,k)) + (a(j-1,k) >= a(j,k)) +...
(a(j+1,k) >= a(j,k)) + (a(j+1,k+1) >= a(j,k)) + (a(j-1,k-1) >= a(j,k)) +...
(a(j-1,k+1) >= a(j,k)) + (a(j+1,k-1) >= a(j,k));
ics = ics>=8;
%humans may interact, or mother nature, or some other foces unkown to this application:
var = var + randn(100)/100;
else
var = var;
freeze = 1;
end
a = var;
set(im, 'cdata', a)
pause(.1)
%update the step number for display
stepnumber = 1 + str2num(get(number,'string'));
set(number,'string',num2str(stepnumber))
end
if (freeze==1)
run = 0;
freeze = 0;
end
drawnow
end
daca celulele din jurul celulei curente sunt mai joase (afectate de vant si alti agenti de
eroziune), atunci celula curenta se va eroda pana la nivelul celei mai inalte cellule adiacente
Astfel se obtine:
de completat
Pas 2. daca cel putin 8 dintre ele sunt mai joase si nu sunt acoperite de apa adanca ics = (ics>=8)
&(a(j,k)>=15) cauta media celei mai inalte si a celei mai joase celule adiacente:
de completat
Mod de lucru:
1. Se implementeza programul anterior ce simuleaza un automat celular pentru evolutia unei
insule vulcanice. 30%
2. Se modifica regulile pentru perioada de eroziune a formatiunilor muntoase in acest caz. 70%