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
seriePresa =[]
for _ in range(200):
#Salva valor calculado de N e P
seriePresa.append(N)
#Calcula valores de crescimento
#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:
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.
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
P = 1 #Predador
max_time = 100
seriePresa =[]
seriePredador=[]
serieTempo =[]
while t<max_time:
#Calcula valores de crescimento
dNdt = r * N - alpha * N * P
dPdt = beta * N * P - k * P
#Atualiza N e P
#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.grid(True)
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
Originally published at https://ideiasesquecidas.com on June 6, 2024.