Python pour chimistes : TP n°2 Exemples d`application en chimie

1
Python pour chimistes : TP n°2
Exemples d’application en chimie : niveau 1
Le but de cette séance est d’illustrer comme on peut utiliser python dans le cadre d’un enseignement
de chimie.
I. Cinétique chimique.
A. Cas de deux réactions successives
On considère une réaction de bilan A → C dont les étapes sont A → B (avec une constante k1) et B → C (avec une
constante k2). On suppose que les concentrations initiales sont [A]=1 mol/L et [B]=[C]=0.
On étudie les concentrations des trois espèces dans le temps, pour des vitesses de réaction k1 = 0,04 s-1et k2 =
0,02 s-1
Recycler le code vu dans le TP 1 pour obtenir (600s 1500 points)
Etude de l’intermédiaire B
Evidement on peut jouer avec k1et k2 pour retrouver Bodenstein…..
Extraction du temps de montée c'est-à-dire du temps tq [B] soit maximum. Pour cela, on utilise la fonction argmax
de numpy qui retourne l'index du maximum dans un tableau. A vous (Vous pouvez ,vérifiez sur la courbe …)
2
B. Réactions compétitives (contrôle thermo- contrôle cinétique)
On considère maintenant deux réactions A B (avec des vitesses k1 de gauche à droite ki1 de droite à gauche), et A
C (avec des vitesses k2 de gauche à droite, et ki2 de droite à gauche) . Les concentrations initiales sont toutes nulles
sauf [A]=1 mol.L-1
On prend l'exemple des vitesses : k1 = 0,2 s-1-1, ki1 = 0,05 s-1 , k2 = 0,01 s-1 et ki2 = 0,001 s-1. On simule 2000s en 2000
points. Recycler votre code pour obtenir.
Remarque : On peut jouer avec le zoom pour étudier le début de la réaction, on peut changer les constantes pour
voir ce que cela ait..
Question bonus : On peut chercher le temps à partir duquel le produit thermo dynamique devient majoritaire.
II. Interpolation d’une courbe de dosage et communication avec un fichier texte
On se propose de reproduire avec Python les calculs automatiques de dérivées que fait un logiciel comme
Regressi. On va récupérer les données dans un fichier texte ce sera l’occasion d’effleurer de la lecture dans
un fichier texte. Vous devez avoir téléchargé ( demandez si ce n’est pas le cas) un fichier nommé
potAgCl.csv . Ce fichier contient les mesures d’un dosage de Ag+ par Cl-
1. Phase de préparation : Voici la méthode à suivre quand on interagit avec un fichier texte
1) On visualise le fichier texte dans un petit éditeur genre Wordpad ou Notepad++ (Ca veut dire pas Excel)
2) On détermine sa stratégie d’importation + nettoyage (A partir de quelle ligne, quel est le séparateur, y a t’il des
caractères à enlever ….) on peut éventuellement faire des petits essais sur des bouts de fichiers
3) Enfin on code l’importation en utilisant les fonctions de lecture d’un fichier
3
2 Code Python : Essayez de comprendre ce code.
#-*- coding:utf-8 -*-
from scipy.interpolate import UnivariateSpline
import matplotlib.pyplot as plt
# I. Lecture du fichier de mesure
f=open('potAgCl.csv')
data=f.readlines()
f.close()
##print(data)
x,y=[],[]
for donnee in data :
pointexp=donnee[:-1].split(';')
##print(pointexp)
x.append(eval(pointexp[0]))
y.append(eval(pointexp[1]))
##II. Interpolation et calcul des dérivées
s=UnivariateSpline(x,y,s=0)
d=s.derivative()
dd=s.derivative(n=2)
ys = s(x)
yd=d(x)
ydd=dd(x)
##III. Tracé des courbes
ymax=max(abs(ys))
dmax=max(abs(yd))
ddmax=max(abs(ydd))
plt.plot(x, ys/ymax,'k',label='ddp')
plt.plot (x,yd/dmax,'r',label='derivee')
plt.plot(x,ydd/ddmax,'g', label='derivee seconde')
plt.axhline()
plt.legend(loc='upper right')
plt.show()
Aidez vous de la partie slicing du memento
Observez ce qui se passe avec ce print(data)
Observez ce qui se passe avec ce print(pointexp)
Regarder la doc de scipy
#s=0 pour que la fonction d'interpolation passe par
les points expérimentaux
Voila ce qu’on obtient
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).
5
B. Dosage d’une dibase par un acide fort.
1. L'ethylènediamine est une dibase notée En de pKa1: 6,0 et pKa2 10,0.
On se propose de simuler la courbe de dosage de 20 mL d’une solution 0.015 M de cette base par un acide fort ,
HCl, de concentration 0.05 M. L’objectif est d’avoir la courbe de dosage (pH en f(Va)) et le diagramme de diagramme
de distribution des espèces En , EnH+ et EnH22+ .
Mettre en équations le problème. On opèrera comme au A. On écrira en particulier l'équation de conservation de
la matière du groupe En. …
2. Reprendre la question en faisant varier la valeur de Ka2 [on prendra : 1e-7, 1e-8, 1e-9 et 1e-10]. Mettre en
évidence l’évolution de la courbe de dosage.
1 / 8 100%

Python pour chimistes : TP n°2 Exemples d`application en chimie

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !