Essa é uma revisão anterior do documento!


Integração Numérica do Crescimento Logístico

  A regessão logística é uma equação diferencial ordinária. Podemos resolver essa equação para um dado intervalo de tempo utilizando integração numérica. A técnica consiste basicamente em transformar os passos infinitamente pequenos do cálculo (dx) em passos muito pequenos, porém finitos. O pacote deSolve do R contém a função ode que faz o serviço por nós! Abaixo descrevemos um função básica para integração numérica da função logística. Precisamos primeiro definir a função básica, no caso uma logística contínua. Vamos usar a função do livro do Gotelli (equação 2.1, pag. 28 )

# função de crescimento logístico 
clogistico<-function(tempo, y, parms)
{
n<-y[1]
r<-parms[1]
K<-parms[2]
dN.dt<-r* n* (1- n/K)
return(list(c(dN.dt)))
}

Vamos agora especificar os parâmetros dessa função

parametros=c(r=1,K=100)
N0= 1
st=seq(0.1,10, by=0.1)

Agorar utilizando o pacotes deSolve para a integração numérica dessa função

library(deSolve)
res<-ode(y=N0, times=st, clogistico, parms=parametros)
str(res)

Agora só falta fazer o gráfico:

plot(res[,1], res[,2], main="Crescimento Logístico", type="l", xlab="Tempo", ylab="N", col="red" )
legend("topleft", "N0=1;r = 1; K = 100", bty="n")

Exercícios

  • 1. Faça o gráfico de duas populações (a e b) com crescimento logístico, ambas com mesma taxa de crescimento(r=0,10) e mesma capacidade suporte (K= 100), porém com tamanhos iniciais diferentes (N0_a=5, N0_b=200).

Estocasticidade Ambiental

Vamos partir da equação logística acima e sua solução integração numérica para criar uma situação com estocasticidade ambiental. Nessa função teremos três parâmetros:

  • rmedio: uma taxa média do crescimento populacional
  • varr: uma variância do rmedio
  • K: capacidade de suporte
clogEst <- function(times,y, parms)
  {
   n<-y[1]
   r<-rnorm(1,mean=parms[1],sd=sqrt(parms[2]))
   K<-parms[3]
   dN.dt<-r* n* (1- n/K)
   return(list(c(dN.dt))) 
  } 
y0 = c(1)
prmt=c(rmedio=0.1, varr=0.1, K=10)
st=seq(0.1,200,by=0.01)
res.clogEst= ode(y=y0,times=st, func=clogEst,parms=prmt)
plot(res.clogEst[,1], res.clogEst[,2], type="l", col="red",lwd=2, xlab="tempo", ylab="y")

Crescimento Logístico com Retardo

  O crescimento logístico com retardo pode ter trajetórias muito complexas, como vimos nos modelos logísticos com crescimento discreto. Vamos simular algumas trajetórias para esses modelos contínuos com retardo. A solução numérica de uma equação diferencial não é trivial! Para tanto vamos usar o pacote PBSddsolve do R.

require(PBSddesolve)
clogDelay <- function(t,N,parms) 
{
	if (t < parms[3])
		lag <- parms[4]
	else
		lag <- pastvalue(t - parms[3])
		
	n<-lag
	r<-parms[1]
	K<-parms[2]
	dN.dt<-r* n* (1- n/K)
	return(list(c(dN.dt)))
}

#defina os valores da iniciais da população e os parâmetros
  N0= 10
  parametros=c(r=3.7,K=100, retardo=0.5, initial=N0)

# solucione a derivação numérica com retardo
pop <- dde(y=N0,times=seq(0,100,0.1),func=clogDelay ,parms=parametros)
# veja a estrutura do objeto que guardou os resultados
str(pop)
# faça um gráfico
plot(pop$t, pop$y1, type="l", col="red", xlab="tempo", ylab="Numero de indivíduos", main="Crescimento Logistico com retardo")
exercicios/exe3iv.1336515997.txt.gz · Última modificação: 2024/01/09 18:17 (edição externa)
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0