mise à jour :31-03-2010 cinet.chim

IV.3.2  Relations de dépendance dues à la stœchiométrie

logo Sa

Exercice 9


Sa - exercice 9

Réaction de Bazsa et Lengyel

1 Sens [Fe]2+ → [Fe]3+
BL.cpp    BLdirect.sac
2 Sens [Fe]3+ → [Fe]2+
BL.cpp    BLinverse.sac
3 Système d'équations réduit
BL_reduit.cpp

H+ + NO3 + HNO2   ⇄   2NO2 + H2O     k1, k2     (r 3a)
    H+ + [Fe]2+ + NO2   ⇄   [Fe]3+ + HNO2     k3, k4     (r 3b)

La tris(1,10-phénantroline) ferreuse, ou ferroïne, notée [Fe]2+, présente en solution aqueuse une bande d'absorption UV-Visible (λmax = 508 nm, ε508 = 12 000 L.mol−1.cm−1), qui lui confère une couleur rouge intense. Son homologue ferriïne, notée [Fe]3+, est bleue car elle absorbe dans le rouge (λmax = 604 nm, ε604 = 290 L.mol−1.cm−1). Il est donc possible de suivre la réaction de Bazsa et Lengyel par spectroscopie d'absorption UV-Visible.

réaction BL : FeII rouge, FeIII bleu


Photographie 1. La réaction de Bazsa et Lengyel peut être suivie par spectroscopie UV-Visible. A gauche, solution rouge de ferroïne [FeII(1,10-phénantroline)3]2+, à droite solution bleue de ferriïne [FeIII(1,10-phénantroline)3]3+. La cuvette du milieu représente la réaction en cours, en absence d'agitation.

L'étude de sa cinétique dans différentes conditions initiales a permis d'en déterminer les constantes de vitesse :

k1 = 1.35×10−2 L2.mol−2.s−1 ; k'2 =7.7×10+7 L.mol−1.s−1

k3 = 3.97×10+4 L2.mol−2.s−1  ; k4 = 2.75×10+1 L.mol−1.s−1

(Marie-Hélène Deniel, Thèse, 1996)

La concentration de l'eau est considérée comme quasi constante (H2O ≈ 55 mol.L−1), c'est pourquoi on utilise la constante k'2 = k2.H2O, et la loi de vitesse de la réaction (r 3a) dans le sens inverse est

r2 =  k'2.(NO2)2

Une version plus détaillée du mécanisme (r 3a, 3b), constituée de réactions réellement élémentaires, a été confrontée aux données expérimentales, sans donner de résultats significativement meilleurs.

Il s'agit d'une réaction très intéressante. Nous en étudierons donc d'abord les principales propriétés, avant de revenir à la question des relations de dépendance des variables.

La programmation de ce mécanisme, en utilisant le système complet d'équations différentielles, ne pose pas de problème particulier. Si l'eau ne participe pas à la cinétique, nous l'avons toutefois fait figurer comme une des variables du système, afin de comptabiliser sa production (ou consommation) par la réaction.

Nous avons ajouté, après l'intégration numérique, le calcul des concentrations de [Fe]3+, HNO2 et NO2 normalisées par leur maxima respectifs, afin de pouvoir en comparer facilement les cinétiques.

télécharger BL.cpp     télécharger BLdirect.sac 


1. Simulation dans le sens [Fe]2+ → [Fe]3+


Le fichier BLdirect.sac contient les constantes de vitesse ci-dessus et des conditions initiales correspondant à une évolution de [Fe]2+ vers [Fe]3+. Les valeurs des constantes k1 et k'2 (k'2≫ k1) imposent une concentration initiale élevée HNO3 (H+0 = NO30 = 1.88 mol.L−1), pour avoir un taux de conversion appréciable.D'autre part, une faible quantité initiale de HNO2 est nécessaire pour que la simulation démarre. Expérimentalement, des traces résiduelles dans l'eau utilisée peuvent être suffisantes.


Simulez.

A- La courbe d'évolution de [Fe]2+ et [Fe]3+ ressemble à celle d'une réaction autocatalytique (Fig. III.8).


B- Ajoutez aux concentrations initiales environ 2 %, par exemple, de la quantité de HNO2 produit par cette première simulation (soit HNO2,0 ≈ 1.5×10−6 mol.L−1). La période d'induction est raccourcie, et cela d'autant plus que vous augmentez cette concentration initiale. Cela confirme le caractère autocatalytique de l'ensemble de la réaction.

Il ne s'agit pas ici d'une réaction autocatalytique de type élémentaire comme A + B → 2 B, mais d'un processus globalement autocalytique dû à l'ensemble du mécanisme. Pour le comprendre, réduisons ce mécanisme à sa plus simple expression : H2O, H+ et NO3 peuvent être mis de côté puisque leurs concentrations ne varient pratiquement pas ; on peut considérer également que l'évolution se faisant dans le sens [Fe]2+ vers [Fe]3+, la deuxième réaction peut se résumer en

[Fe]2+ + NO2  →  [Fe]3+ + HNO2     (c)

et la première en

HNO2  ⇄  2 NO2     (d)

On voit ainsi que lorsqu'une molécule de [Fe]2+ est transformée en [Fe]3+, par l'action de NO2, une molécule de HNO2 est également formée (réaction c). Mais la réaction réversible (d) a pour résultat de transformer une molécule de HNO2 en 2 molécules de NO2, de sorte que grosso modo, le mécanisme se schématise encore :

[Fe]2+ + NO2  →  [Fe]3+ + 2 NO2     (e)

Ce qui fait bien apparaître un processus autocatalytique.

Toutefois, il ne s'agit là bien sûr que d'une schématisation grossière destinée à la compréhension. En particulier, il serait inexact d'en conclure que NO2 est l'autocatalyseur de cette réaction. En réalité, HNO2 et NO2 sont indissociables, puisque liés par une réaction réversible, et participent ensembles à l'autocatalyse. On peut d'ailleurs vérifier, dans la simulation précédente, que si l'on ajoute le même pourcentage de NO2 résultant de la simulation initiale (soit environ 1×10−8 mol.L−1), au lieu de HNO2, il n'y a pas de diminution notable de la période d'induction. Cela est dû au fait que pour former NO2, il faut une quantité environ 100 fois supérieure de HNO2.


C- Le tracé sur une même page graphique des concentrations normalisées montre que [Fe]3+ et HNO2 ont une évolution quasi similaire, tandis que celle de NO2 les précède.


D- Revenez aux conditions initiales du fichier BLdirect.sac et augmentez Fin (8×102 s par exemple). Divisez successivement la concentration initiale HNO2,0 par 103, jusqu'à 10−16 mol.L−1. Vous constatez d'une part que la période d'induction est très sensible à cette concentration initiale, et d'autre part qu'une très faible quantité de HNO2 suffit à faire démarrer la réaction : la qualité de l'eau utilisée a donc une grande importance pour cette réaction, et la mesure de la période d'induction pourrait servir à doser sa teneur en HNO2


2. Simulation dans le sens [Fe]3+ → [Fe]2+


La réaction de Bazsa et Lengyel n'est pas seulement autocatalytique, elle est aussi réversible : il est possible expérimentalement de la faire évoluer de [Fe]3+ vers [Fe]2+. Pour cela, il faut d'abord préparer une solution relativement concentrée de [Fe]3+ par la méthode précédente puis diluer le résultat avec de l'eau. On observe alors un retour, partiel, du [Fe]3+ vers [Fe]2+.

Les concentrations initiales du fichier BLinverse.sac ont été calculées à partir d'une première simulation dans le sens direct de sorte qu'après dilution les concentrations globales des espèces réactives soient les mêmes, et donc que la position d'équilibre soit également la même.

Simulez avec les conditions initiales de BLinverse.sac.

A- Vérifiez que la position d'équilibre obtenue est la même qu'en 1.


B- Les courbes d'évolution des différentes espèces ne présentent plus de caractère autocatalytique.

Dans cette situation, le schéma grossier de la réaction pourrait s'écrire :

[Fe]3+ + HNO2  →  [Fe]2+ + NO2      (c')

HNO2  ⇄  2 NO2     (d)

Lors de la transformation d'une molécule de [Fe]3+ en [Fe]2+, par l'action de HNO2, une molécule de NO2 est formée (c'). Mais deux molécules de NO2 sont nécessaires pour régénérer une molécule de HNO2 (d). Il n'y a donc plus d'amplification de l'élément moteur de la réaction, autrement dit plus de processus autocatalytique lorsque ce système relaxe dans le sens [Fe]3+ vers [Fe]2+.


Les explications que l'on peut donner de la présence , ou non, d'un processus autocatalytique dans la réaction de Bazsa et Lengyel semblent correctes, voire évidentes, a posteriori, parce que la simulation, comme l'expérience, montre que les choses se passent en gros comme cela, avec le jeu de constantes de vitesse utilisé. Mais il faut bien reconnaître que cela ne serait guère possible à la simple vue du mécanisme (r 3a, 3b) pour lequel, à cause de la réversibilité des réactions, il n'est pas aisé de prévoir a priori dans quel sens les choses pourraient se passer.


3. Système d'équations réduit


Comme nous l'avons vu dans le cours, il est possible de réduire le système d'équations du mécanisme (r 3a, b) à deux équations différentielles seulement (eq 13 et 14), correspondant aux deux variables choisies comme indépendantes, les cinq autres variables étant des combinaisons linéaires de celles-ci (eq 20 à 24).

télécharger BL_reduit.cpp     télécharger BL_reduit.sac

(Le fichier BL_reduit.sac contient les mêmes valeurs de constantes de vitesse et conditions initiales que le fichier BLdirect.sac, mais la numérotation des variables y est différente et il n'y a pas de concentrations normalisées.)

Le point important pour la programmation en système réduit est que le calcul des variables non intégrées doit se faire dans la fonction eqdiff, afin d'utiliser les valeurs courantes des variables intégrées.

On déclare donc dans eqdiff les variables locales c2 à c6, auxquelles on affecte les valeurs courantes de [Fe]3+, ..., NO3 (eq 20 à 24) : les valeurs initiales sont référencées par la variable globale ca[...][0], tandis que les valeurs courantes d'intégration sont référencées par y[...].

Les vitesses r1 à r4 sont ensuite déclarées et calculées à l'aide des variables précédentes. Et enfin les deux dérivées dy[0] (dNO2/dt) et dy[1] (d[Fe]2+/dt) sont calculées (eq 13 et 14) :

void eqdiff(Sa_data x, Sa_data *y, Sa_data *dy)
{
   Sa_data c2, c3, c4, c5, c6;

   c2 = ca[2][0] + ca[1][0] - y[1];                               // [Fe]3+
   c3 = ca[3][0] + 0.5*(ca[1][0] - y[1] - ca[0][0] + y[0]);       // H2O
   c4 = ca[4][0] + 0.5*(ca[1][0] - y[1] + ca[0][0] - y[0]);       // HNO2
   c5 = ca[5][0] - 1.5*(ca[1][0] - y[1]) + 0.5*(ca[0][0] - y[0]); // H+
   c6 = ca[6][0] - 0.5*(ca[1][0] - y[1] - ca[0][0] + y[0]);       // NO3-

   Sa_data r1,r2,r3,r4;

   r1 = p[0]*c5*c6*c4;           // H+ + NO3- + HNO2  <->  2NO2 + {H2O}
   r2 = p[1]*y[0]*y[0];          // inverse
   r3 = p[2]*c5*y[1]*y[0];       // H+ + [Fe]++ + NO2  <->  [Fe]+++ + HNO2
   r4 = p[3]*c2*c4;              // inverse

   dy[0] = 2*r1 -2*r2 - r3 + r4; // dNO2/dt
   dy[1] = - r3 + r4;            // d[Fe]++/dt
}

La fonction fappel consiste uniquement en l'appel de srkvi et au recalcul, dans une boucle sur le nombre de points, des variables non intégrées, puisque celles-ci n'ont pas été mémorisées. Noter que la boucle commence à i = 1, puisque les valeurs initiales n'ont pas besoin d'être recalculées, et que les valeurs "courantes" sont ici référencées par la variable globale ca[...][i] :

void fappel()
{
   srkvi(n_diff, &ca[first_var], ind, npt, h0, tol, iset, jacob, h_compt, c_min);

   for (int i = 1; i < npt; ++i) 
   {
      ca[2][i] = ca[2][0] + ca[1][0] - ca[1][i];                                   // [Fe]3+
      ca[3][i] = ca[3][0] + 0.5*(ca[1][0] - ca[1][i] - ca[0][0] + ca[0][i]);       // H2O
      ca[4][i] = ca[4][0] + 0.5*(ca[1][0] - ca[1][i] + ca[0][0] - ca[0][i]);       // HNO2
      ca[5][i] = ca[5][0] - 1.5*(ca[1][0] - ca[1][i]) + 0.5*(ca[0][0] - ca[0][i]); // H+
      ca[6][i] = ca[6][0] - 0.5*(ca[1][0] - ca[1][i] - ca[0][0] + ca[0][i]);       // NO3-
   }
}

A- Vérifiez que vous obtenez bien les mêmes résultats qu'avec le système complet d'équations différentielles.


B- Nous avons signalé dans le cours que l'utilisation d'un système réduit peut entraîner, suivant le choix des variables indépendantes, certains problèmes numériques. Ceux-ci apparaissent bien sûr d'autant plus que le système présente des aspects non linéaires, d'une part, et lorsque certaines concentrations restent très petite, bien que très active, d'autre part. La prudence est donc de mise ici, en présence de processus autocatalytique, et la concentration NO2 demeurant relativement petite.

Dans le cas présent, le problème n'est pas trop grave, mais il pourrait l'être davantage avec des paramètres différents. Nous avons vu dans la partie 1 que la réaction démarrait avec des concentrations initiales de HNO2 de l'ordre de 10−16 mol.L−1. En fait, avec le système complet (BL.cpp), il est possible de descendre sans problème jusqu'à 10−26 mol.L−1 (nous n'avons pas jugé utile de tester en-deçà !). Avec le système réduit (BL_reduit.cpp), la réaction cesse de démarrer aux environs de 10−20 mol.L−1, et aucun réglage des paramètres d'intégration (pas max, tolérance, c_min) ne permet de contourner le problème. 

Ce problème vient de l'accumulation des erreurs d'arrondi de façon non répartie sur les variables non intégrées. Il est possible qu'un choix différent des variables indépendantes donne un comportement différent, meilleur... ou pire.  La règle en présence de ce type de problème numérique est plutôt d'utiliser le système complet d'équations différentielles, qui est, de plus, en général beaucoup plus facile à écrire, d'où un risque d'erreur d'écriture moins important.

Il n'en reste pas moins que l'utilisation d'un système réduit d'équations différentielles conduit théoriquement au mêmes résultats.