Programmes

Ensemble des codes python rencontrés (dans les TP, activités, exercices, etc.) rangés par chapitre.

Titrages

Exercice « titrage agneaux »

Code du sujet :

Tip

Code utilisé pour tracer la figure de l’énoncé comprenant l’ensemble des graphes :

TP titrage conductimétrique

Code du TP titrage conductimétrique d’un déboucheur.
Le but du code est de montrer que la formule de propagation des erreurs (détermination de type B d’une incertitude-type) donne bien la même réponse qu’une simulation Monte-Carlo.

Dans la simulation Monte-Carlo, on tire au hasard chaque valeur expérimentale en respectant l’incertitude-type indiquée pour cette grandeur puis on calcule la grandeur composée (ici la concentration du déboucheur CB).
On recommence l’opération 500,000 fois et on calcule ensuite l’écart-type expérimental des valeurs de CB obtenues (et on trace aussi un histogramme de ces valeurs).
L’écart-type, estimation de l’incertitude-type sur CB, est ensuite comparée au résultat donné par la formule de propagation des erreurs.

Correction
CB = Vf[0]/Vp[0]*CA[0]*VE[0]/VB[0]
UCB = CB*np.sqrt((Vf[1]/Vf[0])**2+(Vp[1]/Vp[0])**2+(CA[1]/CA[0])**2+(VB[1]/VB[0])**2+(VE[1]/VE[0])**2)

Cinétique chimique

Activité « Dégradation d’un produit de contraste »

Ajustement de l’évolution de la concentration par une exponentielle décroissante dont on détermine les paramètres idéaux :

Tracé de l’évolution temporelle de la concentration et de sa modélisation :

Au lieu d’ajuster les points expérimentaux par une fonction exponentielle, on aurait pu prendre le logarithme des concentrations et réaliser un ajustement linéaire :

On peut aussi tracer l’évolution temporelle de la vitesse de disparition, mais pour cela, il faut calculer numériquement la dérivée temporelle de la concentration.

Rappel dérivée numérique

Soit une grandeur $x$ variant en fonction du temps.
Supposons que l’on ait une liste X de N valeurs de $x$ correspondant à N valeurs temporelles enregistrées dans une liste T.

Une liste de N-1 valeurs approximant numériquement la dérivée de $x$ par rapport au temps s’obtient grâce à la boucle suivante :

derX = []
for i in range(N-1):
    derX.append((X[i+1]-X[i])/(T[i+1]-T[i]))

Ce n’est rien d’autre que l’approximation $\frac{\mathrm d x}{\mathrm d t}\approx \frac{\Delta x}{\Delta t}=\frac{x(t+\Delta t)-x(t)}{\Delta t}$.

Exemple :



Piles

Exercice « pile zinc-air »

Remarque :

Dans le vrai sujet (sujet 0 2021), l’incertitude-type est de 0,42. Plutôt bizarre car incohérent avec la formule de propagation des incertitudes : $x_\mathrm{O_2}=\frac{I_\mathrm{exp}-b}{a}$
$\begin{aligned} \Rightarrow \frac{u(x_\mathrm{O_2})}{x_\mathrm{O_2}}&=\sqrt{\left(\frac{u(I_\mathrm{exp}-b)}{I_\mathrm{exp}-b}\right)^2+\left(\frac{u(a)}{a}\right)^2}\\ &=\sqrt{\left(\frac{\sqrt{u(I_\mathrm{exp})^2+u(b)^2}}{I_\mathrm{exp}-b}\right)^2+\left(\frac{u(a)}{a}\right)^2} \end{aligned}$
Ça donne :
$ \begin{aligned} u(x_\mathrm{O_2})&=\frac{31,7 - 13,2}{1,09}\times\sqrt{\left(\frac{\sqrt{0,2^2 + 0,9^2}}{31,7 - 13,2}\right)^2 + \left(\frac{0,03}{1,09}\right)^2}\\ &=0,97 \text{ mA} \end{aligned} $

Ou en utilisant Python :



Constante d’acidité $K_a$

Activité « Taux d’avancement »

Compléter le code de la fonction final permettant de retourner à la fois le taux d’avancement et le pH à l’équilibre.
Rq : on obtient la racine carrée grâce à np.sqrt() et le logarithme décimal grâce à np.log10().

Bizarrerie

Pourquoi le pH dépasse-t-il 7 pour les petites concentrations de l’acide de pKa élevé ?
C’est dû à notre modèle incomplet.
On a négligé l’autoprotolyse de l’eau. La prendre en compte transforme l’équation en un polynôme de degré 3.
La condition d’électroneutralité permet d’écrire :
$[\mathrm H^+] = [\mathrm A^-] + [\mathrm{OH}^-]$ et avec $[\mathrm{OH}^-] = \frac{K_w}{[\mathrm{H_3O^+}]}$, et on obtient alors :
$x^{3}+K_a\,x^{2}-\bigl(K_w+K_a\,C\bigr)\,x-K_a\,K_w = 0$ où $x=[\mathrm H_3O^+]$.
La seule racine positive permet d’obtenir le pH et il est bien acide ($<7$) cette fois-ci.

Activité « Diagramme de distribution »

Compléter le code de la fonction pAH. La fonction doit retourner la valeur de la proportion de la forme acide donnée à la question 3.



Décrire un mouvement

TP mouvement

Pour importer les tableaux regressi dans le programme ci-dessous, utiliser le bouton d’import sur la droite de la barre supérieure.

Mouvement circulaire uniforme

Exercice « clothoïde et échangeur routier »



Champ uniforme

Chute libre (vecteurs accélération)

Chute libre (énergie)

Activité « LINAC »



Kepler

Test de la deuxième loi

On va tester la deuxième loi de Kepler en suivant sur plusieurs jours la position de Mercure, planète à l’orbite la plus elliptique du système solaire.

Protocole

Pour récupérer un tableau de données des positions de Mercure dans le référentiel héliocentrique pour 17 positions séparées de 5 jours :

  • se rendre sur le site d'éphémérides de l'Observatoire de Paris ;
  • dans "corps du système solaire", choisir Mercure ;
  • dans "époque", choisir la date d'aujourd'hui, nombres de dates : 17, pas de calcul : 5 jours ;
  • dans "système de coordonnées", pour le centre du repère : héliocentre, et pour coordonnées (dernier truc), choisir cartésiennes (ne pas modifier le reste) ;
  • cliquer sur "calculer" ;
  • enfin, en haut à droite du tableau créé, exporter en "comma-separated values (csv)".

Il faut alors enregistrer le fichier de données sous le nom “ephemerides.csv”.

Vous pouvez télécharger le programme mercure.py en cliquant ici (ou sur l’icône ordi de la page du cours). Il faudra ensuite que vous placiez le fichier ephemeride.csv dans le même dossier que le programme mercure.py.

En exécutant le programme mercure.py, on peut alors constater que la deuxième loi de Kepler est plutôt très bien vérifiée pour l’orbite de Mercure.

Test de la troisième loi

Le code se trouve dans l’activité « découverte des lois de Kepler »



Diffraction et interférences

Somme de deux signaux sinusoïdaux déphasés

Appliquons cela à l’activité sur la réduction active de bruit des écouteurs.

Le circuit de l’écouteur émet un anti-bruit en opposition de phase avec le bruit. Mais l’électronique met une durée $\tau$ à traiter le signal : l’anti-bruit part en retard.

Un retard $\tau$ sur un signal de période $T$ ajoute un déphasage $2 \pi \times \tau/T$.
La phase à l’origine de l’anti-bruit vaut donc :

$$\phi = -\left(\pi + 2 \pi \frac{\tau}{T}\right)$$

  • $\pi$ : l'opposition de phase voulue
  • $2 \pi \tau/T$ : le défaut dû au retard de l'électronique
  • signe moins : un retard se traduit par un déphasage en arrière

Autrement dit, l’anti-bruit est exactement le bruit inversé et retardé de tau.

Exercice « trombone de Koenig »

Scarabé