import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

"""
Polymérisation du PVC ; réaction d'ordre 1 par rapport à M
"""
concentration = np.array([9.04,6.13,3.26,2.07]) #en mol/L
vitesse = np.array([19.35,12.92,7.15,4.15])*0.00001 #en mol/L/s

slope, intercept, rvalue, pvalue, stderr = stats.linregress(concentration,vitesse)
print("pente = {}".format(slope))
print("ordonnée à l'origine = {}".format(intercept))
print("R2 = {}".format(rvalue**2))

def predict(x):
    return slope * x + intercept

fitLine = predict(concentration)

plt.title("Polymérisation du PVC")
plt.grid()
plt.xlabel("Concentration (mol/L)")
plt.ylabel("Vitesse (mol/L/s)")
plt.ylim([0,0.0002])
plt.scatter(concentration,vitesse,label="Points expérimentaux")
plt.plot(concentration,fitLine,color='r',label="Droite de régression linéaire\n y = {}x + {}".format(round(slope,7),round(intercept,7)))
plt.legend()
plt.show()

