====== 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ístico((não é uma solução em tempo discreto)), 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) 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? ==== Um atrator no crescimento logístico discreto ==== {{:exercicios:caos.jpg?200 |}} 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. 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 ((dica: vc. pode usar a indexação "[-1]" )) - Produza a sequencia de valores do objeto caos de 2:último ((aqui vc. pode também indexar "[-X]", sendo X o valor da última posição do objeto)) - Criar o gráfico Nt x Nt-1 com as sequencias produzidas anteriormente - Ligar os pontos do segundo gráfico ==== 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) * O resultado parece estranho? * Rode novamente aumentando o //**nrd**// para 200 * Descreva brevemente os padrões identificados nesse gráfico.