4
III. Exemples de simulation de dosages acido-basiques
Objectifs : dans ce TP, on se propose d’utiliser les méthodes des bibliothèques scientifiques de Python pour simuler
des dosages acido-basiques. ( TP réalisé en environ 2h par des étudiants de fin de sup ou début de spé)
A. Dosage d’un acide faible – influence de la dilution
1. On se propose de simuler le dosage de 10 mL d’une solution décimolaire d’un acide faible (CH3COOH pKa = 4.8)
par une base forte, NaOH, elle aussi décimolaire. On veut la courbe représentant le pH en fonction du volume de
base ajoutée.
■ Mettre le problème en équations. On utilisera pour cela les équations d’électroneutralité, de conservation de la
matière et les constantes thermodynamiques (Pas la méthode de la RP qui obligerait à faire des hypothèses).
■ Une fois le problème mis en équation, résoudre, à l’aide de routine scipy.optimize.bisect, l’équation
obtenue qui permet la détermination de [H+] pour un volume Vb de base versé. On donne un extrait de la doc de
scipy.
scipy.optimize.bisect(f, a, b, args=(), xtol=1e-12)
Find root of a function within an interval Basic bisection routine to find a zero of the function f between the arguments
a and b f(a) and f(b) can not have the same signs. Slow but sure
f : function Python function returning a number. f must be continuous, and f(a) and f(b) must have opposite signs.
a : number One end of the bracketing interval [a,b]
b : number The other end of the bracketing interval [a,b]
xtol : number, optional ( la valeur par défaut est elle raisonnable pour notre problème)
args : tuple, optional containing extra arguments for the function f. f is called by f(x ,args)
■ Répéter l’opération pour 100 volumes compris entre 0 et 20 mL. et obtenir ainsi le plot (pH, Vb) dont l’aspect est
reproduit ci-dessous.
2. Modifier le programme précédent pour mettre en évidence l’influence de la dilution et obtenir les courbes de
dosages pour des solutions d’acide et de soude respectivement 0.01 ; 0.001 et 0.0001 molaires (le volume équivalent
reste donc le même).