projetos:divfuncional:restrito:marcel:modelos

Modelos

### MODETROP

## OBJETIVO: criar modelo em que sobrevivência e crescimento dependam 
# da quantidade de recursos e sejam demandas conflitantes e que assume
# competição assimétrica entre os indivíduos


## SOBREVIVÊNCIA x CRESCIMENTO
# Espécies de crescimento rápido (ECR) sempre crescem mais do que espécies
# de crescimento lento (ECL), no entanto, tem maior chance de morrerem em
# ambientes hostis, pois as mesmas características que lhes permitem crescer
# mais rápido, tornam-nas mais frágeis a estresses ambientais.

par(mfrow=c(1,2))
curve(1/(1+exp(-(x-1))),from=0,to=15,col=rainbow(10)[1],ylim=c(0,1),
	xlab="[recurso]",ylab="Probabilidade de sobrevivência",font.lab=2)
for(i in 2:10){curve(1/(1+exp(-(x-i))),add=TRUE,col=rainbow(10)[i])}


curve(sqrt(x),from=0,to=15,col=rainbow(10)[1],ylim=c(0,10),
	xlab="[recurso]",ylab="Taxa de crescimento",font.lab=2)
for(i in 2:10){curve(sqrt(x*i),add=TRUE,col=rainbow(10)[i])}

# 1/(1+exp(-(x-1:10)/1)) # prob. de sobrevivência, onde x = [recurso]
# sqrt(x*(1:10)) # taxa de crescimento, onde x = [recurso]

### FUNÇÃO

# S # número de espécies
# t # passos no tempo
#abi # abundâncias iniciais de cada espécie
#dtr # disponibilidade total do recurso
#sobre # [recurso] em que a sp i tem taxa de sobrevivência de 50%
#conv # valor de conversão de parâmetro de sobrevivência para parâmetro de crescimento
#cresc # [recurso] em que a sp i cresce

modetrop=function(S=10,t=10,abi=rep(.001,10),dtr=100,sobre=1:10,conv=1){

casas=matrix(ncol=t+2,nrow=S)
casas[,1]=sobre
casas[,2]=abi

sob=matrix(ncol=t,nrow=S)
cre=matrix(ncol=t,nrow=S)
dir2=matrix(ncol=t,nrow=S)

for(j in 3:(t+2)){

dir=dtr*casas[,(j-1)]/sum(casas[,(j-1)])

dir2[,j-2]=dir

for(i in 1:S){

	casas[i,j]=sample(1:0,1,prob=c(1/(1+exp(-(dir[i]-sobre[i])/1)),1-1/(1+exp(-(dir[i]-sobre[i])/1))))
	
	if(casas[i,j]==1) casas[i,j]=casas[i,(j-1)]+sqrt(dir[i]*cresc[i]) else casas[i,j]=casas[i,(j-1)]

	sob[i,j-2]=1/(1+exp(-(dir[i]-sobre[i])/1))

	cre[i,j-2]=sqrt(dir[i]*cresc[i])
	}
}

return(list(sob,cre,dir2,casas))

}

a=modetrop(dtr=10,t=10000)
b=a[[4]]
plot(0:10000,b[1,2:10002],type="l",ylab="Área basal",xlab="Tempo",col=rainbow(10)[1])
for(i in 2:10){points(0:10000,b[i,2:10002],col=rainbow(10)[i],type="l")}
  • /home/adalardo/farm/labtrop/data/pages/projetos/divfuncional/restrito/marcel/modelos.txt
  • Última modificação: 2026/03/27 13:51
  • por 127.0.0.1