Ce document s'intéresse à la modélisation cinétique d'une transformation modélisée, à l'échelle microscopique, par deux actes élémentaires successifs monomoléculaires :
\begin{align} \mathsf{ A \xrightarrow{\text{$k_{1d}$}} B\\ B \xrightarrow{\text{$k_{2}$}} C } \end{align}où $\mathsf{k_1}$ et $\mathsf{k_2}$ représentent les constantes de vitesse de l'acte élémentaire "sens direct" et de l'acte élémentaire "sens inverse".
L'évolution temporelle des concentrations des espèces $\mathsf{A}$, $\mathsf{B}$ et $\mathsf{C}$ est régie par les équations différentielles suivantes : \begin{equation} \mathsf{ \frac{d[A]}{dt} = -k_{1}[A] \\ \frac{d[B]}{dt} = +k_{1}[A] - k_2 [B] \\ \frac{d[C]}{dt} = + k_2 [B] \\ } \end{equation}
La méthode d'Euler utilisée ici pour intégrer l'équation différentielle est la méthode d'Euler. Celle-ci utilise la formule de Taylor qui permet d'écrire pour $\mathsf{h\to 0}$ : \begin{equation} \mathsf{f(t_0+h)=f(t_0)+ \left(\frac{df}{dt}\right)_{t_0}\cdot h} \end{equation}
Cette relation permet de calculer la concentration d'une espèce à un instant $\mathsf{t_0+h}$ connaissant sa valeur à l'instant $\mathsf{t_0}$ et la valeur de la dérivée à l'instant $\mathsf{t_0}$. Par exemple, pour la concentration de l'espèce $\mathsf{A}$ : \begin{equation} \mathsf{[A]_{t_0+h}=[A]_{t_0}+ \left(\frac{d[A]}{dt}\right)_{t=t_0} \cdot h} \end{equation}
\begin{equation} \mathsf{[A]_{t_0+h}=[A]_{t_0}-k_1[A]_{t_0} \cdot h} \end{equation}La méthode d'Euler nécessite :
En outre, sur le plan chimique, les concentrations des réactifs ne peuvent devenir négatives, ce qui impose une condition supplémentaire dans la boucle de calcul.
A l'état initial, la concentration de l'espèce $\mathsf{A}$ est notée $\mathsf{a}$ et celle de l'espèce $\mathsf{B}$ est notée $\mathsf{b}$.
La bibliothèque matplolib
est utilisée pour tracer des graphiques.
Les paramètres suivants peuvent être modifiés :
import matplotlib.pyplot as plt
"""Conditions initiales""" # en mol/L
a=1
b=0
c=0
"""Paramètres de la méthode d'intégration"""
h=0.001 # en s
duree = .6 # en s
"""Constantes de vitesse"""
k1=10 # en s^(-1)
k2=50 # en s^(-1)
"""Listes des valeurs des concentrations et des instants t"""
LT=[0]
LA=[a]
LB=[b]
LC=[c]
""" Boucle d'intégration"""
nbpts=duree/h
i=1
while i<=nbpts and LA[-1] >= 0 and LB[-1] >= 0 :
A=LA[-1]
B=LB[-1]
C=LC[-1]
LT.append(i*h)
LA.append(A - k1*A*h)
LB.append(B + k1*A*h - k2*B*h)
LC.append(C+ k2*B*h)
i=i+1
"""Tracé des courbes des concentrations calculées en fonction du temps"""
plt.figure(1)
plt.title(f"k1 = {k1} s^{-1} \n k2 = {k2} s^{-1}")
plt.plot(LT,LA,'b--', label='réactif A')
plt.plot(LT,LB,'g--', label='intermédiaire B')
plt.plot(LT,LC,'k--', label='produit C')
plt.xlabel('t en s')
plt.ylabel('Concentrations en $mol.L^{-1}$')
plt.grid()
plt.legend()
Lorsque $\mathsf{k_2 >> k_{1}}$, l'intermédiaire réactionnel ne s'accumule pas. La vitesse de variation de la concentration est négligeable devant les autres vitesses de variations des concentrations. \begin{equation} \mathsf{ \frac{d[B]}{dt} << {\left|\frac{d[A]}{dt}\right|,\frac{d[C]}{dt}} \\ \frac{d[B]}{dt} \approx 0 } \end{equation}