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.
</box>
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:
</box>
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 >
</box>