Variações do Modelo Logístico
Crescimento Discreto Análogo ao Modelo Logístico
Abaixo apresentamos o código do crescimento discreto análogo ao crescimento logístico1), como apresentado no livro do Gotelli(2007, eq. 2.4), e simulamos uma população:
############################
### Crescimento Discreto ###
############################
discrLog=function(N0=1, rd=0.05, K=100, tmax=100)
{
resulta=rep(N0,tmax)
for(t in 2:tmax)
{
lastN=resulta[t-1]
resulta[t]=lastN+rd*lastN*(1-lastN/K)
}
return(resulta)
}
pop2<-discrLog(N0=1, rd=0.05, K=100, tmax=100)
plot(1:100,pop2, pch=16, col="red",xlab="tempo (gerações)", ylab="Tamanho da população (N)", bty="l", cex.lab=1.2, cex.axis=1.2)
lines(1:100, pop2, lty=2, cex=0.8)
<box 70% red | Exercício Caos Total>
Assim como simulamos várias populações com tamanhos iniciais distintos, faça o mesmo simulando populações com crescimento discreto variando o rd variando de 1 a 3, com capacidade de suporte fixa (K=100) e N0=10.
Essas populações são estáveis?
Acontece o mesmo ao simular populações com crescimento contínuo?
O que acontece se mudarmos o K=50 ou a tamanho inicial da população, a trajetória da população se altera?
Há alguma estocasticidade associada a esse modelo? Como comprovar?
</box>
Um atrator no crescimento logístico discreto
Vamos mostrar como a ordem subjacente a um comportamento caótico pode ser facilmente reconhecida através de uma representação gráfica. Utilize o crescimento logístico discreto da projeção produzida acima, e represente N(t+1) contra N(t) em um gráfico. Tente primeiro com rd=0.05 e depois com rd=2.8.
<box red 70%|Exercício: Atrator >
Um pseudocódigo explicita os passos para elaborar uma tarefa, abaixo nossa dica para realizar o exercício:
Rodar a função criada no tópico anterior e guardar o resultado no objeto caos
Dividir o dispositivo gráfico em duas colunas
Criar o gráfico da projeção da população
Produza a sequencia do objeto cao1 do segundo valor até o último
2)
Produza a sequencia de valores do objeto caos de 2:último
3)
Criar o gráfico Nt x Nt-1 com as sequencias produzidas anteriormente
Ligar os pontos do segundo gráfico
</box>
Bifurcação do Atrator
Até agora analisamos o tamanho populacional em função do tempo. Vamos analisar o tamanho populacional agora em função da taxa de crescimento discreta (rd) no modelo logístico. Queremos aqui ver qual o tamanho que a população converge se variarmos apenas a taxa de crescimento.
Primeiro precisamos simular o crescimento populacional discreto para um conjunto de rd's e depois acertar os dados para compor um gráfico que nos mostre os valores de convergência da trajetória de cada população para diferentes rd's. Utilize o código abaixo.
N0=10
K=100
tmax=200
nrd=10
rd.s=seq(1,3,length=nrd)
rd.s
r1=sapply(rd.s, function(x){discrLog(N0=N0, rd=x, K=K,tmax=tmax)})
str(r1) ## veja a estrutura do arquivo;
r2=stack(as.data.frame(r1))
str(r2) ## veja como mudou!cada indice é relacionado à coluna antiga
names(r2)=c("N", "old.col")
r2$rd=rep(rd.s,each=tmax)
r2$tempo=rep(1:tmax, nrd)
res.bif=subset(r2, tempo>0.5*tmax) ## pegando apenas o tempos maiores onde a população já deve ter convergido
plot(N~rd, data=res.bif, pch=".", cex=2)
<box 70% red| Perguntas >
O resultado parece estranho?
Rode novamente aumentando o nrd para 200
Descreva brevemente os padrões identificados nesse gráfico.
</box>