2.1 La rutina que a continuación se presenta, tiene asignados los valores de tiempo (t), tasa de crecimiento (r) y población inicial (No).
t=10;
r=3;
No=20;
tp=(0:t-1);
Nt=zeros(t,1);
for j=1:t
Nt(j)=No;
Nt;
tablero=zeros(64,1);
for i=1:No
x=randi(64);
tablero(x)=tablero(x)+1;
endfor
s=tablero(2:2:64);
fexp=sum(s);
fexp2=fexp*r;
No=fexp2;
endfor
plot(tp,Nt)
xlabel ("t tiempo");
ylabel ("Nt");
title ("Crecimiento exponencial Nt vs tiempo");
t_vs_Nt=[tp',Nt]
2.2 En la siguiente rutina los valores de tiempo (t), tasa de crecimiento (r) y población inicial (No), son asignados por el usuario. Se recomienda usar tasas iguales o mayores a 3.
t = input('Ingrese el numero de tiempos, t: ');
r = input('Ingrese la tasa de crecimiento, r: ');
No = input('Ingrese la población inicial, No: ');
tp=(0:t-1);
Nt=zeros(t,1);
for j=1:t
Nt(j)=No;
Nt;
tablero=zeros(64,1);
for i=1:No
x=randi(64);
tablero(x)=tablero(x)+1;
endfor
s=tablero(2:2:64);
fexp=sum(s);
fexp2=fexp*r;
No=fexp2;
endfor
plot(tp,Nt)
xlabel ("t tiempo");
ylabel ("Nt");
title ("Crecimiento exponencial Nt vs tiempo");
t_vs_Nt=[tp',Nt]
2.3 Exponencial más soluciones.
printf("Modelo exponencial\n");
t=10;
f=3;
n=100;
tp=(0:t-1);
Nt=zeros(t,1);
for j=1:t
Nt(j)=n;
Nt;
tablero=zeros(64,1);
for i=1:n
x=randi(64);
tablero(x)=tablero(x)+1;
endfor
s=tablero(2:2:64);
fexp=sum(s);
fexp2=fexp*f;
n=fexp2;
endfor
plot(tp,Nt)
xlabel ("pt");
ylabel ("Nt");
title ("Crecimiento exponencial Nt vs pt");
t_vs_Nt=[tp',Nt]
disp('Seleccione la solución de su elección');
disp('1:Solución análitica con paso h');
disp('2:Solución analitica y modelo exponencial');
s1 = input('Seleccione el modelo: ');
switch s1
case 1
#Solución analitica con paso de tamaño h
h=0.001;
t1=0:h:10;
p=length(t1);
LnNt=log(Nt);
it=polyfit(tp',LnNt,1);
No=exp(it(2));
for i=1:p
PmodeloExp(i)=No*(exp((it(1))*t1(i)));
end
t_vs_PmodeloExp=[t1',PmodeloExp'];
plot(t1,PmodeloExp,tp,Nt)
case 2
#Programa para modelar exponencial
#con datos del frijolarium
c=length(Nt)-1;
c2=length(Nt);
#DeltaP=zeros(c,1)
for i=1:c
DeltaP(i)=Nt(i+1)-Nt(i);
end
DeltaP;
#IcP=zeros(c,1);
for i=1:c
IcP(i)=DeltaP(i)/Nt(i+1);
end
IcP;
Res=[DeltaP',IcP']
r=(sum(IcP))/c;
for i=1:c2
Pmodelo(i)=Nt(1)*((1+r)^tp(i));
end
Pmodelo1=Pmodelo';
Modelo_t_Pmodelo=[tp',Pmodelo1];
#plot(tp,Pmodelo,tp,Nt)
#Modelo exponencial Pt=P0*e^rt
for i=1:c2
Pmodeloexp(i)=Nt(1)*((exp(r*tp(i))));
end
Res2=[Pmodelo1,Pmodeloexp']
plot(tp,Pmodeloexp,tp,Nt,tp,Pmodelo)
endswitch