Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Programmation python évolution des quantités de matières

Posté par
Soyermars
25-10-21 à 20:24

Bonsoir à tous ,
Je dois effectuer un devoir maison que je n'arrive pas à faire ,
J'ai répondu à quelques questions mais je bloque sur certaines .
Voici l'énoncé :
1) écrire l'équation de la réaction support du titrage du document 1

2) Déterminer à l'aide du programme la valeur du volume de solution d'hydroxyde de sodium à verser pour atteindre l'équivalence

3) Repérer dans les lignes du programme et justifier à l'aide d'un tableau d'avancement les instructions qui correspondent au calcul du volume d'hydroxyde de sodium à l'équivalence et aux calculs des quantités de matière présentent avant et après l'équivalence

4) modifier le programme du document 2 afin de stimuler le titrage 10 ml d'acide citrique H3Cit (aq) de concentration 0,10 mol.L^-1 par une solution d'hydroxyde de sodium de concentration 0,25 mol.L^-1 .
L'équation de support du titrage étant:
H3Cit (aq) + 3HO- (aq) ------> Cit^3- +(aq)  + 3H2O (l)

Pour la question 1 j'ai mis cette équation :
HCO2H (aq)+ OH- (aq) ----> HCO2- (aq) + H2O (l)

Pour la question 2 j'ai mis que la valeur du volume de solution d'hydroxyde de sodium à verser pour atteindre l'équivalence est de 15,0 ml

Pour la question 3 je ne suis pas sûre , j'ai écrit que les instructions qui permettent le calcul du volume d'hydroxyde de sodium sont les lignes 4 à 8 et 13 et pour les quantités de matière se sont les lignes 15 à 24 seulement je ne sais pas si c'est bien cela

Pour la question 5 , je ne sais pas par où commencer et comment m'y prendre

Merci de m'aider car je suis un peu perdu n'étant pas très douée en programmation

Programmation python évolution des quantités de matières

Programmation python évolution des quantités de matières

Posté par
vanoise
re : Programmation python évolution des quantités de matières 26-10-21 à 11:34

Bonjour
OK pour 1
Pour 2 : la valeur de Vbe que tu indiques est correcte. Comment l'as-tu obtenue à l'aide du programme ?
Pourrais-tu poster ici le lien permettant de télécharger le programme Python ?
Pour 3 : tu n'as pas bien compris je pense la logique du programme. Les lignes 3 à 6 servent à indiquer les données du problèmes : Ca,Va, Cb... Les calculs des quantités d'ions restantes se font plus loin avec deux cas possibles : avant et après l'équivalence. Pour comprendre cela, il te faut remplir un tableau d'avancement avec deux lignes possible pour l'état final : une ligne valide avant l'équivalence, une ligne valide après l'équivalence.
Il faut refaire question 4 quelque chose d'analogue en tenant compte cette fois-ci des coefficients stœchiométriques différents 3 ions hydroxyde réagissent avec une molécule d'acide.

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 26-10-21 à 12:10

Bonjour,
Je vous remercie de bien vouloir m'aider
J'ai télécharger ce programme dans mon manuel et voici le lien :
https://www.libmanuels.fr/reader/9791035813819/n/66
Voici un lien python que mon professeur m'a transmis:
https://www.lelivrescolaire.fr/outils/console-python
et si vous n'arriver pas à télécharger le programme voici un lien qui permet de le copier :
file:///C:/Users/lisle/Downloads/03580901_pc_tle_c03_067_log01%20(1).py
Pour la question 3 ) je vais vous envoyer mon tableau d'avancement

pour la question 4 ) j'ai un peu avancé depuis hier et j'ai modifier le programme comme cela mais je ne suis pas sur de moi :

"""

Simulation d'une courbe de titrage par conductimétrie

H3Cit(aq) + 3HO-(aq) -> Cit^3-(aq) + 3H2O(l)

Conductivité molaire ionique en mS.m2.mol-1 à 25°C

"""

  

import numpy as np

import matplotlib.pyplot as plt

  

plt.rcParams["figure.figsize"] = (8,10)  # width, height in inches (100 dpi)

plt.subplots_adjust(hspace=0.2, left=0.15, bottom=0.06, right=0.95, top=0.95 ) # Position en %

  

Cb = 0.25        # Concentration base en mol/L

Ca = 0.10      # Concentration acide en mol/L

Va = 10.0E-3      # Volume solution d'acide citrique

Veau = 200.0E-3     # Volume d'eau ajouté en L

  

Ve = Ca*Va/Cb   # Volume équivalent en mL calculé Ve = Ca*Va/Cb

NB = 50           # Nb points

  

V = np.linspace(0, 2*Ve, NB)                 # Initialisatin du tableau de volume

  

# Initialisation des tableaux de concentration

n_H3Cit = np.zeros(NB)

n_3HO = np.zeros(NB)

n_H2O = np.zeros(NB)

n_Cit = np.zeros(NB)

  

for i in range(NB) :

   Vol = V[i]

   if Vol <= Ve :

      # Reactifs

      n_H3Cit[i] = Ca*Va - Cb*Vol

      n_3HO[i] = 0

      # Produits

      n_Cit[i] = Cb*Vol

      n_H2O[i] = Cb*Vol

   else :

      print(i, Vol)

      # Reactifs

      n_H3Cit[i] = 0

      n_3HO[i] = Cb*(Vol-Ve)

      # Produits

      n_Cit[i] = Cb*Ve

      n_H2O[i] = Cb*Vol

  

# Courbe d'évolution des quantités de matière

plt.subplot(211)

plt.plot(V*1000, n_H3Cit, "-+", label ='Acide citrique H3Cit')

plt.plot(V*1000, n_3HO, "-+", label ='Ions hydroxyde 3OH-')

plt.plot(V*1000, n_Cit, "-+", label = 'Ions citrique Cit^3-')

#plt.plot(V*1000, n-3H2O, "-+", label = 'molécule d'eau H2O')

plt.legend()

plt.title("Evolution des quantités de matière")

plt.xlabel("V (mL)")

plt.ylabel("n (mol)")

plt.grid()

  

plt.grid()

  

plt.show()

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 26-10-21 à 12:24

Pour la question 3)
Voici le tableau d'avancement

Programmation python évolution des quantités de matières

Posté par
vanoise
re : Programmation python évolution des quantités de matières 26-10-21 à 14:30

Je n'ai pas réussi à télécharger le fichier python ; le site demande un mot de passe.
J'ai quand même examiné ton code correspondant  au titrage de l'acide citrique par la soude. Je crois que tu as compris le principe général mais tu ne tiens pas compte du fait que, avant l'équivalence, l'ajout de Cb.Vb mole d'ions hydroxyde fait réagit seulement Cb.Vb/3 mole d'acide citrique.
Le tableau d'avancement que tu fournis est correct pour le dosage de l'acide méthanoïque mais pas pour le dosage de l'acide citrique.

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 26-10-21 à 14:38

comme vous n'avez pas réussit à télécharger le programme je vous l'envoie :
import numpy as np
from matplotlib import pyplot as plt

Ca= float(input("Entrer la valeur Ca de la concentration de l'acide à titrer en mol/L : Ca = "))
Va= float(input("Entrer le volume Va d'acide titré en mL : Va = "))
V= float(input("Entrer le volume de la burette graduée en mL : V = "))
Cb= float(input("Entrer la valeur de la concentration Cb de la base contenue dans la burette graduée en mol/L : Cb = "))
N=int(input("Nombre N de points de la courbe"))

Vb=[]
naf=[]
nbf=[]
Vbe=Ca*Va/Cb

for i in range (0,N):
    Vb.append(V*i/N)

    if Vb[i]< Vbe :
        nbf.append(0)
        naf.append(Ca*Va/1000-Cb*Vb[i]/1000)

    else :
        nbf.append(Cb*Vb[i]/1000-Ca*Va/1000)
        naf.append(0)

plt.title("Evolution des quantités d'acide et de base au cours du titrage")
plt.xlabel("Volume de base versé Vb(mL)")
plt.ylabel("quantités de matière en mol")

plt.grid(True)

plt.plot(Vb,naf,c='red',label="Quantité d'acide présente dans le bécher : na(mol)")
plt.plot(Vb,nbf,c='green',label="Quantité de base présente dans le bécher : nb(mol")
plt.legend()
plt.show()
Je n'ai pas bien compris où vous vouliez en venir au niveau du programme et pour ce qui est du tableau je n'ai fait que celui de la question 2 , je ne l'ai pas fait pour l'acide citrique .

Posté par
vanoise
re : Programmation python évolution des quantités de matières 26-10-21 à 15:29

Merci pour la copie du programme. Il fonctionne très bien. Une précision tout de même. Ce que le programme appelle "base" désigne  les ions hydroxyde et ce qu'il appelle "acide" désigne l'acide méthanoïque. Voici le résultat obtenu pour le dosage de l'acide méthanoïque.
Ton tableau d'avancement est à revoir. Comme le fait le programme grâce aux instructions :
if...
...
else...
il faut distinguer deux cas :
Avant l'équivalence : les ions hydroxyde constituent le réactif limitant et la réaction de l'acide sur les ions hydroxyde est quasi totale ; donc :
nb=0 et na=Ca.Va-Cb.Vb
Le programme divise par "1000" car les volumes devraient être exprimer en litre alors que le programme considère Va et Vb mesurés en mL.
Après l'équivalence : il ne reste quasiment plus d'acide méthanoïque et la quantité présente d'ions hydroxyde est la quantité de ces ions n'ayant pas réagit avec l'acide méthanoïque :
na=0 et nb=Cb.Vb-Ca.Va

Programmation python évolution des quantités de matières

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 26-10-21 à 16:19

Merci
D'accord et du coup pour la valeur du volume de l'hydroxyde de sodium qu'elle en serait l'instruction ?  Je ne vois pas trop laquelle sa pourrait être.
J'ai refait le tableau

Programmation python évolution des quantités de matières

Posté par
vanoise
re : Programmation python évolution des quantités de matières 26-10-21 à 16:50

OK mais attention à l'unité d'avancement.

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 26-10-21 à 16:55

D'accord merci beaucoup
Et pour le programme de la question 4 , est-il bon ou pas ?

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 26-10-21 à 16:58

L'unité est en mmol c'est bien cela ?

Posté par
vanoise
re : Programmation python évolution des quantités de matières 26-10-21 à 19:45

Oui si tu laisses les volumes mesurés en mL. Avec des volumes mesurés en litre, ce qui est le cas le plus fréquent, et des concentations en mol/L, tu obtiens des quantités et des avancements en moles.

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 26-10-21 à 20:06

D'accord , merci
Et pour la modification du programme que j'ai fait ?

Posté par
vanoise
re : Programmation python évolution des quantités de matières 26-10-21 à 21:00

Quelles modifications ?
Il faut tenir compte comme déjà dit du fait qu'il faut 3 moles d'ions hydroxyde pour réagir avec une mole d'acide citrique (voir équation bilan fournie par l'énoncé). Cela modifie en particulier les lignes 11, 16 et 18.

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 26-10-21 à 21:08

Pour la ligne 11 il faut faire :
Vbe=Ça*Va/3*Cb ?
Pour la ligne 16 et 18  on fait aussi 3* Cb?

Posté par
vanoise
re : Programmation python évolution des quantités de matières 27-10-21 à 14:07

A l'équivalence, la quantité ajoutée d'ions hydroxyde est trois fois plus grande que la quantité initiale d'acide citrique...

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 28-10-21 à 15:04

Bonjour , désolé de vous répondre si tard mais je suis malade
Oui donc la concentration en ions hydroxyde = 3* co

Posté par
vanoise
re : Programmation python évolution des quantités de matières 28-10-21 à 17:04

Citation :
A l'équivalence, la quantité ajoutée d'ions hydroxyde est trois fois plus grande que la quantité initiale d'acide citrique...

Donc :
Cb.Vbe=3Ca.Va

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 28-10-21 à 19:32

D'accord je réécris le programme et je vous envoie ça

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 29-10-21 à 14:51

import numpy as np
from matplotlib import pyplot as plt

Ca= float(input("Entrer la valeur Ca de la concentration de l'acide à titrer en mol/L : Ca = "))
Va= float(input("Entrer le volume Va d'acide titré en mL : Va = "))
V= float(input("Entrer le volume de la burette graduée en mL : V = "))
Cb= float(input("Entrer la valeur de la concentration Cb de la base contenue dans la burette graduée en mol/L : Cb = "))
N=int(input("Nombre N de points de la courbe"))

Vb=[]
naf=[]
nbf=[]
Vbe=3*Ca*Va/Cb

for i in range (0,N):
    Vb.append(V*i/N)

    if Vb[i]< Vbe :
        nbf.append(0)
        naf.append(3*Ca*Va/1000-Cb*Vb[i]/1000)

    else :
        nbf.append(Cb*Vb[i]/1000-3*Ca*Va/1000)
        naf.append(0)

plt.title("Evolution des quantités d'acide et de base au cours du titrage")
plt.xlabel("Volume de base versé Vb(mL)")
plt.ylabel("quantités de matière en mol")

plt.grid(True)

plt.plot(Vb,naf,c='red',label="Quantité d'acide présente dans le bécher : na(mol)")
plt.plot(Vb,nbf,c='green',label="Quantité de base présente dans le bécher : nb(mol")
plt.legend()
plt.show()

Posté par
vanoise
re : Programmation python évolution des quantités de matières 29-10-21 à 15:04

C'est bien cela ; il suffit de remplacer dans le programme précédent Ca.Va par 3Ca.Va. Voici le résultat obtenu. A toi de t'autocorriger.

Programmation python évolution des quantités de matières

Posté par
Soyermars
re : Programmation python évolution des quantités de matières 02-11-21 à 14:11

Bonjour,
J'ai vérifié et c'est bon , j'ai trouvé la même chose
Merci beaucoup de votre aide et de m'avoir donné un peu de votre temps.
Passez une agréable journée .



Mentions légales - Retrouvez cette page sur l'île de la physique - chimie
© digiSchool 2024

Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 237 fiches de physique

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !