Funcion crecimiento fallida
Publicado por Marina (2 intervenciones) el 06/01/2017 21:47:36
Hola a todos,
Necesito realizar una función de crecimiento de 2 poblaciones siguiendo esta formula:
Teniendo en cuanta que sería en 100 periodos y los resutados habría que almacenarlos en un vector, todo simple pero el problema llega cuando uno de los valores(K) que tengo que introducir me sale también como un vector de 100 donde solo la 1 posición tiene valor y el resto cero(lo que explica que solo me salgan los 2 primeros números). Y realmente no se que más hacer, por si a alguien se le ocurre donde está el fallo. Gracias
Necesito realizar una función de crecimiento de 2 poblaciones siguiendo esta formula:
1
2
N1(t+1)=N1(t)+ (r1*N1(t)*(K-N1(t)-A*N2(t)))/K
N2 ( t + 1 ) = N2 ( t ) +( r2 N 2 ( t ) [ K - N2( t ) -B* N 1 ( t ) ] ) / K
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function [N]= CalcularCrecimientoPoblacion(No1,No2,r1,r2,K,A,B)
%Calcula, para cada instante de tiempo t (de 1 a 100) el tamaño de cada población.
% Argumentos de entrada:
% No1= Valor inicial de individuos poblacion 1 % No2= Valor inicial de individuos poblacion 2
% r1= Tasa de crecimiento poblacion 1 % r2= Tasa de crecimiento poblacion 2
% K= capacidades de carga de ambas poblaciones
% A= parámetros de competencia alfa % B= parámetros de competencia beta
% Argumento de salida:
% matriz= matriz bidimensional de 100 flas x 2 columnas que contienen el
% numero de individuos del instante 1 al 100 para ambas poblaciones
%Ejemplo de llamada: matrizpob= CalcularCrecimientoPoblacion(400,93,2.09,0.24,450,-0.92,-0.48)
%Periodos de tiempo que vamos a estudiar
tiempo=100;
%Vector donde vamos a almacenar la población en cada generación
v=[];
vec=[];
%Población inicial de las especies
N1(1)=No1;
N2(1)=No2;
%Calculamos la población a lo largo del tiempo según el crecimiento logístico
for t=1:tiempo-1
N1t=fix(N1(t)+ (r1*N1(t)*(K-N1(t)-A*N2(t)))/K);
v=[v,N1t];
N2t=fix(N2(t)+ (r2*N2(t)*(K-N2(t)-B*N1(t)))/K);
vec=[vec,N2t];
end
N=[N1(1),v;N2(1),vec];
N=N' %Matriz transpuesta de N. Resultado final
end
Valora esta pregunta
0