### Importation des bibliothèques from math import log10 import numpy as np import matplotlib.pyplot as plt ### Définition des variables VE=13*0.001 #volume équivalent en L obtenu lors du titrage de l'effluent Veff=200 #volume de l'effluent en L à traiter compteur=0 #initialisation d'un compteur ### Calcul de grandeurs nHOinitial=Veff*(0.05*VE/0.001) #calcul de la quantité en mol d'ions hydroxyde présent dans l'effluent #définition du volume maximal Vmax à introduire dans l'effluent en solution commerciale correspondant à une quantité double de H3O+ par rapport au mélange stoechiométrique Vmax=int(2*(nHOinitial/10)) ### Initialisation des listes de quantités de HO-, H+, de pH et de volume V versé nHO, nH, pH, V = [nHOinitial], [0], [-log10(1E-14/(nHOinitial/Veff))], [0] # initialisation des listes de concentration en quantité des ions hydroxyde HO-, hydronium H3O+ et de la liste pH ### Remplissage des listes while compteur <= Vmax : compteur=compteur+1 aux=nHOinitial-10*compteur if aux > 0 : nHO.append(aux) nH.append(0) V.append(compteur) pH.append(- log10(1E-14/(aux/(Veff+compteur)))) #expression du pH si on connaît [HO-] elif 10*compteur-nHOinitial > 0 : nHO.append(0) nH.append(10*compteur-nHOinitial) V.append(compteur) pH.append(- log10(nH[compteur]/(Veff+compteur))) else : nHO.append(0) nH.append(0) V.append(compteur) pH.append(7) ### Affichage des graphiques plt.figure(figsize=(16,8)) plt.subplot(121) plt.plot(V, nHO, 'bx-', label="$n(\mathrm{HO^-})$ en mol") plt.plot(V, nH, 'rx-', label="$n(\mathrm{H_3O^+}) en mol") plt.xlabel("volume en L") plt.ylabel('$n$ (mol)') plt.legend() plt.subplot(122) plt.ylim(0,14) #définition des valeurs max et min des ordonnées plt.plot(V, pH, 'rx-', label="pH") plt.xlabel("volume en L") plt.ylabel('$pH$') plt.legend() plt.show()