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_explicito [2010/09/15 11:38] adalardomod1:mat_apoio:meta_explicito [2024/01/11 15:21] (atual) – edição externa 127.0.0.1
Linha 1: Linha 1:
 ====== Espacialmente Explicito ====== ====== Espacialmente Explicito ======
  
 +8-O Essa função está em construção... ainda precisa de trabalho. Estamos no caminho!
  
 <code> <code>
-meta.espacial=function(tf,c,l,fi,i,pe, pi)+meta.espacial=function(tf,c,l,fi,i,pe, pi, canto=FALSE)
 { {
 paisag=array(0,dim=c(l,c,tf)) paisag=array(0,dim=c(l,c,tf))
 nmanchas=c*l nmanchas=c*l
-paisag[,,1]=matrix(sample(c(rep(1,fi*nmanchas), rep(0,round((1-fi)*nmanchas)))), ncol=c)+  if(canto==TRUE) 
 +  { 
 +  paisag[1:round(l*fi),1:round(c*fi),1]=1 
 +  } 
 +  else 
 +  { 
 +  paisag[,,1]=matrix(sample(c(rep(1,fi*nmanchas), rep(0,round((1-fi)*nmanchas)))), ncol=c) 
 +  }
 resultado=numeric() resultado=numeric()
  for(t in 2:tf)  for(t in 2:tf)
Linha 21: Linha 29:
  dist.media=apply(dist,2,mean)  dist.media=apply(dist,2,mean)
  dist.max=sqrt(c^2+l^2)  dist.max=sqrt(c^2+l^2)
- dist.rel=dist.media/dist.max + dist.rel=(dist.max-dist.media)/dist.max 
- pi=dist.rel*(nocupa/nmanchas)+ pi.aj=pi*dist.rel
  paisag[,,t][paisag[,,(t-1)]==1]<-sample(c(0,1),nocupa,replace=T,prob=c(pe,1-pe))  paisag[,,t][paisag[,,(t-1)]==1]<-sample(c(0,1),nocupa,replace=T,prob=c(pe,1-pe))
- paisag[,,t][paisag[,,(t-1)]==0]<-rbinom(nvazio,1,prob=pi)+        paisag[,,t][paisag[,,(t-1)]==0]<-rbinom(nvazio,1,prob=pi.aj)
  resultado[t-1]=sum(paisag[,,t])/nmanchas  resultado[t-1]=sum(paisag[,,t])/nmanchas
  }  }
-F=1-(pe/i)+#F=1-(pe/i)
 plot(1:tf,c(fi,resultado),type="l",xlab="Tempo",ylab="Fração de manchas ocupadas", plot(1:tf,c(fi,resultado),type="l",xlab="Tempo",ylab="Fração de manchas ocupadas",
 ylim=c(0,1),main="Dinâmica de ocupação de manchas",font.lab=2,lwd=2) ylim=c(0,1),main="Dinâmica de ocupação de manchas",font.lab=2,lwd=2)
-abline(h=F,col=2,lwd=2,lty=2) +#abline(h=F,col=2,lwd=2,lty=2) 
-return(paisag)+invisible(paisag)
 } }
- 
 </code> </code>
  
Linha 42: Linha 49:
   * fi= proporção de manchas ocupadas no tempo inicial   * fi= proporção de manchas ocupadas no tempo inicial
   * pe= probabilidade de extinção   * pe= probabilidade de extinção
 +  * canto=manchas ocupadas no tempo inicial agrupadas ou não (TRUE/FALSE)
  
-Um exemplo: +Copie também a função abaixo para fazer a simulação animada.  
- +<code> 
-  meta.espacial(tf=10,c=10,l=10,fi=0.2,pe=0.4+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) 
 + } 
 + }
  
 +</code>
  
  
 +Pronto! Agora é só rodar o exemplo abaixo e depois mudar os parâmetros da primeira linha para rodar novas simulações:  
  
 +<code>
 +simula=meta.espacial(tf=100,c=10,l=10,fi=0.1,pe=0.2,pi=0.3, canto=TRUE)
 +x11()
 +anima2(simula1)
 +</code>
  
  
mod1/mat_apoio/meta_explicito.1284550686.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