import numpy as np

########### Partie 2 Focométrie par les relations de conjugaison. 

# --- Mesures ---
OA = np.array([])   # Distance algébrique entre la lentille et l'objet
OAp = np.array([])    # Distance algébrique entre la lentille et l'image


# --- Calcul des distances focales ---
fp = 

# --- Affichage du tableau de valeur ---
print(np.round(fp,3))

# --- Détermination de la moyenne et l'écart type de la série de mesure ---
fp_moy = np.mean(fp)
fp_std = np.std(fp, ddof=1)  # ddof=1 pour l’écart-type expérimental

# --- Calcul de l'incertitude sur la valeur de fp ---
N = len(OA) # Calcul du nombre de mesures. 
u_fp = fp_std / np.sqrt(N) # Calcul de l'incertitude u_fp

# --- Affichage des résultats ---
print(f"Focale moyenne = {fp_moy:.3f}")
print(f"Ecart-type   = {fp_std:.3f}")
print()
print(f"Distance focale de lentille : fp = {fp_moy:.3f} ± {u_fp:.3f}")

########## Partie 3 Focométrie par la méthode de Bessel. 

# # --- Mesures ---
# D = np.array([])   # Distance entre l'objet et l'image.
# X1 = np.array([])    # Position n°1 de la lentille pour avoir une image nette.
# X2 = np.array([])    # Position n°2 de la lentille pour avoir une image nette.

# # --- Calcul de fp ---
# d = 
# fp = 

# # --- Détermination de la moyenne et l'écart type de la série de mesure ---
# fp_moy = np.mean(fp)
# fp_std = np.std(fp, ddof=1)  # ddof=1 pour l’écart-type expérimental

# # --- Calcul de l'incertitude sur la valeur de fp ---
# N = len(D) # Calcul du nombre de mesures. 
# u_fp = fp_std / np.sqrt(N) # Calcul de l'incertitude u_fp

# # --- Affichage des résultats ---
# print(f"Focale moyenne = {fp_moy:.3f}")
# print(f"Ecart-type   = {fp_std:.3f}")
# print()
# print(f"Distance focale de lentille : fp = {fp_moy:.3f} ± {u_fp:.3f}")
