## Importations
import matplotlib.pyplot as plt
import numpy as np
import os

## Conversion du fichier texte en tableau
# on précise le répertoire dans lequel se trouve le fichier de données (chemin et nom du répertoire à adapter) :
os.chdir(r"C:\Users\Virginie\Desktop\MP\_poly MP 202223\_poly MP\TP\Ct TP Mesures incertitudes")
# rq avant le chemin 'r' signifie 'raw' i.e. 'brut' => pas de problème de lecture du chemin 

# 1e colonne : tension en V 
# 2e colonne : intensité en A
u,i=np.loadtxt("mesures u et i.txt",unpack=True)

def calc_R(tensions,intensites):
    résistances=[]
    for k in range(len(tensions)):
        Rk=tensions[k]/intensites[k]
        résistances.append(Rk)
    return(résistances)

list_R=calc_R(u,i)
# histogramme
plt.hist(list_R,bins='rice')
plt.show()
# grandeurs statistiques
moy_R=np.average(list_R) 
u_R=(1/np.sqrt(len(u)))*np.std(list_R,ddof=1) 

print("R=",moy_R,"ohm") 
print("incertitude-type sur R=", u_R,"ohm")

# Rq : on peut vérifier que le résultat de la fonction np.std(list_R,ddof=1) coïncide avec l'écart type au sens statistique :
def incertitude_type(liste) :
    moy=np.average(liste)
    n=len(liste)
    sum=0
    for i in range(n) :
        sum=sum+(liste[i]-moy)**2
        sigma=np.sqrt(sum/(n-1))
    return sigma/np.sqrt(n)

u_Rbis=incertitude_type(list_R)
print("incertitude-type sur R=", u_Rbis,"ohm")