Is Insulin-Glucose dynamic Lotka-Volterra?
Is the standard Lotka-Volterra (LV) model an exact fit for insulin-glucose (IG) dynamics? No. Can a similar model built on the same principles capture most of the essential features of the IG dynamics? Absolutely.

How to capture most of the insulin-glucose dynamics using a slightly modified Lotka-Volterra model

We can figure out how to change the LV equations to fit the IG dynamics by figuring out how our assumptions have changed. Like Daan mentioned, neither insulin nor glucose undergo self-reproduction. So we'll drop those terms from the equation, and we'll represent an influx of glucose (as from, say, a meal) as a simple time-dependent linear spike. Your rate equations will now look like:

$\frac{dx}{dt} = \alpha[t_{gi} &lt; t&lt; t_{gf}]-\beta x y$

$\frac{dy}{dt} = \delta x-\gamma x y$

where $x$ is glucose concentration, $y$ is insulin concentration, and $[t_{gi} &lt; t&lt; t_{gf}]$ is equal to 1 if the current time $t$ is greater than the time when the glucose spike starts $t_{gi}$ and less than the time when the glucose spike ends $t_{gf}$, and is equal to zero if the time $t$ does not meet this condition. 

Simulation of insulin-glucose dynamics using the above LV model

I ran a simulation of the above model in Matlab, and here's what it looks like:


The basic features of the insulin-glucose dynamics from the example graph the OP posted are present. Just like in the real system, first the glucose spikes, then the insulin spikes after a short lag, then they both return to baseline.

With some small improvements, the LV model can capture the dynamics of the infamous "sugar crash" phenomenon

Now for the really cool part.

As can be seen on the OP's graph, glucose levels tend to fall somewhat below their baseline following a large glucose spike. This is the physiological basis for the sugar crash that people sometimes get a little while after eating something really sugary like a candy bar. Regardless of whether the psychological symptoms actually occur, the dip in glucose levels is a real thing.

In order for a model to be considered "good", it has to be able to capture these kinds of complex but important phenomena in their underlying systems. The glucose dip did not show up in my original LV model, so the question is, can the model be modified in a simple way so that it will capture the dip? Let's take another crack at it!

Part of the problem with trying to study phenomena related to baseline levels using the previous model is that the baseline levels of both insulin and glucose are effectively fixed at 0 in that model. We can set the baseline levels by adding what's called a zeroth-order production term (essentially a fixed constant that isn't multiplied by the concentration of anything) to each of our rate equations. The rate equations now look like:

$\frac{dx}{dt} = \alpha[t_{gi} &lt; t&lt; t_{gf}]+\epsilon-\beta x y$

$\frac{dy}{dt} = \delta x+\eta-\gamma x y$

where $\epsilon$ is the 0th order glucose production term, $\eta$ is the 0th order insulin production term, and everything else is exactly the same.

Simulation of insulin-glucose dynamics using the "dip-enabled" LV model

Again using Matlab, I ran a simulation of the "dip-enabled" LV model:



and this time the dip shows up.

Notes:

-The term with the times in it is called an Iverson Bracket.

-You could make this model more physiologically relevant by using a more complex function for the glucose spike, but for simplicity's sake we'll stick with a linear function. A smoother function, like for example a Hill function, would probably help to reproduce your original graph of the IG dynamics.

Matlab code

function dxdt = insulin_glucose_birth_death_dxdt(t, x, kip, bip, kid, kgp, bgp, kgd)
dxdt = [kip*x(2) + bip - kid*x(1),
    kgp*(t&gt;1 &amp;&amp; t&lt;2) + bgp - kgd*x(1)*x(2)];
end

function [t,x] = insulin_glucose_birth_death_odesol(tspan, x0, kip, bip, kid, kgp, bgp, kgd)
opts=odeset();
[t,x]=ode45(@(t,x)insulin_glucose_birth_death_dxdt(t, x, kip, bip, kid, kgp, bgp, kgd), tspan, x0, opts);
end

function [t,x] = insulin_glucose_birth_death_plot(tspan, x0)
%run with:
%   tspan = [-10, 5];
%   x0 = [0,0];
%   [t,x] = insulin_glucose_birth_death_plot(tspan,x0);

kip = 2;
bip = 0;  % set to .01 for the "dip" simulation
kid = 1;
kgp = .1;
bgp = 0;   % set to .1 for the "dip" simulation
kgd = 50;

[t,x] = insulin_glucose_birth_death_odesol(tspan, x0, kip, bip, kid, kgp, bgp, kgd);

figure(gcf)
hold on
plot(t, x(:,1), 'b', t, x(:,2), 'r')
legend('insulin','glucose')
xlabel('time')
ylabel('concentration')
axis([0 inf -inf inf])
hold off
end