Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
mod1:mat_apoio:meta_chuva [2010/08/17 21:00] adalardomod1:mat_apoio:meta_chuva [2024/01/11 15:21] (atual) – edição externa 127.0.0.1
Linha 14: Linha 14:
 onde <m14>p_i</m> é a probabilidade de imigração ou colonização, <m14>p_e</m> é a probabilidade de extinção e <m14>f</m> é a fração de manchas ocupadas (número de manchas ocupadas / número total de manchas). onde <m14>p_i</m> é a probabilidade de imigração ou colonização, <m14>p_e</m> é a probabilidade de extinção e <m14>f</m> é a fração de manchas ocupadas (número de manchas ocupadas / número total de manchas).
  
-Em primeiro lugar, vamos estabelecer a probabilidade de colonização de manchas vazias (pi), a probabilidade de extinção em manchas ocupadas (pe) e a fração inicial de manchas ocupadas (fi) como 30%, 15% e 50%, respectivamente.+Em primeiro lugar, vamos estabelecer a probabilidade de colonização de manchas vazias (pi), a probabilidade de extinção em manchas ocupadas (pe) e a fração inicial de manchas ocupadas (fi) como 30%, 15% e 40%, respectivamente.
 <code> <code>
 pi=0.3 pi=0.3
Linha 59: Linha 59:
 Calma, não se assuste. O monstrinho abaixo vai tratar apenas das manchas que estavam ocupadas no tempo inicial. Calma, não se assuste. O monstrinho abaixo vai tratar apenas das manchas que estavam ocupadas no tempo inicial.
 <code> <code>
-sum(paisagem[,,1]) # numero de manchas ocupadas no tempo 1+sum(paisag[,,1]) # numero de manchas ocupadas no tempo 1
 paisag[,,2][paisag[,,1]==1]<-sample(c(0,1),sum(paisag[,,1]),replace=T,prob=c(pe,1-pe)) paisag[,,2][paisag[,,1]==1]<-sample(c(0,1),sum(paisag[,,1]),replace=T,prob=c(pe,1-pe))
 paisag[,,2] paisag[,,2]
Linha 147: Linha 147:
 metapop=function(tf,c,l,fi,pi,pe){ metapop=function(tf,c,l,fi,pi,pe){
  paisag=array(0,dim=c(l,c,tf))  paisag=array(0,dim=c(l,c,tf))
- paisag[,,1]=matrix(sample(c(1,0),c*l,prob=c(fi,1-fi), replace=T),l,c)+        nmanchas=c*l 
 + paisag[,,1]=matrix(sample(c(1,0),nmanchas,prob=c(fi,1-fi), replace=T),l,c)
  resultado=numeric()  resultado=numeric()
  for(t in 2:tf){  for(t in 2:tf){
-        paisag[,,t][paisag[,,(t-1)]==1]<-sample(c(0,1),sum(paisag[,,1]),replace=T,prob=c(pe,1-pe)) +        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),c*l-sum(paisag[,,1]),replace=T,prob=c(1-pi,pi))+        paisag[,,t][paisag[,,(t-1)]==0]<-sample(c(0,1),c*l-sum(paisag[,,(t-1)]), replace=T, prob=c(1-pi,pi))
         resultado[t-1]=sum(paisag[,,t])/(c*l)         resultado[t-1]=sum(paisag[,,t])/(c*l)
        }        }
Linha 205: Linha 206:
 Para vocês que chegaram vivos até aqui, uma recompensa. Rode os comandos abaixo e descubra: Para vocês que chegaram vivos até aqui, uma recompensa. Rode os comandos abaixo e descubra:
 <code> <code>
-metapop2=function(tf,c,l,fi,pi,pe){ + 
- paisag=array(0,dim=c(l,c,tf)+anima=function(dados){ 
- paisag[,,1]=matrix(sample(c(1,0),c*l,prob=c(fi,1-fi), replace=T),l,c+        x11() 
- resultado=numeric() + for(i in 1:dim(dados)[3]
- for(t in 2:tf){ +        { 
-        paisag[,,t][paisag[,,(t-1)]==1]<-sample(c(0,1),sum(paisag[,,1]),replace=T,prob=c(pe,1-pe)+ image(dados[,,i], main=("Ocupação de manchas"),sub=paste("simulação no."i), col=c("white","red"), bty="n",xaxt='n',yaxt='n'
-        paisag[,,t][paisag[,,(t-1)]==0]<-sample(c(0,1),c*l-sum(paisag[,,1]),replace=T,prob=c(1-pi,pi)+ grid(dim(dados)[1],dim(dados)[2]) 
-        resultado[t-1]=sum(paisag[,,t])/(c*l+ Sys.sleep(.2)
-       } +
- return(paisag)+
  }  }
 +}
 +
 +
 +simula1<- metapop(20,10,10,1.0, 0.4,0.2)
 +anima(simula1)
  
-anima=function(tf,c,l,fi,pi,pe){ 
- dados=metapop2(tf,c,l,fi,pi,pe) 
- for(i in 1:tf){ 
- image(dados[,,i], main=("Ocupação de manchas"),col=c("white","red"),bty="n",xaxt='n',yaxt='n') 
- grid(c,l) 
- Sys.sleep(.5) 
- } 
- } 
  
-anima(tf=25,c=10,l=10,fi=.1,pi=0.1,pe=0.1) 
 </code> </code>
  
-Aqui você também pode mexer nos parâmetros e ver, literalmente, que acontece:+Para fazer rodar a animação você precisa apenas salvar resultado da função //metapop//  e chamar esse objeto na função anima. Para modificar parmâmetros do modelo é só rodar outra simulação.
 <code> <code>
-anima(tf=25,c=100,l=100,fi=.01,pi=0.2,pe=0.5)+simula2=metapop(tf=25,c=100,l=100,fi=.01,pi=0.2,pe=0.5
 +anima(simula2)
 </code> </code>
  
mod1/mat_apoio/meta_chuva.1282078824.txt.gz · Última modificação: 2024/01/11 15:21 (edição externa)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0