Ecuaciones de Lotka-Volterra
Parta de 10 presas y 5 depredadores, fije las cuatro tasas y obtenga la población en cada paso: con tasas de 1,1, 0,4, 0,1 y 0,4 el equilibrio de coexistencia está en 4 presas y 2,75 depredadores. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Presas
- 10
- Depredadores
- 5
- Crecimiento de presas
- 1,1
- Tasa de depredación
- 0,4
- Crecimiento de depredadores
- 0,1
- Mortalidad de depredadores
- 0,4
- Dt
- 0,1
- Presas finales
- 2,8810967151
- Depredadores finales
- 6,0674292649
- Máximo de presas
- 10
Las ecuaciones de Lotka–Volterra son el par clásico de ecuaciones diferenciales ordinarias que describe cómo evolucionan juntas, a lo largo del tiempo, una población de presas y una de depredadores. Las presas crecen en ausencia de depredadores y disminuyen en proporción a los encuentros; los depredadores se extinguen de hambre sin presas y crecen gracias a esos mismos encuentros. Estudiantes, ecólogos, analistas pesqueros y modeladores necesitan una serie temporal determinista a partir de los recuentos iniciales y de los cuatro coeficientes de tasa, no la captura de un gráfico que no se puede reproducir. Esta calculadora integra dx/dt = αx − βxy y dy/dt = δxy − γy con un método de Runge–Kutta de cuarto orden y paso fijo, y devuelve la trayectoria, los máximos, los mínimos y el equilibrio interior cuando existe.
Qué dicen las ecuaciones de Lotka–Volterra sobre depredador y presa
Alfred Lotka y Vito Volterra escribieron de forma independiente el mismo modelo de dos especies en la década de 1920: un stock de presas x que crecería de modo exponencial por sí solo, y un stock de depredadores y que decaería de modo exponencial sin alimento. Los encuentros se escriben como el producto x por y. Las presas siguen por tanto dx/dt igual a αx menos βxy, donde α es la tasa intrínseca de crecimiento de la presa y β es el coeficiente de depredación.
Los depredadores siguen dy/dt igual a δxy menos γy, donde δ es la conversión de presa consumida en crecimiento del depredador y γ es la tasa de muerte o inanición. Esos cuatro coeficientes más las dos poblaciones iniciales determinan por completo el campo vectorial en el primer cuadrante.
Cuando α, β, γ y δ son todos positivos, el sistema tiene un equilibrio interior en x-estrella igual a γ entre δ e y-estrella igual a α entre β; las órbitas en torno a ese punto son cerradas en el modelo continuo exacto, y por eso los gráficos de libro muestran los célebres ciclos desfasados: las presas suben, los depredadores las siguen, las presas se desploman, los depredadores se desploman y el bucle se repite.
El modelo no es un ecosistema completo: ignora la capacidad de carga, la estructura de edades, el refugio y la extinción estocástica. Es la herramienta de primer orden para enseñar y planificar crecimiento y depredación acoplados. Las unidades son las suyas: si x e y son animales por kilómetro cuadrado y el tiempo está en años, las tasas van en años recíprocos y la serie devuelta usa las mismas unidades.
Se admiten poblaciones y tasas nulas y producen trayectorias degeneradas pero bien definidas, como el crecimiento exponencial de la presa cuando los depredadores parten de cero. Los recuentos o tasas negativos no son biológicos en este contrato y se rechazan en lugar de recortarse en silencio en el borde de entrada.
Quién usa simulaciones depredador-presa
Los cursos de ecología de secundaria y universidad piden con frecuencia que el alumnado bosqueje ciclos de Lotka–Volterra a partir de una tabla de x(t) e y(t). Un oráculo RK4 determinista permite comprobar que las presas alcanzan el máximo antes que los depredadores, que la órbita discreta permanece cerca del equilibrio previsto y que una tasa negativa es ilegal en lugar de un NaN silencioso en una hoja de cálculo.
Planificadores pesqueros y de fauna a veces necesitan un pronóstico acoplado de primer orden: dados los recuentos actuales y las tasas de crecimiento y depredación supuestas, ¿cómo se mueven ambos stocks en un horizonte de T unidades de tiempo? El tope de pasos mantiene barato el isolate y aun así resuelve unos cuantos ciclos. El análisis de sensibilidad son unas pocas llamadas extra: fije las condiciones iniciales y varíe α o β para ver si el pico del depredador crece o se derrumba.
Mantenga los ocho parámetros no negativos y finitos, elija un steps lo bastante grande para resolver la órbita que le interesa (de diez a cuarenta es habitual en un gráfico de deberes; doscientos es el tope duro) y trate la serie como trayectoria numérica de las ecuaciones clásicas, no como un censo de campo ajustado, un modelo de extinción estocástica ni una curva logística solo de presas.
Qué puede hacer con ella
Deberes de ecología y gráficos de ciclos
A partir de los recuentos iniciales de presa y depredador más las cuatro tasas de Lotka–Volterra, obtenga una serie temporal que el alumnado pueda trazar para ver los ciclos clásicos desfasados.
Calificación automática de exámenes y LMS
Puntúe ítems de depredador-presa con un oráculo RK4 determinista que rechaza parámetros negativos o no finitos en lugar de devolver una trayectoria vacía en silencio.
Esbozos de primer orden para fauna y pesca
Proyecte stocks acoplados en un horizonte de planificación T a partir del censo actual y de las tasas de crecimiento y depredación supuestas, sin montar una caja de herramientas ODE completa.
Preguntas frecuentes
¿Qué integrador emplea la calculadora?
Tras cada paso, un rebasamiento numérico por debajo de cero se recorta a cero.
¿Cuál es el equilibrio de coexistencia de las ecuaciones de Lotka–Volterra?
Esas claves se omiten si el divisor correspondiente es cero.
¿Qué significan las cuatro tasas de Lotka-Volterra?
Alfa es lo rápido que crecen las presas por sí solas, beta cuánto las reducen los encuentros, delta con qué eficacia las presas comidas se convierten en nuevos depredadores y gamma lo rápido que mueren los depredadores sin alimento.
¿Por qué las poblaciones de presas y depredadores forman ciclos?
Las presas aumentan, los depredadores las siguen al tener más comida, luego las presas se desploman por la mayor depredación y los depredadores caen a continuación. En el modelo exacto esas órbitas se cierran alrededor del equilibrio y dan los conocidos ciclos desfasados.
¿Qué pasa si empiezo sin depredadores?
Las presas crecen de forma exponencial a su propia tasa, porque nada las reduce. Se admiten poblaciones y tasas iguales a cero, y dan trayectorias sencillas pero bien definidas.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"prey": 10,
"predators": 5,
"prey_growth": 1.1,
"predation_rate": 0.4,
"predator_growth": 0.1,
"predator_death": 0.4,
"duration": 1,
"steps": 10
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "eco.lotka_volterra_equations",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_steps | 200 |
max_abs | 1000000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cualquier parámetro negativo o no finito falla con invalid_input en lugar de inventar un censo. La ruta gratuita del navegador usa el mismo módulo puro que la API, de modo que deberes y automatización nunca discrepan en un paso de la órbita.
Contrato de entrada, serie temporal RK4 y comportamiento ante errores
El integrador empieza en t igual a cero con el censo dado y avanza con pasos de tamaño dt igual a T dividido entre steps. Cada paso es RK4 clásico sobre el campo vectorial bidimensional. Tras cada paso, un pequeño rebasamiento numérico por debajo de cero se recorta a cero para que un censo no pueda volverse negativo. Esas claves de equilibrio se omiten, nunca van a null, si la tasa correspondiente es cero. La validación fallida no se factura. Envíe por POST un cuerpo JSON con ocho campos obligatorios, cada uno un número finito no negativo: prey (x0 inicial), predators (y0 inicial), prey_growth (α), predation_rate (β), predator_growth (δ), predator_death (γ), duration (tiempo total T) y steps (el número entero de pasos RK4 fijos, como máximo doscientos). Los alias cortos funcionan igual: x0, y0, alpha, beta, delta, gamma, t_end, n_steps y los demás nombres del esquema de parámetros. Cada campo puede llegar como número JSON o como cadena numérica; cadenas vacías, claves ausentes, NaN, infinitos y cualquier valor negativo fallan con invalid_input nombrando el campo. steps debe ser un entero; un recuento fraccionario se rechaza porque la longitud de la serie forma parte del contrato. Si un paso desborda IEEE-754, la tarea falla en lugar de devolver infinitos. En caso de éxito el cuerpo repite los ocho datos de entrada, dt, method rk4 y la cadena de fórmula dx/dt = αx − βxy ; dy/dt = δxy − γy. series es un arreglo de steps más una muestras {t, prey, predators} incluido el punto inicial. final_prey y final_predators son la última muestra; los campos peak y trough son los extremos a lo largo de la trayectoria discreta. Cuando δ es positivo el cuerpo incluye también equilibrium_prey = γ/δ; cuando β es positivo incluye equilibrium_predators = α/β. Las llamadas correctas usan saldo prepago KIT al precio base publicado $0.002 por ítem. Los goldens fijan el redondeo a doce decimales para que el JSON del Worker y del navegador permanezca estable byte a byte.
Dónde aporta valor una API de serie temporal depredador-presa
Empareje el JSON con su propio código de gráficos si necesita un retrato de fase; este extremo devuelve números, no imágenes.
Preguntas técnicas
¿Cómo simulo poblaciones depredador-presa de Lotka–Volterra?
Envíe prey, predators, prey_growth (α), predation_rate (β), predator_growth (δ), predator_death (γ), duration T y steps entero, todos finitos y no negativos. La API devuelve una serie RK4 de steps+1 muestras {t, prey, predators}.
¿Qué ocurre si un parámetro es negativo o no finito?
La tarea falla con invalid_input nombrando el campo. Poblaciones, tasas, duration y steps deben ser finitos y no negativos; los valores no finitos y los campos ausentes fallan igual y no se facturan.
¿Cuánto cuesta la calculadora de ecuaciones de Lotka–Volterra?
La herramienta en el navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.