Ferramentas do usuário

Ferramentas do site


ecovirt:roteiro:metap_uma:metap_cir_old

ATENÇÃO: ESTA PÁGINA É UMA VERSÃO ANTIGA DO ROTEIRO E ESTÁ DESATIVADA, PARA ACESSAR O ROTEIRO ATUAL ACESSE ESTE LINK

Metapopulações com colonização interna - Roteiro em R

Ilhas dos Barbados - Reserva Biológica Poço das Antas. Foto: Ernesto Viveiros de Castro. http://www.biologia.ufrj.br/labs/lecp/linhas.htm

Podemos1) eliminar do modelo anterior o pressuposto de uma chuva de propágulos constante e fazer com que a colonização seja uma função do número de lugares ocupados. Em uma formulação simples desse modelo, a fonte de propágulos é unicamente interna (sistema fechado) e a probabilidade de colonização varia de forma linear à proporção de lugares ocupados.

Dessa forma, nosso modelo não terá mais uma probabilidade de colonização constante (pi), mas sim uma probabilidade de colonização dependente do número de manchas ocupadas:

$$p_i=if$$ ; onde i é uma constante que indica quanto aumenta a pi a cada nova mancha que é ocupada.

Portanto, quanto mais manchas ocupadas, maior a chance de colonização das manchas vazias. Substituindo pi na equação antiga temos:

$$\frac{df}{dt}=if(1-f)-p_ef$$

O cálculo da fração de manchas ocupadas no equilíbrio (F) também é modificado para:

$$F=1-\frac{p_e}{i}$$

Vamos verificar isto simulando esta situação. Como no exercício anterior, criamos uma função no R para gerar a simulação. Como antes, esta função simplesmente sorteia eventos de colonização e extinção em cada mancha a cada intervalo de tempo, segundo as regras do modelo. Em seguida ela retorna um gráfico e as matrizes de ocupação das manchas em cada instante de tempo.

meta.inter=function(tf,cl,ln,fi,i,pe){
	paisag=array(0,dim=c(ln,cl,tf))
	paisag[,,1]=matrix(sample(c(1,0),cl*ln,prob=c(fi,1-fi), replace=T),ln,cl)
	resultado=numeric()
	for(t in 2:tf){
		 pc=i*sum(paisag[,,t-1])/(cl*ln)
	       paisag[,,t][paisag[,,(t-1)]==1]<-sample(c(0,1),sum(paisag[,,t-1]),replace=T,prob=c(pe,1-pe))
	       paisag[,,t][paisag[,,(t-1)]==0]<-sample(c(0,1),cl*ln-sum(paisag[,,t-1]),replace=T,prob=c(1-pc,pc))
	       resultado[t-1]=sum(paisag[,,t])/(cl*ln)
	      }

	F=1-(pe/i)

	plot(1:tf,c(fi,resultado),type="l",xlab="Tempo",ylab="Fração de manchas ocupadas",
	ylim=c(0,1),main=paste("Colonização Interna","\n cl=",cl," ln=",ln," fi=",fi," i=",i," pe=",pe),font.lab=2,lwd=2)
	abline(h=F,col=2,lwd=2,lty=2)
	
      return(paisag)
	}

E agora você pode simular o modelo com os valores que escolher para os argumentos da função, como:

meta.inter(tf=100,cl=10,ln=10,fi=.1,i=1,pe=0.5)

Brinque um pouco com o modelo fazendo variar os parâmetros do modelo e pense nas seguintes perguntas:

  • Você consegue perceber alguma diferença nos resultados dos dois modelos (chuva de propágulos e colonização interna, mantidos iguais os parâmetros que eles têm em comum?
  • A posição de uma mancha na paisagem influencia a pc e a pe dessa mancha? Qual seria um modelo mais realista?
  • Por que há certas combinações de i e pe que não podem existir?
  • Qual o significado de um F negativo?

Para finalizar, uma última animaçãozinha, antes salvo o resultado de uma simulação em um objeto, por exemplo:

sim.int1 <- meta.inter(20,10,10,1, 0.4,0.2)

Agora passe a função abaixo para o programa

anima2=function(dados){
	tf=dim(dados)[3]
	for(i in 1:tf){
	image(dados[,,i], main=("Ocupação de manchas"),col=c("white","red"),bty="n",xaxt='n',yaxt='n')
	grid(dim(dados)[1],dim(dados)[2])
	Sys.sleep(.2)
	}
	}

Agora é só rodar a função acima com o resultado da simulação:

anima2(dados=sim.int1)

{{tag>R uma_população metapopulações colonização_interna}

1)
roteiro produzido pelo monitor Marcel Vaz a partir de material do curso de Ecologia de Populações do nosso programa de pós-graduação em ecologia
ecovirt/roteiro/metap_uma/metap_cir_old.txt · Última modificação: 2016/05/10 07:19 (edição externa)