import matplotlib.pyplot as plt # pour le tracé graphique

## réponse à un créneau

#période du créneau
T=6e-3 #s
t0 = 0               # instant initial
tf = 5*T/2          # résolution sur l'intervalle [0,10*RC]
n = 1000             # nombre d'intervalles
h =  (tf-t0)/n                # à compléter : pas de calcul
t = [ t0 + i*h for i in range(0,n+1) ] # initialisation de la liste des instants

#défintion de la fonction créneau
def creneau(t):
    if 0<=t<=T/2 or T<t<=3*T/2 or 2*T<t<=5*T/2:
        return 5
    else:
        return 0
e=[creneau(ti) for ti in t]

u = [ 0 for i in range(0,n+1) ] # initialisation de la liste des tensions
u[0] = 0   # condition initiale sur la tension u

#résolution pour le créneau sur 3 périodes du créneau
for i in range(0,n):
    u[i+1] =  u[i] + (e[i]-u[i])/tau*h               # à compléter avec la relation de récurrence


plt.plot(t,e,label='créneau') #représentation du créneau
plt.plot(t,u,label='uc') #représentation de uc(t)
plt.title('Evolution de uc en fonction de t')
plt.xlabel('t (s)')
plt.ylabel('tension (V)')
plt.grid()
plt.legend()
plt.show()
