Vamos fazer uma função que produza os seguintes gráficos:
Usar estes valores inicialmente: No=610; r=2.99; K=600; l=1.007; varl=0.03; tmax=100
1) Para criar a função:
caosvstoc <- function(argumentos) {
2) Declarar matriz de três colunas para receber resultados
CSTOC <- matrix(NA, nrow=tmax, ncol=3)
3)Colocar tempo na primeira coluna
CSTOC[,1] <- 1:tmax
4) Colocar tamanho inicial na primeira linha da segunda e terceira colunas
CSTOC[1,2:3] <- No'
5) Colocar crescimento logístico discreto na segunda coluna e crescimento exponencial estocástico (também discreto) na terceira. Use o for
para fazer os cálculos.
for (t in 2:tmax) {
6) Como o crescimento exponencial discreto agora será estocástico é preciso criar um valor de lambda ao “aleatório” em cada rodada do for, use:
le <- rnorm(1,l,sqrt(varl))
7) As fórmulas são:
N(t) = N(t+1)+rd*N(t+1)*(1-N(t+1)/k)
Na equação 2.4, rd é a taxa de crescimento discreto; N(t-1) é o tamanho populacional no tempo t-1 (anterior); K é a capacidade de suporte; N(t) será o tamanho populacional no próximo tempo t. Salve o tamanho populacional no crescimento logístico na coluna 2 da matriz CSTOC.
N(t) = N(t-1)*le.
Onde, le = lambda estocástico.
Lembre-se de que se no crescimento estocástico o tamanho populacional for menor que 1, você deve substituir o valor por 0:
if (CSTOC[t,3]<1) {CSTOC[t,3] <- 0}
8) Salve o tamanho populacional no crescimento discreto estocástico na coluna 3 da matriz
9) Representação gráfica
''par(mfrow=c(2,2)) # gráficos em dois por dois, preencher por linhas''\\ ''#plot 1: projeção exponencial''\\ plot(??, ?? ,type="l",lty=1,xlab="tempo (t)", ylab="tamanho da população (N)",main="Exponencial estocástico")''\\ ''# plot 2: busca de atractor na projeção exponencial''\\ plot(??, ?? ,type="l",col="gray",xlab="N[t]",ylab="N[t+1]")''\\ points(??, ?? ,pch=20)''\\ ''# plot 3: projeção logística''\\ plot(??, ?? ,type="l",lty=1,xlab="tempo (t)", ylab="tamanho da população (N)", main="Logístico determinístico")''\\ ''# plot 4: Atrator''\\ plot(??, ?? ,type="l",col="gray",xlab="N[t]",ylab="N[t+1]")''\\ points(??, ??,pch=20)''\\
# Retornar matriz com os valores
return(CSTOC)
}
# Fim da função
10) Teste sua função com diferentes valores
caosvstoc(No=610, r=2.99, K=600, l=1.007, varl=0.03, tmax=100)