Index de l'article

Chimie - Dosage d'une solution d'acide par la soude

Source

Extrait d'un manuel de chimie. Ce script n'a aucune erreur!

La théorie pour comprendre

 

Je retiens:

  • Une mole d'acide réagit avec une mole de base dans les proportions stœchiométriques
  • Je me méfie des unités - volume en mL!

 

Des print() pour comprendre...

import matplotlib.pyplot as plt
import numpy as np
C_B=0.2
V_A=5
V_E=15
C_A=C_B*V_E/V_A
n_A=C_B*V_E*1e-3

V_B1=np.linspace(0,V_E,V_E*1+1) # V_E*1+1 -valeur modifiée pour simplifier l'affichage!
n_a1=(C_A*V_A-C_B*V_B1)*1e-3
n_b1=C_B*V_B1*1e-3
n_B1=0*V_B1

V_B2=np.linspace(V_E,V_E*1.5,V_E*10+1)
n_a2=0*V_B2
n_b2=(0*V_B2+C_B*V_E)*1e-3
n_B2=C_B*(V_B2-V_E)*1e-3

print(V_E,V_E*10+1)
print("V_B1=",V_B1)
print("n_a1=",n_a1)
print("n_b1=",n_b1)
print("n_B1=",n_B1)

Je comprends:

  • V_E*10+1 me donnera 151 car je veux 151 valeurs dans le programme final
  • V_B1 est une liste (ici de 16 valeurs - V_E*1+1) de 0 à 15 tous les 1.0
  • n_a1, n_b1 et n_B1 sont aussi des listes puisque dans leurs relations se trouve V_B1!

Je dois comprendre aussi que mon dosage se découpe en 2 étapes:

  • Le versement progressif de la Base => neutralisation de l'acide => liste V_B1
  • Le versement progressif de la Base au delà de la neutralisation => ajout des HO- =>liste V_B2

J'anticipe le script final:

  • plt.plot pour les graphiques
  • Regroupement par couleur des éléments présents pour les 2 étapes donc pour les 2 listes V_B1 et V_B2

 

Script final

import matplotlib.pyplot as plt
import numpy as np
C_B=0.2
V_A=5
V_E=15
C_A=C_B*V_E/V_A
n_A=C_B*V_E*1e-3

V_B1=np.linspace(0,V_E,V_E*10+1)
n_a1=(C_A*V_A-C_B*V_B1)*1e-3
n_b1=C_B*V_B1*1e-3
n_B1=0*V_B1

V_B2=np.linspace(V_E,V_E*1.5,V_E*10+1)
n_a2=0*V_B2
n_b2=(0*V_B2+C_B*V_E)*1e-3
n_B2=C_B*(V_B2-V_E)*1e-3

plt.plot(V_B1,n_a1,color="blue",label="AH")
plt.plot(V_B1,n_b1,color="green",label="A-")
plt.plot(V_B1,n_B1,color="red",label="HO-")

plt.plot(V_B2,n_a2,color="blue")
plt.plot(V_B2,n_b2,color="green")
plt.plot(V_B2,n_B2,color="red")

plt.title("Evolution des quantités de matières des espèces \nen fonction du volume de solution titrante versée \nTitrage de l'acide lactique par la soude")
plt.legend(loc="upper right")
plt.xlabel("Volume de la solution titrante (en mL)")
plt.ylabel("Quantités de matières des espèces en solution (en mol)")
plt.grid()

plt.show()