Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
exercicios:exe3iv [2012/05/08 22:26] – adalardo | exercicios:exe3iv [2024/01/09 18:18] (atual) – edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
- | ====== | + | ====== |
- | {{: | + | |
- | Vamos usar a função do livro do Gotelli (equação 2.1, pag. 28 ) | + | ==== Crescimento Discreto Análogo ao Modelo Logístico ==== |
+ | Abaixo apresentamos o código do crescimento discreto análogo ao crescimento logístico((não | ||
< | < | ||
- | # função de crescimento logístico | + | ############################ |
- | clogistico< | + | ### Crescimento Discreto ### |
+ | ############################ | ||
+ | |||
+ | discrLog=function(N0=1, rd=0.05, K=100, tmax=100) | ||
{ | { | ||
- | n<-y[1] | + | resulta=rep(N0, |
- | r<-parms[1] | + | for(t in 2:tmax) |
- | K<-parms[2] | + | { |
- | dN.dt<-r* n* (1- n/K) | + | lastN=resulta[t-1] |
- | return(list(c(dN.dt))) | + | resulta[t]=lastN+rd*lastN*(1-lastN/K) |
+ | } | ||
+ | return(resulta) | ||
} | } | ||
- | </ | ||
- | Vamos agora especificar os parâmetros dessa função | ||
- | parametros=c(r=1,K=100) | + | pop2< |
- | | + | plot(1:100,pop2, pch=16, col=" |
- | st=seq(0.1,10, by=0.1) | + | lines(1:100, pop2, lty=2, cex=0.8) |
- | Agorar utilizando o pacotes **deSolve** para a integração numérica dessa função | ||
- | < | ||
- | library(deSolve) | ||
- | res< | ||
- | str(res) | ||
</ | </ | ||
- | Agora só falta fazer o gráfico: | + | <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, | ||
+ | * Há alguma estocasticidade associada a esse modelo? Como comprovar? | ||
+ | </ | ||
+ | ==== Um atrator no crescimento logístico discreto ==== | ||
+ | {{:exercicios: | ||
+ | Vamos mostrar como a ordem subjacente a um comportamento caótico pode ser facilmente reconhecida através de uma representação gráfica. | ||
- | <code> | + | <box red 70%|Exercício: |
- | plot(res[,1], res[,2], main=" | + | Um pseudocódigo explicita os passos para elaborar uma tarefa, abaixo nossa dica para realizar o exercício: |
- | legend("topleft", | + | - 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: | ||
+ | - Criar o gráfico Nt x Nt-1 com as sequencias produzidas anteriormente | ||
+ | - Ligar os pontos do segundo gráfico | ||
+ | </ | ||
+ | ==== Bifurcação do Atrator ==== | ||
- | ===== Exercícios | + | 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. |
- | * 1. Faça o gráfico de duas populações | + | 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, | ||
+ | rd.s | ||
+ | r1=sapply(rd.s, | ||
+ | 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(" | ||
+ | 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=" | ||
- | ====== 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, | ||
- | { | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | y0 = c(1) | ||
- | prmt=c(rmedio=0.1, | ||
- | st=seq(0.1, | ||
- | res.clogEst= ode(y=y0, | ||
- | plot(res.clogEst[, | ||
</ | </ | ||
- | ====== 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, | ||
- | { | ||
- | if (t < parms[3]) | ||
- | lag <- parms[4] | ||
- | else | ||
- | lag <- pastvalue(t - parms[3]) | ||
- | |||
- | n<-lag | ||
- | r< | ||
- | K< | ||
- | dN.dt< | ||
- | return(list(c(dN.dt))) | ||
- | } | ||
- | #defina os valores da iniciais da população e os parâmetros | + | <box 70% red| Perguntas > |
- | | + | |
- | | + | |
+ | * Descreva brevemente os padrões identificados nesse gráfico. | ||
- | # solucione a derivação numérica com retardo | + | </box> |
- | pop <- dde(y=N0, | + | |
- | # veja a estrutura do objeto que guardou os resultados | + | |
- | str(pop) | + | |
- | # faça um gráfico | + | |
- | plot(pop$t, pop$y1, type=" | + | |
- | </ |