Ferramentas do usuário

Ferramentas do site


ecovirt:roteiro:sucess:div_estab

Diversidade e estabilidade

computer_problems.png

Equilíbrio e estabilidade são conceitos muito importantes em ecologia, mas que comportam muitas definições. Uma das definições mais usadas foi trazida do ramo da física e da matemática chamada de análise de sistemas dinâmicos.

É esta abordagem que trouxe para a ecologia equações para descrever a dinâmica de populações, como a equação logística e o sistema de equações de Lotka-Volterra.

Há técnicas para avaliar se estes sistemas de equações têm pontos de equilíbrio, e se este equilíbrio é estável. Robert May (1972) usou estas ferramentas para demonstrar algo surpreendente: a estabilidade em redes tróficas diminui com o aumento de espécies e de complexidade.

Este exercício é uma repetição simplificada do procedimento usado por Robert May. O objetivo é que você compreenda os conceitos de equilíbrio e estabilidade usadas em sistemas dinâmicos, para diferenciá-los de outras definições de equilíbrio e estabilidade usadas na ecologia. Com isso você terá também os elementos para avaliar criticamente os resultados da análise de May (1972).

Para fazer esse roteiro pressupõe que você deve conhecer os critérios para análise de pontos de equilíbrio e sua estabilidade em modelos de uma população.

Se isso não é familiar a você, faça primeiro o roteiro de introdução à análise de estabilidade em sistemas dinâmicos.

Preparação: ambiente R

Este exercício é feito em R (R Core Team 2012), mas você não precisa conhecer a linguagem R, porque damos os comandos já prontos para executar. Eles estão reproduzidos nesta página, e também em um arquivo, abaixo. A única coisa que você precisa saber é como enviar os comandos escritos neste arquivo para o R. Para isso você pode copiar os comandos desta página e colar na linha de comando do R. Mas é bem mais prático usar o arquivo de comandos, ou script. Para isso, siga os seguintes passos:

  1. Instale em seu computador o ambiente R, com os pacotes adicionais deSolve e rootSolve. A página do R tem instruções de instalação. Veja também nosso roteiro de instalação do R.
  2. Crie um diretório em seu computador para os exercícios.
  3. Copie para este diretório os arquivos abaixo:
  4. Abra o R a partir do arquivo de comandos eq_lv_comandos.r. Certifique-se de que você está no diretório onde estão os arquivos.
  5. Os comandos neste arquivo estão na mesma ordem deste exercício. Siga o roteiro, enviando os comandos indicados a cada seção.
  6. Se você não sabe como enviar os comandos do arquivo faça este tutorial.
  7. Carregue no R os pacotes e funções que vamos usar neste exercício com os comandos:
library(deSolve)
library(rootSolve)
source("eq_funcoes.r")

Duas populações

No roteiro de análise de estabilidade vimos o critério de estabilidade local em sistemas dinâmicos

Um ponto de equilíbrio de uma dinâmica populacional é estável se a derivada da velocidade de crescimento da população for negativa nesse ponto.

O primeiro passo para compreender os resultados de Robert May é generalizar esse critério para mais de uma população que interagem.

Para entender isso vamos usar o sistema de equações de competição de Lotka-Volterra:

$V_1 \ = \ r_1 N_1 \left( 1 - \frac{N_1 - \alpha N_2}{K_1} \right)$

$V_2 \ = \ r_2 N_2 \left( 1 - \frac{N_2 - \beta N_1}{K_2} \right)$

Onde para as espécies 1 e 2:

  • $V_1$, $V_2$ são as velocidades de crescimento populacional
  • $r_1$, $r_2$ são as taxas de crescimento intrínseco
  • $K_1$, $K_2$ são as capacidades de suporte
  • $\alpha$, $\beta$ são os coeficientes de competição de cada espécie sobre a outra

Use a função plota.LV para plotar as abundâncias de duas espécies competidoras que coexistem. Os argumentos correspondem aos parâmetros acima, mais as condições iniciais:

  • n : vetor com tamanho inicial das populações da espécie 1 e 2
  • r1 e r2 : taxas intrínsecas de crescimento
  • K1 e K2 : capacidades de suporte
  • alfa e beta: coeficientes de competição
  • time : tempo máximo

Verifique a função com este comando:

plota.LV(n=c(n1=1,n2=1),r1=0.2,K1=150,r2=0.2,K2=100,
         alfa=0.2,beta=0.1,time=150)

Equilíbrio com coexistência

Neste sistema de equações os tamanhos populacionais em equilíbrio são (Gotelli 2007):

$N^*_1 = \frac{K_1-\alpha K_2}{1-\alpha \beta}$


$N^*_2 = \frac{K_2-\beta K_1}{1-\alpha \beta}$

A função lv.neq calcula estes valores. Use-a para obter os tamanhos em equilíbrio usados no comando anterior que produziu o gráfico, e compare com o gráfico:

(lv.n1 <- lv.neq(r1=0.2,K1=150,r2=0.2,K2=100,alfa=0.2,beta=0.1))

Estabilidade

Há duas condições para a coexistência de competidores no sistema de Lotka-Volterra com duas espécies:

$\frac{1}{\beta} \ > \ \frac{K_1}{K_2} \ > \ \alpha$


$\frac{1}{\beta} \ < \ \frac{K_1}{K_2} \ < \ \alpha$

Vamos verificar a estabilidade dos tamanhos populacionais em equilíbrio sob estas duas condições. A função plota.LV também tem um argumento para aumentar ou reduzir a população a qualquer momento.

Já calculamos os tamanhos no equilíbrio para um caso da primeira condição, que guardamos no objeto lv.n1. Para fazer o gráfico basta indicar este objeto no argumento n da função. No argumento perturb coloque os valores a adicionar ou subtrair de cada população.

Execute o comando abaixo para subtrair um indivíduo da população 1 e acrescentar um indivíduo à população 2:

## Perturbando no equilibrio
## Grafico ##
plota.LV(n=lv.n1,r1=0.2,K1=150,r2=0.2,K2=100,alfa=0.2,beta=0.1,time=150, perturb=c(-1,1), t.perturb=50)

Faça o mesmo para uma combinação de parâmetros que satisfaça a segunda condição:

## Coexistência das duas espécies, 1/beta > k1/k2 > alfa ##
## Calculo dos valores no equilibrio
(lv.n2 <- lv.neq(r1=0.2,K1=150,r2=0.2,K2=100,alfa=1.8,beta=0.9))
## Grafico ##
plota.LV(n=lv.n2,r1=0.2,K1=150,r2=0.2,K2=100,alfa=1.8,beta=0.9,time=150)

## Perturbando no equilibrio ##
plota.LV(n=lv.n2,r1=0.2,K1=150,r2=0.2,K2=100,alfa=1.8,beta=0.9,time=200, perturb=c(-1,1), t.perturb=50)

O que acontece se você inverte a perturbação?

## Invertendo a perturbação ##
plota.LV(n=lv.n2,r1=0.2,K1=150,r2=0.2,K2=100,alfa=1.8,beta=0.9,time=200, perturb=c(1,-1), t.perturb=50)

Interpretação matemática

A lógica da análise matemática da estabilidade local deste sistema é a mesma da aplicada para uma população. Um ponto será localmente estável se na sua vizinhança a velocidade (variação do tamanho populacional) tiver uma relação negativa com os tamanhos populacionais. Só que agora temos duas equações, e em cada uma as velocidades dependem dos tamanhos populacionais das duas espécies.

Uma maneira de resolver o problema é avaliar o efeito de cada população sobre cada velocidade, mantida a outra população fixa. Isto é feito com derivadas parciais, designadas com o símbolo $\partial$.

Por exemplo,

$\frac{\partial V_1}{\partial N_1}$

é a derivada da velocidade de crescimento da população 1 em relação ao tamanho da população 1, mantida a população 2 fixa. Esta derivada expressa o efeito que uma espécie tem sobre seu próprio crescimento populacional. O efeito da espécie 1 sobre o crescimento da espécie 2 é

$\frac{\partial V_2}{\partial N_1}$

O próximo truque é organizar as derivadas parciais em uma matriz, que podemos ler como a combinação dos efeitos parciais de cada espécie sobre si mesma e sobre a competidora:

$\left( \begin{matrix} \frac{\partial V_1}{\partial N_1} & \frac{\partial V_1}{\partial N_2} \\ & \\\frac{\partial V_2}{\partial N_1} & \frac{\partial V_2}{\partial N_2} \end{matrix} \right) $

Esta é a Matriz Jacobiana do sistema de equações. A diagonal desta matriz tem os efeitos das populações de cada espécie sobre si mesmas. Fora das diagonais temos os efeitos inter-específicos.

No estudo de estabilidade local da equação logística avaliamos o sinal da derivada nos pontos de equilíbrio. Aqui fazemos o mesmo para cada derivada parcial. Com isso teremos a matriz das derivadas parciais avaliadas num dado ponto de equilíbrio. A esta Jacobiana do sistema Lotka-Volterra, avaliada nos pontos de equilíbrio, May (1972) chamou de Matriz da comunidade:

Para uma equação a aproximação linear indica que o equilíbrio é estável se a relação entre velocidades e tamanhos populacionais na sua vizinhança é negativa. Mas como avaliar isto agora? A extensão do critério de estabilidade local por aproximação linear para um sistema de equações Lotka-Volterra é o seguinte:

Para um sistema de equações de Lotka-Volterra, um ponto de equilíbrio é localmente estável se todos os autovalores da matriz da comunidade forem negativos.

Autovalores são propriedades de matrizes, e uma das bases da álgebra linear. Para uma introdução didática veja Otto & Day (2007, caps 7 e 8).

Para nossos propósitos, basta a noção de que autovalores negativos são o equivalente multivariado da derivada negativa para uma equação diferencial.

O número de autovalores de uma matriz de comunidades é igual ao número de espécies. O cálculo de autovalores não é simples, mas temos a ajuda do R, com sua função eigen.

Cálculos no R

Vamos calcular a matriz de comunidades para a primeira combinação de parâmetros que experimentamos. Para isso usamos a função jacob.lv, informando os valores dos parâmetros. A função já calcula os tamanhos populacionais no equilíbrio e a matriz Jacobiana avaliada nestes pontos:

##Primeira combinação de parametros: 1/beta < k1/k2 < alfa  ##
## Matriz da comunidade
j1 <- jacob.lv(r1=0.2,K1=150,r2=0.2,K2=100,alfa=0.2,beta=0.1)

Agora aplicamos a função eigen para obter os autovalores desta matriz:

##Autovalores
eigen(j1, only.values=TRUE)$values

Faça o mesmo com a segunda combinação de parâmetros que experimentamos:

## Segunda combinação de parametros: 1/beta > k1/k2 > alfa  ## 
## Matriz da comunidade
j2 <- jacob.lv(r1=0.2,K1=150,r2=0.2,K2=100,alfa=1.8,beta=0.9)
##Autovalores
eigen(j2, only.values=TRUE)$values

Pergunta: Os resultados desta análise são coerentes com o que você observou ao perturbar o sistema?

O Estudo do Barão May

A matriz de comunidade pode ser estendida para quantas espécies desejarmos. Robert May usou isso para avaliar se diversidade de espécies aumenta a estabilidade. Se isto for verdade, como era aceito à época, deve ser mais fácil montar matrizes estáveis que sejam grandes, do que pequenas.

Para testar esta hipótese, May fez a seguinte simulação:

  1. Defina o número de espécies do sistema, S
  2. Defina a fração de interações potenciais que ocorrem. Isto é a conectância da matriz, C
  3. Crie uma matriz com S linhas por S colunas
  4. Preencha a diagonal desta matriz com o valor -1
  5. Preencha ao acaso as células restantes com valores aleatórios até que se alcance a conectância
  6. Verifique se os autovalores desta matriz são todos negativos. Se sim, conte como um sistema estável

Com isso, geramos um sistema em que há competição intra-específica igual para todas as espécies, e uma proporção fixa de associações inter-específicas, distribuídas ao acaso. O valor e sinal destas interações também é sorteado. May sorteou os efeitos inter-específicos de uma distribuição normal com média zero. Com isso interações positivas e negativas são igualmente prováveis. Outro parâmetro importante da simulação é o desvio-padrão desta distribuição normal, que aumenta o valor médio do efeito das interações. Por isso, ele é chamado de força de interação.

Simulando

A função may reproduz a simulação, e tem os argumentos:

  • S : número de espécies
  • C : conectância
  • f : força média das interações
  • nsim: número de repetições da simulação

A função retorna a proporção das repetições que produziram sistemas estáveis 1).

Vamos começar com 20 espécies, conectância de 0,3 2) e força de interação de 0,2:

(sim.1 <- may(S=20,C=0.3, f=0.2, nsim=100))

O comando acima já guarda os resultados em uma tabela. Prossiga aumentando o número de espécies, mantendo os outros parâmetros constantes:

(sim.1 <- rbind(sim.1,may(S=40,C=0.3, f=0.2, nsim=100)))
(sim.1 <- rbind(sim.1,may(S=60,C=0.3, f=0.2, nsim=100)))
(sim.1 <- rbind(sim.1,may(S=80,C=0.3, f=0.2, nsim=100)))
(sim.1 <- rbind(sim.1,may(S=90,C=0.3, f=0.2, nsim=100)))
(sim.1 <- rbind(sim.1,may(S=100,C=0.3, f=0.2, nsim=100)))
(sim.1 <- rbind(sim.1,may(S=110,C=0.3, f=0.2, nsim=100)))
(sim.1 <- rbind(sim.1,may(S=120,C=0.3, f=0.2, nsim=100)))

O que lhe parece? Um gráfico pode ajudar:

## Grafico
plot(p.estab~S, data=sim.1, xlab="N de espécies",ylab="Proporção matrizes estáveis")

A conectância pode ser interpretada como uma medida de complexidade do sistema. Será que maior complexidade aumenta as chances de estabilidade? Experimente:

##Riqueza e força de interação fixa, aumento de Conectancia ##
(sim.2 <- may(S=120,C=0.3, f=0.2))
(sim.2 <- rbind(sim.2,may(S=120,C=0.28, f=0.2)))
(sim.2 <- rbind(sim.2,may(S=120,C=0.26, f=0.2)))
(sim.2 <- rbind(sim.2,may(S=120,C=0.24, f=0.2)))
(sim.2 <- rbind(sim.2,may(S=120,C=0.22, f=0.2)))
(sim.2 <- rbind(sim.2,may(S=120,C=0.20, f=0.2)))
(sim.2 <- rbind(sim.2,may(S=120,C=0.18, f=0.2)))
(sim.2 <- rbind(sim.2,may(S=120,C=0.16, f=0.2)))
##grafico
plot(p.estab~C, data=sim.2, xlab="Conectancia",ylab="Proporção matrizes estáveis")

Pergunta: diversidade e complexidade levam a estabilidade?

Para saber mais

  • Gotelli, N. 2007. Ecologia. Londrina, Ed. Planta. (A referência básica sobre os modelos dinâmicos em ecologia).
  • May, R.M. 1972. Will a large complex system be stable? Nature, 238, 413-414. (O artigo clássico que estabeleceu o conceito de equilíbrio de redes tróficas como solução de um sistema de equações de Lotka-Volterra.)
  • May, R.M. 2001. Stability and complexity in model ecosystems. Princeton, Princeton University Press. (Nesta influente monografia Robert May desenvolve as idéias do artigo de 1972. A primeira edição é de 1973, e o livro foi re-editado na coleção Princeton Landmarks of Biology em 2001.)
  • Sarah P. Otto & Troy Day 2007. A Biologist's Guide to Mathematical Modeling in Ecology and Evolution. Princeton, Princeton University Press. (Ótima introdução à matemática, de biólogos para biólogos. Como neste exercício, muita vezes usa abordagens menos tradicionais e mais intuitivas. Uma ótima fonte para quem quiser entender melhor os detalhes das análises de estabilidade e algebra matricial que usamos aqui. Veja também o site do livro.)
  • R Development Core Team (2012). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0, URL http://www.R-project.org/.
1)
isto é, matrizes de comunidades com todos os autovalores negativos
2)
30% das células da matriz de comunidades tem valor diferente de zero
ecovirt/roteiro/sucess/div_estab.txt · Última modificação: 2020/02/02 21:10 por prado