PABLETE EN LA RED
Página dedicada a Ana Rosa Fernández Sánchez

4. LISTADOS DE LOS PROGRAMAS


4.1. PROGRAMAS COMUNES

Programa principal(princip)

clc; disp ('1.- Generar matriz aleatoria') disp ('2.- Leer desde fichero A.dat') o=input ('Introduce opción '); if o==1 n=input ('Introduce la dimension '); A=crear(n); else load A.dat; end clc; MIT=input('Introduce el número máximo de iteraciones '); KIT=input('Introduce el número de iteraciones entre dos pausas'); J=1; spy(A) pause; for I=1:MIT A=const(A); if J==KIT spy(A); pause; J=1; else J=J+1; end end spy (A);

función crear(n)

     Dicho programa crea una matriz aleatoria de ceros y unos. Utiliza como parámetro la dimensión de la matriz que genera, a la que llama n.

function A=crear(n) A=rand (n); for I=1:n for J=1:n if A(I,J)>0.5 A(I,J)=0; else A(I,J)=1; end end end

Función const(A)

     A es la matriz que representa el espacio celular. La función const va pasando elemento a elemento de A y forma la matriz auxiliar AUX, que representa las celdas adyacentes a la actual. Evalúa la función f sobre cada uno de ellos y actualiza el elemento correspondiente de A. cuando se termina el proceso se ha realizado una iteración sobre A.

function B = const(A) B=A; D=size (A); for I=2:D(1)-1 for J=2:D(2)-1 for K=-1:1:1 for L=-1:1:1 AUX(K+2,L+2)=A(I+K,J+L); end end B(I,J)=f(AUX); end end


4.2. EL JUEGO DE LA VIDA

function y=f(A) m = A(2,1)+A(2,3); for I=1:2:3 for J=1:3 m = m+A(I,J); end end y=0; if m==3 y=1; else if m==2 y=A(2,2); end end


4.3. ESTRUCTURAS AUTOSEMEJANTES

Triángulo (Ejemplo 1)

function y=f(A) if A==0 y=0; else m = A(3,1)+A(3,2)+A(3,3); y=0; if m==1 y=1; else y=0; end end

Seudocopo de nieve (Ejemplo 2)

     En este caso, mostraremos aquí la f del probabilístico. La de los otros dos es la misma cambiando simplemente las probabilidades:

function y=f(A) if A(2,2)==1 y=A(2,2); else x=rand(1); if x>=0.5 m=A(1,1)+A(1,3)+A(3,1)+A(3,3); if m==1 y=1; else y=0; end else m=A(1,2)+A(3,2)+A(2,1)+A(2,3); if m==1 y=1; else y=0; end end end
4.4. TRIÁNGULO DE PASCAL

     En este caso la matriz se representa de modo distinto, así que no sólo cambia la función f sino también la principal:

Princip

clc; load A.dat; MIT=input('Introduce el número máximo de iteraciones '); KIT=input('Introduce el número de iteraciones entre dos pausas'); J=1; A pause; for I=1:MIT A=const(A); if J==KIT A pause; J=1; else J=J+1; end end A

Const

function B = const(A) B=A; D=size (A); for I=2:D(1)-1 for J=2:D(2)-1 for K=-1:1:1 for L=-1:1:1 AUX(K+2,L+2)=A(I+K,J+L); end end B(I,J)=f(AUX); end B(I,1)=A(I-1,2); B(I,D(2))=A(I-1,D(2)-1); end B(D(1),1)=A(D(1)-1,2); B(D(1),D(2))=A(D(1)-1,D(2)-1); for J=2:D(2)-1; B(D(1),J)=A(D(1)-1,J-1)+A(D(1)-1,J+1); end

Función f

function y=f(A) % Triangulo de Pascal if A(2,2)==0 y=A(1,1)+A(1,3); else y=A(2,2); end
4.5. REGLA ANTIMAYORÍA

función f

function y=f(A) m=A(2,1)+A(2,3); for I=1:2:3 for J=1:3 m=m+A(I,J); end end y=0; if m>=1 if m<=4 y=1; end end


Visitar PABLETE en la Red...
Visitar [xtrasgu.org]...
Índice
Anterior
Siguiente

Trabajo realizado por Andrés García Mirantes
Página diseñada por Pablo López Cienfuegos
e-mail : [email protected]
Última modificación:  02 ENE 99