#!/usr/bin/env python3
"""
Étude de la linéarité de la répones d'une photodiode BPW34
"""
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt


def malus(a,a0,s_0,s_1):
    s =                                                 # à compléter
    return s

# angles entre le polariseur et l'analyseur, en degrés 
theta_deg = np.array([-90,-85,-80,-75,-70,-65,-60,-55,-50,-45,-40,-35,-30,-25,-20,-15,-10,-5,
             0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90]) 

# tensions mesurées
s = np.array([]
    ) # à compléter


# angles en radian
theta = theta_deg*np.pi/180 
u_theta =  *np.pi/180          # incertitude type sur les angles - à compléter
u_s =                          # incertitude type sur les tensions  - à compléter

popt, pcov = curve_fit(malus, theta, s ,p0 = None)
theta_0, s_0, s_1 = popt  
theta_cont = np.linspace(np.min(theta), np.max(theta), 500)

# tracé de la courbe s=f(\theta))
plt.figure(figsize=(11.69,8.27),tight_layout=True)
plt.grid()   
plt.errorbar(theta, s, xerr = u_theta, yerr = u_s, fmt='+',label="Mesures")
plt.plot(theta_cont, malus(theta_cont,*popt), label="Ajustement")
plt.xlabel(r"$\theta$")
plt.ylabel(r"s/V")
plt.legend()
plt.savefig("malus-courbe.pdf")
plt.show()

# Décommentez les lignes suivantes après avoir tracé la première courbe

## tracé de la courbe y=f(x)
#y =                                                     # à compléter
#u_y =                                                   # à compléter

#x =                                                     # à compléter
#u_x =                                                   # à compléter

#plt.figure(figsize=(11.69,8.27),tight_layout=True)
#plt.grid()   
#plt.errorbar(x, y, xerr=u_x, yerr=u_y,fmt='o')
#plt.plot([0,1],[0,1],color='orange')
#plt.xlabel(r"$\cos^2(\theta-\theta_0)$")
#plt.ylabel(r"$\frac{s-s_1}{s_0}$")
#plt.savefig("malus-test.pdf")
#plt.show()


