Equações de Lotka-Volterra
Comece com 10 presas e 5 predadores, defina as quatro taxas e veja a população em cada passo: com taxas de 1,1, 0,4, 0,1 e 0,4 o equilíbrio de coexistência fica em 4 presas e 2,75 predadores. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Presas
- 10
- Predadores
- 5
- Crescimento das presas
- 1,1
- Taxa de predação
- 0,4
- Crescimento dos predadores
- 0,1
- Mortalidade dos predadores
- 0,4
- Dt
- 0,1
- Presas finais
- 2,8810967151
- Predadores finais
- 6,0674292649
- Pico de presas
- 10
As equações de Lotka–Volterra são o par clássico de equações diferenciais ordinárias que descreve como uma população de presas e uma de predadores mudam juntas ao longo do tempo. As presas crescem na ausência de predadores e diminuem na proporção dos encontros; os predadores morrem de fome sem presas e crescem graças a esses mesmos encontros. Estudantes, ecólogos, analistas pesqueiros e modeladores precisam de uma série temporal determinística a partir das contagens iniciais e dos quatro coeficientes de taxa, não de uma captura de gráfico que não dá para reproduzir. Esta calculadora integra dx/dt = αx − βxy e dy/dt = δxy − γy com um método de Runge–Kutta de quarta ordem e passo fixo e devolve a trajetória, os picos, os vales e o equilíbrio interior quando ele existe.
O que as equações de Lotka–Volterra dizem sobre predador e presa
Alfred Lotka e Vito Volterra escreveram de forma independente o mesmo modelo de duas espécies na década de 1920: um estoque de presas x que cresceria de modo exponencial sozinho, e um estoque de predadores y que decairia de modo exponencial sem alimento. Os encontros são escritos como o produto x vezes y. As presas seguem portanto dx/dt igual a αx menos βxy, em que α é a taxa intrínseca de crescimento da presa e β é o coeficiente de predação.
Os predadores seguem dy/dt igual a δxy menos γy, em que δ é a conversão de presa comida em crescimento do predador e γ é a taxa de morte ou inanição. Esses quatro coeficientes mais as duas populações iniciais determinam por completo o campo vetorial no primeiro quadrante.
Quando α, β, γ e δ são todos positivos, o sistema tem um equilíbrio interior em x-estrela igual a γ sobre δ e y-estrela igual a α sobre β; as órbitas em torno desse ponto são fechadas no modelo contínuo exato, e por isso os gráficos de livro mostram os famosos ciclos defasados: as presas sobem, os predadores as seguem, as presas despencam, os predadores despencam e o laço se repete. O modelo não é um ecossistema completo: ignora capacidade de suporte, estrutura etária, refúgio e extinção estocástica.
É a ferramenta de primeira ordem para ensinar e planejar crescimento e predação acoplados. As unidades são as suas: se x e y são animais por quilômetro quadrado e o tempo está em anos, as taxas vão em anos recíprocos e a série devolvida usa as mesmas unidades. Populações e taxas nulas são permitidas e produzem trajetórias degeneradas, porém bem definidas, como o crescimento exponencial da presa quando os predadores começam em zero.
Contagens ou taxas negativas não são biológicas neste contrato e são rejeitadas em vez de recortadas em silêncio na borda de entrada.
Quem usa simulações predador-presa
Cursos de ecologia do ensino médio e da universidade pedem com frequência que os alunos esbocem ciclos de Lotka–Volterra a partir de uma tabela de x(t) e y(t). Um oráculo RK4 determinístico permite conferir que as presas atingem o pico antes dos predadores, que a órbita discreta permanece perto do equilíbrio previsto e que uma taxa negativa é ilegal em vez de um NaN silencioso em uma planilha.
Planejadores pesqueiros e de fauna às vezes precisam de uma previsão acoplada de primeira ordem: dadas as contagens atuais e as taxas de crescimento e predação assumidas, como os dois estoques se movem em um horizonte de T unidades de tempo? O teto de passos mantém o isolate barato e ainda resolve alguns ciclos. O trabalho de sensibilidade são algumas chamadas a mais: fixe as condições iniciais e varie α ou β para ver se o pico do predador cresce ou desaba.
Mantenha os oito parâmetros não negativos e finitos, escolha um steps grande o bastante para resolver a órbita que interessa a você (dez a quarenta é típico em um gráfico de tarefa; duzentos é o teto rígido) e trate a série como trajetória numérica das equações clássicas — não como censo de campo ajustado, modelo de extinção estocástica ou curva logística só de presas.
Casos de uso
Tarefas de ecologia e gráficos de ciclos
A partir das contagens iniciais de presa e predador mais as quatro taxas de Lotka–Volterra, obtenha uma série temporal que os alunos possam traçar para ver os ciclos clássicos defasados.
Correção automática de provas e LMS
Pontue itens predador-presa com um oráculo RK4 determinístico que rejeita parâmetros negativos ou não finitos em vez de devolver um caminho vazio em silêncio.
Esboços de primeira ordem para fauna e pesca
Projete estoques acoplados em um horizonte de planejamento T a partir do censo atual e das taxas de crescimento e predação assumidas, sem montar uma caixa de ferramentas ODE completa.
Perguntas frequentes
Qual integrador a calculadora usa?
Depois de cada passo, um ultrapasse numérico abaixo de zero é recortado para zero.
O que significam as quatro taxas de Lotka-Volterra?
Alfa é a rapidez com que as presas crescem sozinhas, beta o quanto os encontros as reduzem, delta a eficiência com que as presas comidas viram novos predadores e gama a rapidez com que os predadores morrem sem alimento.
Onde fica o equilíbrio de coexistência?
Quando as quatro taxas são positivas, as presas ficam em gama dividido por delta e os predadores em alfa dividido por beta. No exemplo, taxas de 1,1, 0,4, 0,1 e 0,4 dão 4 presas e 2,75 predadores.
Por que as populações de presas e predadores formam ciclos?
As presas aumentam, os predadores acompanham por terem mais comida, depois as presas despencam com a predação maior e os predadores caem em seguida. No modelo exato essas órbitas se fecham em torno do equilíbrio e geram os conhecidos ciclos defasados.
O que acontece se eu começar sem predadores?
As presas crescem de forma exponencial na própria taxa, porque nada as reduz. Populações e taxas iguais a zero são aceitas e geram trajetórias simples, mas bem definidas.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/eco/lotka-volterra-equations \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"prey":10,"predators":5,"prey_growth":1.1,"predation_rate":0.4,"predator_growth":0.1,"predator_death":0.4,"duration":1,"steps":10}'const res = await fetch("https://api.kit.forhosting.com/eco/lotka-volterra-equations", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"prey": 10,
"predators": 5,
"prey_growth": 1.1,
"predation_rate": 0.4,
"predator_growth": 0.1,
"predator_death": 0.4,
"duration": 1,
"steps": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/eco/lotka-volterra-equations",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"prey": 10,
"predators": 5,
"prey_growth": 1.1,
"predation_rate": 0.4,
"predator_growth": 0.1,
"predator_death": 0.4,
"duration": 1,
"steps": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/eco/lotka-volterra-equations", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"prey":10,"predators":5,"prey_growth":1.1,"predation_rate":0.4,"predator_growth":0.1,"predator_death":0.4,"duration":1,"steps":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"prey":10,"predators":5,"prey_growth":1.1,"predation_rate":0.4,"predator_growth":0.1,"predator_death":0.4,"duration":1,"steps":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/eco/lotka-volterra-equations", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"prey": 10,
"predators": 5,
"prey_growth": 1.1,
"predation_rate": 0.4,
"predator_growth": 0.1,
"predator_death": 0.4,
"duration": 1,
"steps": 10
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "eco.lotka_volterra_equations",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_steps | 200 |
max_abs | 1000000000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Qualquer parâmetro negativo ou não finito falha com invalid_input em vez de inventar um censo. O caminho gratuito do navegador usa o mesmo módulo puro que a API, para que tarefas e automação nunca discordem em um passo da órbita.
Contrato de entrada, série temporal RK4 e comportamento de erro
O integrador começa em t igual a zero com o censo informado e avança com passos de tamanho dt igual a T dividido por steps. Cada passo é RK4 clássico sobre o campo vetorial bidimensional. Depois de cada passo, um pequeno ultrapasse numérico abaixo de zero é recortado para zero para que um censo não possa ficar negativo. Validação falha não é cobrada. Envie por POST um corpo JSON com oito campos obrigatórios, cada um um número finito não negativo: prey (x0 inicial), predators (y0 inicial), prey_growth (α), predation_rate (β), predator_growth (δ), predator_death (γ), duration (tempo total T) e steps (o número inteiro de passos RK4 fixos, no máximo duzentos). Aliases curtos funcionam da mesma forma: x0, y0, alpha, beta, delta, gamma, t_end, n_steps e os demais nomes do esquema de parâmetros. Cada campo pode chegar como número JSON ou como string numérica; strings vazias, chaves ausentes, NaN, infinitos e qualquer valor negativo falham com invalid_input nomeando o campo. steps deve ser um inteiro; uma contagem fracionária é rejeitada porque o comprimento da série faz parte do contrato. Se um passo transborda IEEE-754, a tarefa falha em vez de devolver infinitos. Em caso de sucesso o corpo ecoa as oito entradas, dt, method rk4 e a string de fórmula dx/dt = αx − βxy ; dy/dt = δxy − γy. series é um array de steps mais uma amostras {t, prey, predators} incluindo o ponto inicial. final_prey e final_predators são a última amostra; os campos peak e trough são os extremos ao longo da trajetória discreta. Quando δ é positivo o corpo também inclui equilibrium_prey = γ/δ; quando β é positivo inclui equilibrium_predators = α/β. Essas chaves de equilíbrio são omitidas, nunca null, se a taxa correspondente for zero. Chamadas bem-sucedidas usam saldo pré-pago KIT ao preço base publicado US$ 0,002 por item. Os goldens fixam o arredondamento de doze casas para que o JSON do Worker e do navegador permaneça estável byte a byte.
Onde uma API de série temporal predador-presa rende valor
Combine o JSON com o seu próprio código de gráficos se precisar de um retrato de fase; este endpoint devolve números, não imagens.
Perguntas técnicas
Como simulo populações predador-presa de Lotka–Volterra?
Envie prey, predators, prey_growth (α), predation_rate (β), predator_growth (δ), predator_death (γ), duration T e steps inteiro, todos finitos e não negativos. A API devolve uma série RK4 de steps+1 amostras {t, prey, predators}.
O que acontece se um parâmetro for negativo ou não finito?
A tarefa falha com invalid_input nomeando o campo. Populações, taxas, duration e steps devem ser finitos e não negativos; valores não finitos e campos ausentes falham do mesmo modo e não são cobrados.
Qual é o equilíbrio de coexistência das equações de Lotka–Volterra?
Quando as taxas são positivas, as presas equilibram-se em γ/δ (predator_death / predator_growth) e os predadores em α/β (prey_growth / predation_rate). Essas chaves são omitidas se o divisor correspondente for zero.
Quanto custa a calculadora das equações de Lotka–Volterra?
A ferramenta no navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.