import matplotlib.pyplot as plt
import numpy as np

t=np.array([0,10,20,30,40,50])
C=np.array([10e-3,6.5e-3,4.9e-3,3.9e-3,3.2e-3,2.8e-3])

### Q2
## Estimation des vitesses pour méthode différentielle A COMPLETER
V_lst=[]
for i in range(len(t)-1):
    V_lst.append(-(C[i+1]-C[i])/(t[i+1]-t[i]))

V=np.array(V_lst)
## Mise en oeuvre de la méthode différentielle A COMPLETER
# Coordonnées utilisées :
Xd=np.array([np.log(C[i]) for i in range(len(C)-1)])
Yd=np.log(V)
Dd=np.polyfit(Xd,Yd,1)
Yd_mod=Dd[0]*Xd+Dd[1]

# Courbe(s) :
plt.plot(Xd,Yd,"+",Xd,Yd_mod,"--")
plt.xlabel("ln(C)")
plt.ylabel("ln(v)")
plt.legend(["exp","modèle"],loc="best")
plt.grid()
plt.show()
print("valeur ordre global =",Dd[0]) # A COMPLETER

### Q3
## Mise en oeuvre de la méthode intégrale A COMPLETER
# Coordonnées utilisées :
Yi=1/C
Di=np.polyfit(t,Yi,1)
Yi_mod=Di[0]*t+Di[1]
# Courbe(s) :
plt.plot(t,Yi,"+",t,Yi_mod,"--")
plt.xlabel("t (s)")
plt.ylabel("1/[HO-] (L/mol)")
plt.legend(["exp","modèle"],loc="best")
plt.grid()
plt.show()

print("valeur constante de v =",Di[0]) # A COMPLETER