Modelado y Simulación de Sistemas Complejos. Problemas Sesion 5
Enviado por tabique13 • 24 de Enero de 2016 • Práctica o problema • 687 Palabras (3 Páginas) • 432 Visitas
Modelado y Simulación de Sistemas Complejos
Máster en Ingeniería Matemática UC3M Curso 2012
Lino Gustavo Garza Gaona
Problemas Sesión 5
2. [Simulación]. El modelo EdŽn es uno de los modelos de crecimiento m‡s simples. Considere una ret’ cula cuadrada finita con condiciones de frontera libre, y suponga que, en el tiempo t, algunos sitios son ocupados mientras que otros son vaciados. La regla de crecimiento consiste en seleccionar aleatoriamen te un sitio vac’o, el vecino m‡s cercano de un sitio ocupado, y ocuparlo en el tiempo t + 1. Asuma que en t = 0, s—lo el sitio central de la ret’cula est‡ ocupado. De acuerdo a EdŽn, este proceso pudiera repre sentar razonablemente el crecimiento de bacterias o cultivos de cŽlulas de tejido que tienen restringido el movimiento. Por ejemplo, la lechuga de mar (Ulva lactuca) crece como una hoja de s ˚Olulas
Ulo dos c ˝de espesor en su periferia. Escribe un peque–o programa para generar grupos EdŽn.
Solución.
Para esta simulación consideramos el punto inicial ocupado y apartir de ahí, con cada paso de tiempo, aleatoriamente se genera una nueva bacteria en alguno de los sitios contiguos hasta que alguno de los puntos de frontera se alcance, entonces se detiene el crecimiento. El código para generar ese modelo es el siguiente
% Modelo Eden
close all ; clc ; clear
% Ponemos un color para la simulacion .
cc = [1 11; 01 0]; % Blanco y Verde .
colormap ( cc ) ;
set (0 , ’ defaultaxesfontsize ’ ,20) N = 150; %Tamano de la celda .
grid = ones (N,N); % Reticula donde "creceran" las celulas .
s = N / 2;
grid (s ,s) = 2; %Ponemos la celula inicial al centro de la reticula .
%La variable ’list ’ almacena los puntos que estan en el perimetro.
list (: ,1) = [s s −1]; % Estos son los puntos alrededor de la celula
list (: ,2) = [s s + 1]; % central .
list (: ,3) = [s −1 s]; %"
list (: ,4) = [s +1 s]; %"
Nper = 4; h = image (grid );
axis image
set (gca ,’xtick’ ,[],’xticklabel’ ,[],’ytick’ ,[],’yticklabel’ ,[])
% El cluster seguira creciendo hasta que se alcance uno de los bordes
%de la reticula .
while (all (grid (:,1) == 1) && all (grid (:,N)== 1) && ... all (grid (1,:) == 1) && all (grid (N,:) == 1)) r = ceil (rand () ∗ Nper ); % Escoge uno de los puntos vecinos aleatoriamente . x = list(1,r); y = list (2,r );
% Sacamos el punto seleccionado del perimetro .
list = [list (: ,1:r −1) list(:,r + 1: end )];
...