Solving a two box Lotka-Volterra system
The previous script was extremely simple and not particularly very useful. An extension of the original idea is that we have two predator-prey systems that are connected. An example of this could be two islands which are for the most part separate except for a small land bridge whereby some of the populations can interchange. In this case we would have the equations:
Please note that this script defines functions at the end, which is only supported by MATLAB 2016b or later.
Contents
close all;clear
Initialization
We now have different parameters for each box.
alpha = [2 2]; beta = [1/2 1]; delta = [1 2/3]; gamma = [4/3 1];
Correlation constants
New correlation constants for how the populations interchange.
First consider no interaction.
C_x = 0; C_y = 0;
We define the ICs for both systems.
prey01 = 5; pred01 = 10; prey02 = 5; pred02 = 1; N0 = [prey01 pred01 prey02 pred02];
Use ODE45
Same form as the previous script, only with more parameters and a different function.
tic [ts, Ns] = ode45(@(t,N) func_lotkavolterra2(t,N,alpha,beta,delta,gamma,C_x,C_y),[0 100],N0); toc
Plot
Results for the uncoupled case.
figure(1) clf plot(ts,Ns) figure(2) clf plot(Ns(:,1),Ns(:,2),'-ob') hold plot(Ns(:,3),Ns(:,4),'-or')
Current plot held
Correlated case
Now consider a case where we allow for movement between the two boxes.
C_x = 1; C_y = 1; tic [ts, Ns] = ode45(@(t,N) func_lotkavolterra2(t,N,alpha,beta,delta,gamma,C_x,C_y),[0 100],N0); toc
Elapsed time is 57.687436 seconds.
Plot
Results for the uncoupled case.
figure(1) clf plot(ts,Ns) figure(2) clf plot(Ns(:,1),Ns(:,2),'-ob') hold plot(Ns(:,3),Ns(:,4),'-or')
Current plot held
This system will still form limit cycles, however the final state for each box is modified by the correlation values. Try testing different parameter values, especially when one box begins at a steady state.
The two box Lotka-Volterra equations
Two Lotka-Volterra boxes connected by a correlation term.
function dNdt = func_lotkavolterra2(t, N,alpha,beta,delta,gamma,C_x,C_y)
The ODE equations
The difference between this model and the single box model is the addition of the correlation terms which transfer population from the high population box to the low population one. The different parameters also allow for the boxes to have different steady states if there were no connection. The order of the populations is box 1: prey, predator, and box 2: prey predator.
dNdt(1) = alpha(1)*N(1)-beta(1)*N(1)*N(2)-C_x*(N(1)-N(3)); dNdt(2) = delta(1)*N(1)*N(2) - gamma(1)*N(2)-C_y*(N(2)-N(4)); dNdt(3) = alpha(2)*N(3)-beta(2)*N(3)*N(4)+C_x*(N(1)-N(3)); dNdt(4) = delta(2)*N(3)*N(4) - gamma(2)*N(4)+C_y*(N(2)-N(4)); dNdt = dNdt(:);
end
Elapsed time is 59.053217 seconds.