{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Réactions acido-basiques\n", "## Taux d'avancement final de la réaction d'un acide faible sur l'eau\n", "\n", "$HA_{(aq)}+H_2O_{(l)}\\rightarrow A^{-}_{(aq)} + H_3O^{+}$" ] }, { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ":download:`Télécharger le pdf <./taux-avancement.pdf>`\n", "\n", ":download:`Télécharger le notebook <./taux-avancement.ipynb>`\n", "\n", ":download:`Lancer le notebook sur binder (lent) `" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Import des bibliothèques \n", "\n", "import numpy as np # ou import math" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Première possibilité avec calcul des avancements final et maximal\n", "\n", "def taux (Ca, pKa, V): # solution d'acide faible de concentration Ca et de volume V\n", " Ka = 10**(-pKa)\n", " xmax = Ca*V # xmax = Ca*V\n", " # Equation du second degré : (xf/V)**2 + Ka*xf/V-Ka*Ca=0\n", " a = 1/(V**2)\n", " b = Ka/V\n", " c = -Ka*Ca\n", " delta = b**2-4*a*c\n", " xf1 = (-b-np.sqrt(delta))/(2*a)\n", " xf2 = (-b+np.sqrt(delta))/(2*a)\n", " if xf1<0:\n", " xf=xf2\n", " elif xf2<0:\n", " xf = xf1\n", " else :\n", " xf = min(xf1,xf2)\n", " taux = xf/xmax\n", " print(\"L'avancement final vaut \",xf,\" mol\")\n", " print(\"L'avancement maximal vaut\",xmax,\"mol\")\n", " print(\"et le taux d'avancement final vaut \", taux,\" soit \",taux*100,\"%\")\n", " return (xf,xmax,taux)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "L'avancement final vaut 5.5513986042768204e-05 mol\n", "L'avancement maximal vaut 0.002 mol\n", "et le taux d'avancement final vaut 0.0277569930213841 soit 2.77569930213841 %\n" ] }, { "data": { "text/plain": [ "(5.5513986042768204e-05, 0.002, 0.0277569930213841)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ca = 0.2 # concentration de la solution en acide faible apporté en mol/L\n", "pKa = 3.8 # pKa du couple acide faible/base faible\n", "V = 0.010 # Volume de la solution en L\n", "taux (Ca,pKa,V)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Deuxième possibilité avec calcul de la concentration effective finale des ions oxonium\n", "\n", "def taux (Ca, pKa): # solution d'acide faible de concentration Ca \n", " Ka = 10**(-pKa)\n", " \n", " # Equation du second degré : Coxonium**2 + Ka*Coxonium-Ka*Ca=0\n", " a = 1\n", " b = Ka\n", " c = -Ka*Ca\n", " delta = b**2-4*a*c\n", " Coxonium1 = (-b-np.sqrt(delta))/(2*a)\n", " Coxonium2 = (-b+np.sqrt(delta))/(2*a)\n", " if Coxonium1<0:\n", " Coxonium=Coxonium2\n", " elif Coxonium2<0:\n", " Coxonium = Coxonium1\n", " else :\n", " Coxonium = min(Coxonium1,Coxonium2)\n", " taux = Coxonium/Ca\n", " print (\" La concentration effective finale des ions oxonium vaut \",Coxonium,\" mol.L-1 \\n\"\n", " \"et le taux d'avancement final vaut \", taux,\" soit \",taux*100,\"%\")\n", " return (Coxonium,taux)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " La concentration effective finale des ions oxonium vaut 0.005551398604276821 mol.L-1 \n", "et le taux d'avancement final vaut 0.027756993021384103 soit 2.77569930213841 %\n" ] }, { "data": { "text/plain": [ "(0.005551398604276821, 0.027756993021384103)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ca = 0.2 # concentration de la solution en acide faible apporté en mol/L\n", "pKa = 3.8 # pKa du couple acide faible/base faible\n", "taux (Ca,pKa)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 4 }