In [1]:
import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt
%matplotlib inline
def dX_dt(X, t=0):
R = X[0]
F = X[1]
alpha, beta, gamma, delta = parameters
dRdt = alpha * R - beta * F * R
dFdt = gamma * R * F - delta * F
res = [dRdt,dFdt]
return np.array(res)
# initial condition
X0 = [20.,10.]
parameters = (.2, .01, .001, .1)
t = np.linspace(0,100,1000)
X, infodict = integrate.odeint(dX_dt, X0, t, full_output=True)
infodict['message']
Out[1]:
In [2]:
rabbits, foxes = X.T
In [3]:
plt.plot(t, rabbits, label='Rabbits')
plt.plot(t, foxes, label='Foxes')
plt.xlabel('Time')
plt.ylabel('Population')
plt.legend()
plt.grid(linestyle='dotted')
In [4]:
plt.plot(rabbits, foxes)
plt.xlabel('Rabbits')
plt.ylabel('Foxes')
plt.grid(linestyle='dotted')
In [ ]:
In [ ]:
In [6]:
X.T[:, -1]
Out[6]:
In [ ]: