Função para simular populações com Crescimento logístico discreto e contínuo
Argumentos definidos:
cresc.log1= function(No, tmax, r, k) { resulta=matrix(0,ncol=3,nrow=tmax) resulta[,1]=1:tmax resulta[1,c(2,3)]=No for (i in 2:tmax) { resulta[i,2]=k/(1+((k-resulta[(i-1),2])/resulta[(i-1),2])*exp(-r)) resulta[i,3]=resulta[(i-1), 3]+(r*resulta[(i-1),3])*(1-(resulta[(i-1),3]/k)) if (resulta[i, 3]<1) {resulta[i, 3]=0} } plot(resulta[,1],resulta[,2],ylim=c(0,max(resulta[,2:3])),type="l",lty=2,xlab="tempo (t)", ylab="tamanho da população (N)") ## criação do gráfico par(mfrow=c(1,1)) lines(resulta[,1],resulta[,3]) legend("bottomright",c("crescimento cont. deterministico","crescimento cont. estocastico"),lty=2:1,bty="n") return(resulta) } #cresc.log1(10,200,0.05,80) #cresc.log1(10,200,1,80) #cresc.log1(10,200,2.5,80) #cresc.log1(10,200,2,80) #cresc.log1(10,200,3,80) ###################################### cresc.log2= function(No, tmax, r, k) { resulta=matrix(0,ncol=3,nrow=tmax) resulta[,1]=1:tmax resulta[1,c(2,3)]=No for (i in 2:tmax) { resulta[i,2]=k/(1+((k-resulta[(i-1),2])/resulta[(i-1),2])*exp(-r)) resulta[i,3]=resulta[(i-1), 3]+(r*resulta[(i-1),3])*(1-(resulta[(i-1),3]/k)) if (resulta[i, 3]<1) {resulta[i, 3]=0} } par(mfrow=c(1,2)) plot(resulta[,1],resulta[,3],type="l",lty=2,xlab="tempo (t)", ylab="tamanho da população (N)") plot(resulta[1:tmax-1,3],resulta[2:tmax,3],type="l",col="gray",xlab="N[t]",ylab="N[t+1]") points(resulta[1:tmax-1,3],resulta[2:tmax,3],pch=20) } #cresc.log2(10,200,0.05,80) #cresc.log2(10,200,2.8,80)
Retirar o .pdf