python:programmes_de_physique_chimie_en_python:simultit

Simultit

JBSim se contente de résoudre l'équation en fonction de [H+] (la concentration en ion hydrogène).

Pour une solution d'eau distillée on résout l'équation suivante :

[H+]=[OH-] ⇐⇒ [H+]-10E-14/[H+]=0

Si on rajoute un monoacide (HCl par exemple), il suffit de rajouter [Cl-]

[H+]=[OH-]+[Cl-] ⇐⇒ [H+]-10E-14/[H+]-Co=0

ou Co est la concentration de l'acide.

Chaque fois que l'on rajoute une espèce chimique dans la solution, on rajoute un terme a l'équation d'électroneutralité.

from scipy.optimize import fsolve #fonction pour résoudre une équation
from math import log10
 
equation = 'x - (10 **-14) / x' # électroneutralité
 
def f(x): #fonction à résoudre pour trouver la concentration en ion hydrogène
   return eval(equation)
 
c = input('Concentration acide fort ?') # on ajoute un acide fort de concentration c
 
equation = equation + ' - ' + c #equation après ajout d'un acide fort
 
print ('equation à résoudre : ' + equation)
 
print(round(- log10(fsolve(f,0.5)),3))
#calcul du pH à partir de la concentration en ion hydogène
#3 chiffres après la virgule

Electroneutralité :

'x - (10 **-14) / x'

Acide fort :

'- C'

Base forte :

'+C'

Acide faible/Base faible

concentration AH : AH

concentration en A- : A

pKa : pKa

'- ( AH + A ) / ( x * 10 ** pKa + 1) + A'

Acide faible/Base faible avec 2 pKa

AH2 AH A2 pKa1 pKa2

'- ( ( AH2 + AH + A ) * x * 10 pKa2 + 2 * ( AH2 + AH + A ) ) / (x 2 * 10 ( pKa1 + pKa2 ) + x * 10 pKa2 + 1 ) + AH + A * 2'

Acide faible/Base faible avec 3 pKa

AH3 AH2 AH A3 pKa1 pKa2 pKa3

'- ( AH3 + AH2 + AH + A3 ) / 10 pKa1 * ( x 2 + 2 * x / 10 pKa2 + 3 / 10 pKa2 / 10 pKa3 ) / ( x 3 + x 2 /10 pKa1 + x / 10 pKa1 / 10 pKa2 + 1 / 10 ** ( pKa1 + pKa2 + pKa3 ) ) + AH2 + AH * 2 + AH * 3'

  • python/programmes_de_physique_chimie_en_python/simultit.txt
  • Dernière modification : 2020/07/24 03:31
  • de 127.0.0.1