Exercice : Tracé d'un graphique

On prend comme exemple une réaction chimique.

Pour suivre une réaction lente, on mesure l’évolution d’un paramètre physico-chimique modifié par la réaction au cours de son évolution. On établit ensuite le lien entre ce paramètre et l’avancement x de la réaction. Les méthodes classiques de suivi sont par titrage, par suivi conductimétrique, manométrique et spectrophotométrique.

Pour un suivi spectrophotométrique, les longueurs d’onde d’absorption des ions sont assez différentes pour que l’on puisse mesurer l’absorbance induite par une seule de ces deux espèces chimiques, sans être perturbé par l’autre espèce chimique (en choisissant judicieusement la longueur d’onde du spectrophotomètre). C’est la méthode que nous retiendrons ici.

Pendant la manipulation, on note que l’absorbance A mesurée décroît au cours d’un temps, au fur et à mesure que les ions dichromate sont consommés. Puisque ces derniers sont réactifs limitants, l’absorbance tend vers zéro au bout d’un temps assez long.

Question

Exécuter le code suivant pour voir l'évolution de l'absorbance en fonction du temps.

1
# -*- coding: utf-8 -*-
2
### Cinétique d'une réaction A = B
3
### Importation des bibliohèques
4
5
import matplotlib.pyplot as plt
6
7
###Mesures expérimentales
8
9
# Temps en minutes
10
t = [x for x in range(21)]
11
12
# Absorbance (proportionnelle à la concentration A)
13
A = [1.417, 1.161, 0.982, 0.843, 0.722, 0.622, 0.538, 0.469, 0.401, 0.342, 0.293, 0.252, 0.216, 0.185, 0.159, 0.137, 0.118, 0.101, 0.087, 0.075, 0.065]
14
15
### Tracé A=f(t)
16
17
plt.figure()
18
plt.plot(t, A) # '.' pour tracer les points sinon lissage de la courbe sans les points
19
plt.xlabel('t (min)')
20
plt.ylabel('A(t)')
21
plt.title('A = f(t)')   
22
plt.grid()        
23
24
plt.show()
25
26
### Tracé ln(A/A0) = f(t)
27
28
### Tracé 1/A = f(t)

Question

Compléter la partie du code qui permet d'afficher la courbe \(ln\Biggl(\dfrac{A}{A_0}\Biggr)=f(t)\)

Indice

Il faut créer une liste avec les valeurs de ln(A/A0) à partir de la liste des valeurs de l'absorbance A.

Solution

1
### Tracé ln(A/A0) = f(t)
2
3
lnA = [np.log(x/A[0]) for x in A]
4
5
plt.figure(2)
6
plt.plot(t, lnA, '.') # '.' pour tracer les points sinon lissage de la courbe sans les points
7
plt.xlabel('t (min)')
8
plt.ylabel('ln (A(t)/A0)')
9
plt.title('ln (A(t)/A0) = f(t)')   
10
plt.grid()        
11
12
plt.show()

Question

Compléter la partie du code qui permet d'afficher la courbe \(\dfrac{1}{A}=f(t)\)

Indice

Il faut créer une liste avec les valeurs de \(\dfrac{1}{A}\) à partir de la liste des valeurs de l'absorbance A.

Solution

1
### Tracé ln(A/A0) = f(t)
2
3
lnA = [np.log(x/A[0]) for x in A]
4
5
plt.figure(2)
6
plt.plot(t, lnA, '.') # '.' pour tracer les points sinon lissage de la courbe sans les points
7
plt.xlabel('t (min)')
8
plt.ylabel('ln (A(t)/A0)')
9
plt.title('ln (A(t)/A0) = f(t)')   
10
plt.grid()        
11
12
plt.show()