import numpy as np
import matplotlib.pyplot as plt


# Saisie des valeurs expérimentales dans 3 tableaux
F=np.array([])  # en Hz
Us=np.array([])  # en V
Ue=np.array([])  # en V

# Définition du Gain et linéarisation de l'expression
G = Us/Ue
X=F**2
Y=1/(G**2)

# Saisie des incertitudes type type sur F, Ue et Us
u_Us = A COMPLETER # en V
u_Ue = A COMPLETER # en V
u_F =  A COMPLETER  # en Hz

# Réalisation de la simulation MC de N expériences aléatoires
N = 10000
n = len(F)
FC_sim=[] # liste des fréquences de coupures obtenues par simulation de chaque expérience aléatoire
OO=[]  # Liste des ordonnées à l'origine simulées

for i in range(N): # Stockage des valeurs issues du tirage aléatoire dans des tableaux
    F_sim = F + np.sqrt(3)*u_F*np.random.uniform(-1,1,n)
    Ue_sim = A COMPLETER
    Us_sim = A COMPLETER
    G_sim = A COMPLETER
    X_sim = F_sim**2
    Y_sim = 1/(G_sim**2)

# Ajustement linéaire des résultats de chaque expérience aléatoire simulée
    a1_sim, b1_sim = np.polyfit(X_sim,Y_sim,1)
    FC_sim.append(1/np.sqrt(a1_sim))  # construction de la liste des fréquences de coupure obtenues
    OO.append(b1_sim) # construction de la liste des ordonnées à l'origine obtenues

# Calcul de la valeur moyenne de la fréquence de coupure et de l'ordonnée à l'origine
FCmoy = A COMPLETER
OOmoy = A COMPLETER

# Calcul de l'incertitude-type sur la fréquence de coupure
u_FC=A COMPLETER

# Affichage des résultats avec 2 décimales
print("valeur moyenne de la fréquence de coupure =",round(FCmoy,2),"Hz")
print("Incertitude-type sur la fréquence de coupure =",round(u_FC,2),"Hz")



