# On commence par importer les bibliothèques nécessaires : 
import numpy as np # pour utiliser les tableaux
import matplotlib.pyplot as plt # pour les représentations graphiques

def Euler(f,X0,t0,tf,n):
    """
    f : fonction définissant l'équation différentielle
    X0 : condition initiale
    t0 : instant initial et tf : instant final
    n : nombre de pas de calcul : h=(tf-t0)/n
    """
    h=                           # (à compléter) pas de calcul
    t=np.linspace(    ,    ,         ) #  (à compléter) liste des temps (n+1 instants de calculs) répartis régulièrement entre t0 et tf
    X=np.zeros(              ) #  (à compléter) tableau qui contient n+1 zéros au départ
    X[0]=       #  (à compléter)  le 1er élément du tableau est la condition initiale
    for i in range(    ,   ): #   (à compléter) il reste n instants à calculer
    # calcul du point suivant (élément i+1) à partir du point précédent (élément i) :
        X[i+1]=                                          #  (à compléter) 
    return X #la fonction renvoie le tableau X des valeurs de X successives

##### Paramètres globaux ####
global E,C


#############################

t=np.linspace(t0,tf,n+1) # instants
plt.plot(t,solution) # représentation des valeurs de uc en fonction du temps
plt.title('Titre')
plt.xlabel('abscisse (unité)')
plt.ylabel('ordonnée(unités)')
plt.show() # affiche le graphique
        

#j = complex(0,1)  # Définition du nombre complexe j
#def H(f,fc):
#    """Fonction de transfert du filtre étudié
#    f : fréquence du signal en entrée
#    fc : fréquence de coupure du filtre"""
#    s =  """À compléter"""
#    return s
#e = np.array([A0 + np.sum(Ae*np.sin(2*np.pi*N*f*temps)) for temps in t])
#s = np.array([A0s + np.sum(As*np.sin(2*np.pi*N*f*temps+Phis)) for temps in t])
    
#    
#fig,ax = plt.subplots(1,2)

#ax[0].plot(...,..., label='entree')
#ax[0].plot(...,..., label='sortie')
#ax[0].set_xlabel('abscisse (unite)')
#ax[0].set_ylabel('ordonnee (unite)')
#ax[0].legend()

## Tracé des spectres NE PAS MODIFIER
#ax[1].loglog(N*f,Ae, label='Spectre de e(t)')
#ax[1].loglog(N*f,gain, label='Gain du filtre')
#ax[1].loglog(N*f,As, label='Spectre de s(t)')
#ax[1].set_xlabel('frequence (Hz)')
#ax[1].set_ylabel('amplitude')
#ax[1].legend()
ax[1].grid(which='both')

fig.show()
