* [[ecovirt:roteiro:math:stabilitysage|{{:ecovirt:sage_icon.png?20|}}]] * [[ecovirt:roteiro:math:stabilityr|{{:ecovirt:rlogo.png?20|}}]] ====== Estabilidade em sistemas dinâmicos - Roteiro em R ====== [[http://xkcd.com/755/|{{:ecovirt:roteiro:math:est1.png?250}}]] 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 [[http://en.wikipedia.org/wiki/Dynamical_system|sistemas dinâmicos]]. É esta abordagem que trouxe para a ecologia equações para descrever a dinâmica de populações, como a [[http://en.wikipedia.org/wiki/Logistic_function#In_ecology:_modeling_population_growth|equação logística]] e o sistema de [[http://en.wikipedia.org/wiki/Lotka%E2%80%93Volterra_equation|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. Este exercício é uma demonstração informal da análise de estabilidade de equações que representam sistemas dinâmicos. 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. ===== 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: - Instale em seu computador o ambiente R, com os pacotes adicionais ''deSolve'' e ''rootSolve''. A [[http://www.r-project.org/|página do R]] tem instruções de instalação. Veja também nosso [[ecovirt:roteiro:soft:instalacaor| roteiro de instalação do R]]. - Crie um diretório em seu computador para os exercícios. - Copie para este diretório os arquivos abaixo: - {{:ecovirt:roteiro:math:eq_funcoes.r}} - {{:ecovirt:roteiro:math:eq_comandos.r}} - Abra o R a partir do arquivo de comandos ''eq_comandos.r''. Certifique-se de que você está no diretório onde estão os arquivos. - Os comandos neste arquivo estão na mesma ordem deste exercício. Siga o roteiro, enviando os comandos indicados a cada seção. - Se você não sabe como enviar os comandos do arquivo faça este [[hhttp://ecovirtual.ib.usp.br/doku.php?id=ecovirt:roteiro:soft:rprincip|tutorial]]. - 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") ===== Uma população ===== Vamos começar com a análise de estabilidade da conhecida equação logística de crescimento populacional: $$V \ = \ rN\ \left( 1-\frac{N}{K} \right)$$ Onde $V$ é a velocidade de crescimento da população ((o mesmo que dN/dt)), $r$ é a taxa intrínseca de crescimento populacional, e $K$ a capacidade de suporte. Com o R podemos fazer o gráfico do crescimento logístico para qualquer valor dos parâmetros com a função ''plota.logist'': plota.logist(n=2,r=0.1,K=50,time=200) Os argumentos desta função em R permitem alterar os parâmetros da equação: * ''n'' : tamamanho inicial da população * ''r'' : taxa intrínseca de crescimento * ''K'' : capacidade de suporte * ''time'' : tempo máximo Experimente alterar os parâmetros e veja o resultado. ==== Equilíbrio na logística ==== A pergunta básica da análise de estabilidade em sistemas dinâmicos é se há pontos de equilíbrio estáveis. Primeiro temos que definir equilíbrio: O tamanho populacional em equilíbrio é aquele em que velocidade de crescimento é nula, ou seja em que $$\frac{dN}{dt} = 0$$ Há dois tamanhos populacionais que satisfazem esta condição para a equação logística: * $N \ = \ K$ * $N \ = \ 0$ Estes tamanhos em equilíbrio fazem sentido biológico: a população não cresce quando chega à capacidade de suporte ou, trivialmente, quando está vazia. Verifique que estes dois tamanhos populacionais estão em equilíbrio com os comandos: ## Logistica iniciando em N=K plota.logist(n=50,r=0.1,K=50,time=200) ## Logistica iniciando em N=0 plota.logist(n=0,r=0.1,K=50,time=200) ==== Estabilidade da logística ==== Algum destes pontos de equilíbrio são estáveis? Vamos experimentar com o R, mas antes precisamos definir de que estabilidade estamos falando: Um tamanho populacional em equilíbrio é **localmente estável** se a população retorna a ele após uma pequena perturbação. Uma pequena perturbação é um pequeno acréscimo ou redução do tamanho populacional. Nossa função para plotar a logística tem mais dois argumentos para incluir perturbações: * ''perturb'' : valor da perturbação * ''t.perturb'' : momento da perturbação Acrescente um indivíduo((rigorosamente isto não seria uma perturbação tão pequena assim, mas funciona com este sistema)) à populações que estejam com tamanhos iguais a zero e $K$: ## Perturbando quando N=K plota.logist(n=50,r=0.1,K=50,time=200, perturb=1, t.perturb=100) ## O mesmo com a populacao iniciando em n= 2 plota.logist(n=2,r=0.1,K=50,time=200, perturb=1, t.perturb=100) ## Perturbando em N=0 plota.logist(n=0,r=0.1,K=50,time=50, perturb=1, t.perturb=10) === Perguntas === * Estes pontos são estáveis? * Qual a interpretação biológica? ==== Interpretação matemática ==== O critério de estabilidade que usamos avalia o comportamento da velocidade de crescimento, quando o tamanho populacional varia **um pouco** em torno do equilíbrio. Como é a relação entre velocidade de crescimento e tamanho populacional na equação logística? Veja a figura abaixo: a velocidade tem uma relação quadrática com o tamanho populacional, formando uma parábola. Os pontos de equilíbrio, em que a velocidade de crescimento é zero, estão marcados em vermelho ((Eles são as raízes da equação quadrática.)). {{ :ecovirt:roteiro:math:logist1.png?400 | Velocidade de crescimento ,V ou dN/dt, em função do tamanho populacional em uma equação logística. Parâmetros: r=0,1 , K=50}} Quando a população é pequena, seu crescimento faz a velocidade de crescimento aumentar, ou seja, o tamanho populacional acelera seu crescimento. A partir de um certo tamanho populacional, chamado ponto de inflexão da curva, o aumento na população faz a velocidade diminuir. Deste ponto em diante o tamanho populacional freia ((na terminologia de física, isso é aceleração negativa)) o seu crescimento. Isso é a própria expressão da equação logística: crescimento próximo do exponencial quando a população é pequena, e redução da velocidade até a parada, quando a população chega à capacidade de suporte. Logo, a velocidade tem uma relação positiva com o tamanho populacional **próximo** ao equilíbrio $N=0$. Portanto, um **pequeno** aumento acima de zero aumenta a velocidade de crescimento, que aumenta o tamanho populacional, que aumenta ainda mais a velocidade de crescimento. Este é um equilíbrio instável: basta uma pequena perturbação para afastar a população dele. No ponto $N=K$ acontece o oposto: a velocidade tem uma relação negativa com o tamanho populacional. Se diminuímos a população **um pouco** abaixo de $K$, ela crescerá, mas este crescimento reduzirá a velocidade de crescimento até que a velocidade seja nula. Se aumentamos a população **um pouco** acima da capacidade de suporte, a velocidade será negativa ((certifique-se que viu isto na figura)), e a população reduzirá até chegar a $K$, pois a velocidade negativa também desacelera. Assim, perturbações **na vizinhança** da capacidade de suporte são atraídas de volta para este ponto. Em resumo, o que define a estabilidade **em torno** de um ponto de equilíbrio é o sinal da relação entre a velocidade de crescimento e o tamanho populacional **nesta vizinhança**. Isto corresponde ao sinal da inclinação de uma reta tangente ao ponto de equilíbrio, que é a derivada da velocidade em relação ao tamanho populacional, **nestes pontos**. Abaixo está a mesma parábola da figura anterior, agora com retas tangentes aos pontos de equilíbrio. A inclinação da reta é positiva **no ponto** $N=0$ e negativa **no ponto** $N=K$. {{ :ecovirt:roteiro:math:logist2.png?400 |Mesma curva logística da figura anterior, agora com retas tangentes aos pontos de equilíbrio, que são as derivadas nestes pontos. A inclinação da reta é positiva no ponto N=0 e negativa no ponto N=K. }} Com isso chegamos a um critério de estabilidade **local** para uma população com crescimento em tempo contínuo: Um tamanho populacional em equilíbrio é **localmente estável** se a derivada da velocidade de crescimento em relação ao tamanho populacional neste ponto for negativa. Em notação matemática este critério é: $$\frac{dV}{dN} \bigg|_{\hat N} \ < \ 0$$ o que se lê "a derivada de $V$ em relação a $N$ no ponto $\hat N$ é menor que zero". //**__Por que tantas palavras em negrito?__**// Para lembrar que que todo este raciocínio é válido apenas na **vizinhança** de um ponto. A derivada pode ser vista como uma reta que aproxima uma função em um ponto. Na vizinhança deste ponto esta aproximação linear funciona, e podemos avaliar o comportamento da função pela inclinação da reta tangente (isto é, pelo sinal da derivada no ponto). Por isso o nome completo do que apresentamos neste tutorial é **análise de estabilidade local por aproximação linear**. Ela avalia a resposta de sistemas de equações diferenciais após pequenas perturbações na vizinhança de seus pontos de equilíbrio. Isso é feito sob a premissa de que nessa vizinhança as funções de velocidade são bem aproximadas por suas derivadas. Esta análise não informa sobre o resultado de grandes perturbações, e também pode falhar para sistemas com comportamentos fortemente não-lineares. ===== 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 [[http://press.princeton.edu/catalogs/series/plb.html|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 [[http://www.zoology.ubc.ca/biomath/|site do livro]].) * Roteiro sobre [[ecovirt:roteiro:sucess:div_estab|diversidade e estabilidade]], onde a análise é generalizada para um sistemas com mais de uma espécie. * 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/]]. {{tag> R cálculo derivada equação_diferencial lotka-volterra crescimento_logístico}}