Physique-chimie · Terminale · Enseignement de spécialité · Fiche 6

Qui prédomine ?
L'acide ou sa base conjuguée.

Dans une solution contenant un couple acide-base, les proportions relatives de l'acide et de sa base conjuguée changent avec le pH. Le diagramme de distribution représente ces proportions en fonction du pH, et permet d'en déduire l'espèce qui prédomine — un outil essentiel pour choisir un indicateur coloré lors d'un titrage.

distribution.py — aperçupKa = 4,8
pH p

Objectif de la fiche : tracer, à l'aide d'un langage de programmation, le diagramme de distribution des espèces d'un couple acide-base de pKa donné, puis l'exploiter pour construire un diagramme de prédominance et justifier le choix d'un indicateur coloré.

Cette fiche est autonome : tu n'as besoin d'aucun autre document. Chaque étape contient un script incomplet à compléter, puis à copier-coller dans Thonny (ou dans la console Basthon tout en bas de la page si tu n'as pas Thonny sous la main).

+

Contexte : deux espèces qui se partagent la solution

À savoir
  • Un couple acide-base, comme CH₃COOH/CH₃COO⁻, est lié par l'équilibre CH₃COOH(aq) + H₂O(ℓ) = CH₃COO⁻(aq) + H₃O⁺(aq), de constante d'acidité Ka = 10⁻ᵖᴷᵃ.
  • À l'équilibre, l'égalité entre le quotient de réaction et Ka, combinée à la définition du pH, conduit à la relation [CH₃COO⁻]eq / [CH₃COOH]eq = 10^(pH−pKa).
  • En notant p_acide et p_base les proportions de chaque espèce dans le mélange (avec p_acide + p_base = 1), on en déduit : p_acide = 1 / (1 + 10^(pH−pKa)) et p_base = 1 − p_acide.
  • Tracer ces deux proportions en fonction du pH donne le diagramme de distribution du couple.
01

Tracer le diagramme de distribution

Consigne
  • Complète la fonction pA(x,pKa), qui renvoie la proportion de la forme acide 1/(1+10^(x−pKa)) pour un pH x donné.
  • Crée un tableau pH de 100 valeurs régulièrement réparties entre 0 et 14, et prends pKa = 4.8 (couple de l'acide éthanoïque).
  • Trace pA(pH,pKa) en bleu trait plein (label 'acide') et 1-pA(pH,pKa) en noir tirets (label 'base') sur le même graphe.
etape1_diagramme_distribution.py
import numpy as np
import matplotlib.pyplot as plt

def pA(x,pKa):
    return 1/(1+10**(_-___))  # TODO : proportion de la forme acide

pH = np.linspace(_,__,___)  # TODO : 100 valeurs de pH entre 0 et 14
pKa=___  # TODO : couple de l'acide éthanoïque

plt.plot(pH,pA(pH,pKa),'__',label='acide')
# TODO : trace la proportion de base, en noir tirets
plt.plot(pH,_-pA(__,___),'___',label='base')
plt.grid(True)
plt.xlabel('pH')
plt.ylabel("proportions")
plt.legend()
plt.show()
Indice

Dans pA(x,pKa), le paramètre x joue le rôle du pH : on retrouve exactement la formule 1/(1+10^(pH−pKa)) de la partie « Contexte », en remplaçant pH par x.

Résultat attendu

Une courbe bleue qui part de 1 à pH = 0 et descend vers 0, croisant une courbe noire en tirets qui fait l'inverse : les deux courbes se croisent exactement à pH = pKa = 4,8, là où les deux espèces sont à 50 % - 50 %.

02

Diagramme de prédominance et domaines de majorité

À savoir
  • Le diagramme de distribution montre que l'espèce acide prédomine pour pH < pKa, et l'espèce basique pour pH > pKa. C'est le diagramme de prédominance du couple.
  • Une espèce est dite majoritaire devant l'autre si sa concentration est au moins 10 fois supérieure. On montre que cela correspond à pH < pKa − 1 pour l'acide majoritaire, et pH > pKa + 1 pour la base majoritaire — ce qui fait apparaître un troisième domaine intermédiaire, où les concentrations sont proches.
CH₃COOH majoritaire[CH₃COOH] ≥ 10·[CH₃COO⁻]
[CH₃COOH] ≈ [CH₃COO⁻]
CH₃COO⁻ majoritaire[CH₃COO⁻] ≥ 10·[CH₃COOH]
Consigne
  • En réutilisant la fonction pA de l'étape précédente, vérifie numériquement que la frontière pH = pKa − 1 correspond bien à un rapport de concentrations de 10 pour 1 en faveur de l'acide.
etape2_verification_frontieres.py
# TODO : proportion d'acide à la frontière inférieure (pH = pKa - 1)
p_bas = pA(pKa__, pKa)
print("à pH = pKa-1 :", p_bas, "soit un rapport de", p_bas/(1-p_bas))

# TODO : proportion d'acide à la frontière supérieure (pH = pKa + 1)
p_haut = pA(pKa__, pKa)
print("à pH = pKa+1 :", p_haut, "soit un rapport de", (1-p_haut)/p_haut)
Résultat attendu

À pH = pKa − 1, la proportion d'acide vaut environ 0,909 (90,9 %) contre 9,1 % de base : le rapport affiché doit valoir 10,0. Symétriquement, à pH = pKa + 1, la proportion d'acide tombe à 0,091 et le rapport base/acide affiché vaut aussi 10,0.

03

Justifier le choix d'un indicateur coloré

À savoir
  • Un indicateur coloré est un couple acide-base dont les deux espèces ont des teintes différentes. Le bleu de bromothymol (BBT) a pour espèce acide HInd, jaune, et pour espèce basique Ind⁻, bleue ; son pKa vaut 7 à 25 °C.
  • Quand l'espèce acide est majoritaire (pH < pKa−1), elle impose sa couleur : la solution est Jaune. Quand c'est la base qui est majoritaire (pH > pKa+1), la solution est Bleu. Entre les deux se trouve la zone de virage, où la teinte est un mélange des deux.
  • Lors d'un titrage, un indicateur coloré est adapté si sa zone de virage est entièrement incluse dans le saut de pH observé à l'équivalence.
Consigne
  • Complète la fonction couleur(pH,pKa), qui renvoie la teinte de la solution ('jaune', 'bleu', ou 'zone de virage') selon la valeur du pH.
  • Complète ensuite la fonction indicateur_convient(pKa, pH_avant, pH_apres), qui renvoie True si la zone de virage de l'indicateur est bien comprise entre pH_avant et pH_apres (le saut de pH mesuré lors d'un titrage).
etape3_indicateur_colore.py
def couleur(pH,pKa):
    if pH _ pKa__:
        return 'jaune'
    elif pH _ pKa__:
        return 'bleu'
    else:
        return 'zone de virage'

def indicateur_convient(pKa,pH_avant,pH_apres):
    return pH_avant __ pKa-1 and pKa+1 __ pH_apres
Indice

Les deux fonctions réutilisent les mêmes bornes que l'étape précédente : pKa-1 et pKa+1. Pour indicateur_convient, il faut que le saut de pH « dépasse » la zone de virage des deux côtés à la fois, avec des inégalités <= ou >= selon le sens.

Résultat attendu

Pour le BBT (pKa = 7) : couleur(4, 7) renvoie 'jaune', couleur(10, 7) renvoie 'bleu', et couleur(7, 7) renvoie 'zone de virage'. Pour un titrage avec un saut de pH entre 3 et 11 (par exemple), indicateur_convient(7, 3, 11) doit renvoyer True ; avec un saut trop étroit, entre 6,5 et 7,5, la même fonction doit renvoyer False.

04

Pour aller plus loin : le cas d'un diacide (la glycine)

À savoir
  • Certaines espèces, comme les acides α-aminés (par exemple la glycine), possèdent deux couples acide-base successifs, caractérisés par pKa1 et pKa2. Trois espèces peuvent alors prédominer : AH₂⁺, AH (forme neutre) et A⁻, séparées par pKa1 et pKa2.
  • Le même raisonnement qu'à l'étape 1 permet d'établir : p_AH₂⁺ = 1 / (1 + 10^(pH−pKa1) + 10^(2pH−pKa1−pKa2)) et p_AH = 1 / (1 + 10^(pKa1−pH) + 10^(pH−pKa2)), puis p_A⁻ = 1 − p_AH₂⁺ − p_AH.
  • Pour la glycine, pKa1 = 2,4 et pKa2 = 9,6.
Consigne
  • Complète les fonctions pAH2(x,pKa1,pKa2) et pAH(x,pKa1,pKa2) ci-dessous.
  • Trace les trois proportions pAH2, pAH et 1-pAH2-pAH en fonction du pH, avec une légende pour chaque espèce.
etape4_diacide_glycine.py
import numpy as np
import matplotlib.pyplot as plt

def pAH2(x,pKa1,pKa2):
    return 1/(1+10**(_-____)+10**(_*x-pKa1-pKa2))

def pAH(x,pKa1,pKa2):
    return 1/(1+10**(pKa1-_)+10**(_-pKa2))

pH = np.linspace(0,14,100)

pKa1=___  # TODO : pKa du couple AH2+/AH
pKa2=___  # TODO : pKa du couple AH/A-

plt.plot(pH,pAH2(pH,pKa1,pKa2),'b-',label='AH2+')
plt.plot(pH,pAH(pH,pKa1,pKa2),'g.',label='AH')
# TODO : trace la proportion de A-, en noir tirets
plt.plot(pH,_-pAH2(pH,pKa1,pKa2)-pAH(__,____,____),'___',label='A-')
plt.grid(True)
plt.xlabel('pH')
plt.ylabel("proportions")
plt.legend()
plt.show()
Indice

Chaque exposant se lit directement dans la formule de l'« À savoir » : x-pKa1, 2*x-pKa1-pKa2 pour pAH2 ; pKa1-x, x-pKa2 pour pAH. Le paramètre x représente ici encore le pH.

Résultat attendu

Trois domaines apparaissent sur le graphe : AH₂⁺ prédomine pour pH < 2,4, la forme neutre AH prédomine largement entre les deux pKa (elle atteint presque 100 % au milieu), et A⁻ prédomine pour pH > 9,6.

+

Conclusion

À retenir
  • Le diagramme de distribution donne les proportions des deux espèces d'un couple acide-base en fonction du pH ; il permet d'en déduire le diagramme de prédominance (acide prédominant si pH < pKa, base si pH > pKa).
  • Une espèce est majoritaire (rapport 10:1) au-delà d'un pH à ±1 unité du pKa, ce qui définit trois domaines et, pour un indicateur coloré, une zone de virage.
  • Un indicateur coloré est adapté à un titrage si sa zone de virage est incluse dans le saut de pH observé à l'équivalence.
  • Le même raisonnement se généralise à des espèces possédant plusieurs couples acide-base successifs (diacides, polyacides, acides aminés), en ajoutant les termes correspondants dans les expressions des proportions.

Pense-bête — diagramme de distribution

p_acide= 1 / (1 + 10^(pH−pKa))
p_base= 1 − p_acide
pH = pKa50 % - 50 %, les deux courbes se croisent
pH < pKa−1acide majoritaire (≥ 10 fois plus concentré)
pH > pKa+1base majoritaire
np.linspace(0,14,100)100 valeurs de pH régulièrement réparties

Pas de Thonny sous la main ? Utilise Basthon

Ouvrir dans un nouvel onglet ↗
Basthon est une console Python qui tourne directement dans le navigateur, sans rien installer. Colle ici (avec Ctrl+V ou Cmd+V) le code copié avec les boutons « Copier le code » ci-dessus, puis appuie sur Entrée pour l'exécuter.
La console Basthon n'a pas pu se charger ici (bloquée par ton navigateur ou ton établissement). Ouvre-la directement dans un nouvel onglet.