import numpy as np
import matplotlib.pyplot as plt


# Saisie des valeurs expérimentales dans 3 tableaux
F=np.array([50,100,  200, 300, 400, 500, 600, 700, 800, 1000, 2000, 3000, 5000] )
Us=np.array([5.04, 5.00, 4.85, 4.52, 4.20, 3.88, 3.62, 3.32, 3.08, 2.64, 1.49,1.0, 0.6])
Ue=np.array([5.08, 5.08, 5.08, 5.08, 5.08, 5.08, 5.08, 5.08, 5.08, 5.08, 5.08,  5.08, 5.04])


# Définition du Gain et linéarisation de l'expression
G = Us/Ue
X=F**2
Y=1/(G**2)

# Ajustement linéaire des points expérimentaux
a1, b1 = np.polyfit(X,Y,1)

# Estimation de la fréquence de coupure à partir du coéfficient directeur et affichage de la valeur.
FC=1/np.sqrt(a1)
print('Fréquence de coupure fc =',round(FC),'Hz')

# Tracé du nuage de points expérimentaux linéarisé et de la droite modèle.

plt.title("Tracé de 1/G^2 en fonction de f^2")
# Tracé des points expérimentaux
plt.plot(X,Y,'o',label="points expérimentaux")
plt.xlabel('f^2 en Hz^2')
plt.ylabel('1/G^2')
# Tracé de la droite modèle
plt.plot(X,(a1*X+b1),'r',label="droite modèle")
plt.legend()
plt.grid()
plt.show()


