Corrigé en vidéo en bas de page

Un dosage spectrophotométrique par étalonnage a donné les résultats suivants:

Trouvez la concentration en permanganate du Dakin

  1. en traçant la courbe d’étalonnage sur du papier millimétré
  2. Avec un tableur
  3. En python

Choisir un IDE thonny par exemple

première méthode à tester : il suffit de copier le code saisir vos données et exécuter le programme

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from scipy.stats import pearsonr

# Remplacez les..... par vos données séparées par des virgules
C=np.array([..............])
A=np.array([..............])

# Modèle de régression linéaire avec b=0
def model(x, a):
    return a * x

# Ajustement du modèle aux données
popt, pcov = curve_fit(model, C, A)
a = popt[0]
r, _ =pearsonr(C, A)

# Prédictions
A_pred = model(C, a)

# Affichage des résultats
plt.scatter(C, A, label='Données réelles')
plt.plot(C, A_pred, color='red', label='Régression linéaire')
plt.xlabel('C en mg/L')
plt.ylabel('A')
plt.legend()
plt.grid()
plt.show()

# Affichage du coefficient
print(f"Le coefficient a est: {round(a,3)}")
print(f"Le coefficient de corrélation de Pearson est: {round(r,2)}")

deuxième méthode à tester : il suffit de copier le code ,saisir vos données et exécuter le programme

# Remplacez les..... par vos données séparées par des virgules
C=[..............]
A=[..............]


# Calculer les sommes nécessaires
n = len(C)
sum_C = sum(C)
sum_A = sum(A)
sum_C_squared = sum([ci**2 for ci in C])
sum_CA= sum([ci * ai for ci, ai in zip(C, A)])
sum_A_squared = sum([ai**2 for ai in A])

# Calculer le coefficient a
a = sum_CA / sum_C_squared

# Prédictions
A_pred = [a * ci for ci in C]

# Calcul du coefficient de corrélation de Pearson r
numerator = n * sum_CA - sum_C * sum_A
denominator = ((n * sum_C_squared - sum_C**2) * (n * sum_A_squared - sum_A**2))**0.5
r = numerator / denominator

# Affichage des résultats
print(f"Le coefficient a est: {a}")
print(f"Le coefficient de corrélation  est: {round(r,2)}")

# Visualisation
import matplotlib.pyplot as plt
plt.cla()
plt.scatter(C, A, label='Données réelles')
plt.plot(C, A_pred, color='red', label='Régression linéaire')
plt.xlabel('C en mg/L')
plt.ylabel('A')
plt.legend()
plt.grid()
plt.title('Régression Linéaire Simple A = a * C avec b=0')
plt.show()
Catégories : Non classé