import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import odeint

## paramètre
k=5.62 # constante de vitesse en L/(min.mol)

## méthode Euler
# fonction euler    # à expliquer
def euler(f,a0,t0,tmax,h) :
    n=int((tmax-t0)/h)
    t=t0
    a=a0
    T=[t0]
    A=[a0]
    for i in range(n) :
        a=a+h*f(a,t)
        t=t+h
        T.append(t)
        A.append(a)
    return T,A

# fonction f
def f(a,t) :
   return ...      # à compléter

# calcul et récupération des listes
T1,Y1 = euler(...,0,2,0.001)  # à compléter
T2,Y2 = euler(...,0,2,0.1)  # à compléter

## fonction odeint
T=np.array(T1)
Y3=odeint(...)   # à compléter

## tracés des courbes
plt.plot(T1,Y1,label="h=0.001 min")
plt.plot(T2,Y2,label="h=0.1 min")
plt.plot(T,Y3,label="fct odeint")
plt.legend(loc="upper right")
plt.xlabel("t (min)")
plt.ylabel("a (mol/L)")
plt.title("méthode d'Euler, fonction odeint")
plt.grid(True)
plt.show()