#%% TP 19, exo 3
# q3

from scipy.integrate import odeint
# ATTENTION : Si la version de Python que vous avez installée
# ne contient pas la bibliothèque scipy.integrate, téléchargez-la en exécutant dans la console
# la commande suivante : pip install scipy.integrate
# Cela nécessite d'être connecté à Internet, mais vous n'aurez à faire ce téléchargement qu'une seule fois.


# ATTENTION : pensez à vérifier que le code ci-dessous respecte vos notations pour les variables
# globales (Tmax et non T_max, C et non c, etc). Si besoin n'hésitez pas à le modifier

def volterraLotka(y,t): # fonction renvoyant les dérivées
    N = y[0]
    P = y[1]
    return [ r*N - C*N*P , -m*P + C*g*N*P ]

list_t = np.linspace(0,Tmax,Nb_iter+1)
list_NP = odeint(volterraLotka,[N0,P0],list_t) # utilisation de la "boite noire" odeint
list_N_exact = list_NP[:,0] # liste des valeurs exactes de N
list_P_exact = list_NP[:,1] # liste des valeurs exactes de P

plt.plot(list_t,list_N_exact,'b--')
plt.plot(list_t,list_P_exact,'r--')
plt.show()