Como você modelaria um problema predador – presa?

Nunca gostei de fórmulas matemáticas. Não há nada mais desestimulante do que pegar um artigo denso, de linguagem difícil, cheio de ideias abstratas e tão compreensível quanto hieróglifos egípcios!

Como entender fórmulas como as abaixo?

No final das contas, uma fórmula é um modelo, uma abstração da realidade. E entender o que a fórmula tem a dizer é mais importante do que apenas memorizar.

Algumas dicas gerais para entender uma fórmula:

– Entenda o que é uma variável e um parâmetro. Uma variável é um símbolo que representa um valor que pode mudar. O parâmetro é um símbolo que tem um valor fixo.

– Quando somamos ou subtraímos variáveis, estamos somando ou subtraindo o efeito de ambas no resultado.

– Quando multiplicamos variáveis, estamos multiplicando o efeito de ambas no resultado. Se uma das variáveis for zero, o resultado será zero, independente do valor da outra variável.

– Derivadas têm relação com variações. Taxas de crescimento ou decrescimento.

Podemos fazer um exemplo, decifrando o modelo predador-presa de Lotka-Volterra.

O modelo predador-presa de Lotka-Volterra

Imagine uma ilha deserta, com recursos infinitos. Neste, um grupo de coelhos foi introduzido. O que ocorreria? Com recursos infinitos e sem predadores, um crescimento exponencial de coelhos.

Daria para modelar o comportamento acima da seguinte forma:

onde:

  • N é o número de presas,
  • r é a taxa de crescimento da presa na ausência de predadores
  • dN/dt é o crescimento do número coelhos

A equação diz que o crescimento do número de coelhos é proporcional ao número atual de coelhos – quanto mais, mais se reproduzem, guiados pela taxa r.

Dá para criar um modelo bem simples e testar com alguns parâmetros.

# Definindo os parâmetros

r = 0.1    # Taxa de crescimento da presa

# Condições iniciais

N = 40 #Presa

seriePresa =[]

for _ in range(200):

    #Salva valor calculado de N e P

    seriePresa.append(N)

    #Calcula valores de crescimento

    dNdt = r * N

    #Atualiza N e P

    N += dNdt

O resultado disso é um crescimento exponencial.

Neste ponto, um grupo de lobos é introduzido.

Por serem poucos lobos e muitos coelhos, o crescimento da população de lobos é grande.

A população de coelhos diminui, até o ponto em que a quantidade de lobos excede a capacidade de se sustentar – há diminuição no número de predadores.

Em resumo, o modelo deve ter as características abaixo. Como você criaria fórmulas para descrever tal situação?

– Crescimento exponencial das presas na ausência de predadores

– Redução no número de presas quanto mais predadores. A taxa de predação depende do encontro entre presas e predadores

– Aumento no número de predadores com base no consumo de presas

– Mortalidade dos predadores na ausência de presas

O modelo de Lotka-Volterra é formado por duas equações:

  1. Equação para a presa:

onde:

N é o número de presas,

alpha é a taxa de crescimento da presa na ausência de predadores,

dN/dt é a taxa de predação.

  • Equação para o predador:

onde:

P é o número de predadores,

Beta é a taxa de crescimento dos predadores por presa consumida,

k é a taxa de mortalidade dos predadores.

Como podemos ler essas equações?

Para a presa.

A taxa de crescimento de presas (dN/dt) é proporcional ao número de presas (N) vezes um fator. É um crescimento exponencial, quanto mais presas, maior o aumento.

Exceto que é contrabalanceado pela predação (dado por aNP): quanto maior o produto predador presa, que representa o encontro entre predador e presa, menor a taxa de crescimento de presas.

Para o predador:

O crescimento de predadores (dP/dt) é proporcional ao produto predador-presa (NP – porque depende do encontro de ambos). Quanto menos presas, menor o crescimento.

E também tem um fator extra, a mortalidade dos predadores (kP, onde k é uma taxa).

Este é um modelo que incorpora as condições descritas anteriormente.

A seguir, um pequeno código para fazer algumas simulações.

import matplotlib.pyplot as plt

# Definindo os parâmetros

r = 0.5    # Taxa de crescimento da presa

alpha = 0.1 # Taxa de predação

beta = 0.1  # Taxa de crescimento do predador por presa consumida

k = 0.4 # Taxa de mortalidade do predador

# Condições iniciais

N = 1 #Presa

P = 1 #Predador

dt =0.001

max_time = 100

t=0

seriePresa =[]

seriePredador=[]

serieTempo =[]

while t<max_time:

    t += dt

    #Calcula valores de crescimento

    dNdt = r * N - alpha * N * P

    dPdt = beta * N * P - k * P

    #Atualiza N e P

    N += dNdt*dt

    P += dPdt*dt

    #Salva valor calculado de N e P

    seriePresa.append(N)

    seriePredador.append(P)

    serieTempo.append(t)

# Plotando os resultados

plt.figure(figsize=(10, 5))

plt.plot(serieTempo,seriePresa, label='Presa (N)')

plt.plot(serieTempo,seriePredador, label='Predador (P)')

plt.title('Modelo Predador-Presa de Lotka-Volterra')

plt.xlabel('Tempo')

plt.ylabel('População')

plt.legend()

plt.grid(True)

plt.show()

O resultado são curvas como a seguinte. A curva do predador é defasada em relação à da presa.

Se o crescimento do predador por presa for muito grande, alguns poucos predadores crescem e morrem rapidamente.

Se a taxa de mortalidade do predador for muito baixa, as presas serão dizimadas e os predadores continuam vivos.

Nenhum modelo é perfeito, portanto podem ter situações que não correspondam à vida real – no caso acima, uma hipótese irreal é a de ter recursos infinitos. Outra é a de não haver competição de outras espécies, por exemplo.

De qualquer forma, o exercício acima serve para ilustrar formas de ler e montar equações como o de um modelo predador – presa.

Texto: Arnaldo Gunzi

Revisão: Ernée Kozyreff Filho

Deixe um comentário