CoevolvingPredatorPrey¶
Systems / ODEs / Population dynamics
An eco-evolutionary predator-prey model where a fast-evolving prey trait feeds back on the populations, generating chaos without external forcing.
Definition¶
\[
\begin{aligned}
\dot{y_{0}} &= y_{0} \left(\frac{a_{1} y_{2} \left(- k_{1} y_{0} \left(\delta y_{2} - y_{2}\right) + 1\right)}{b_{1} y_{2} + 1} - \frac{a_{3} y_{1}}{b_{2} y_{0} + 1} - d_{1} \left(- k_{2} \left(\delta^{2} y_{2}^{2} - y_{2}^{2}\right) + k_{4} \left(\delta^{4} y_{2}^{4} - y_{2}^{4}\right) + 1\right)\right) \\
\dot{y_{1}} &= y_{1} \left(\frac{a_{2} y_{0}}{b_{2} y_{0} + 1} - d_{2}\right) \\
\dot{y_{2}} &= vv \left(- \frac{a_{1} \delta k_{1} y_{0} y_{2}}{b_{1} y_{2} + 1} - d_{1} \left(4 \delta^{4} k_{4} y_{2}^{3} - 2 \delta^{2} k_{2} y_{2}\right)\right)
\end{aligned}
\]
Parameters¶
| Symbol | Default | Role |
|---|---|---|
a1 |
2.5 |
predation / conversion rate coefficient |
a2 |
0.05 |
predation / conversion rate coefficient |
a3 |
0.4 |
predation / conversion rate coefficient |
b1 |
6 |
saturation constant of the functional response |
b2 |
1.333 |
saturation constant of the functional response |
d1 |
0.16 |
prey intrinsic death rate |
d2 |
0.004 |
predator intrinsic death rate |
delta |
1 |
trait-asymmetry parameter of the fitness landscape |
k1 |
6 |
coupling strength of the fitness landscape |
k2 |
9 |
coupling strength of the fitness landscape |
k4 |
9 |
coupling strength of the fitness landscape |
vv |
0.33333 |
relative timescale of trait evolution vs population dynamics |
Properties¶
Lyapunov spectrum
$+0.001047,\; +0.00626,\; -0.9468$
computed at build
computed at build
Kaplan–Yorke dimension
$D_{KY} = 2.008$
Divergence ∇·f
$\nabla\!\cdot f = 2 d_{1} \delta^{2} k_{2} vv - d_{1} - d_{2}$
constant part shown — state-dependent remainder omitted (too large)
constant part shown — state-dependent remainder omitted (too large)
Equilibria
7 equilibria
0 stable · 7 unstable
0 stable · 7 unstable
Define it in TSDynamics¶
import tsdynamics as ts
sys = ts.systems.CoevolvingPredatorPrey()
traj = sys.integrate(final_time=100.0, dt=0.01)
exps = sys.lyapunov_spectrum()
ts.kaplan_yorke_dimension(exps)
Reference¶
Gilpin & Feldman (2017), PLoS Comput. Biol. 13, e1005644