# Résoudre l'EDO dx/dt = f(x(t), t) avec la méthode d'Euler
#
# Arguments:
# f = fonction à deux arguments = membre de droite de l'EDO
# x0 = x(0) condition initiale
# a = pas d'incrément en t
# N = nombre de points à calculer
#
# Renvoie une liste de N+1 valeurs [x(0),...,x(Na)]
def euler(f, x0, a, N):
    x = [x0] # une liste qui contient initialement x0
    xn = x0
    for n in range(N):
        xn += a * f(xn, a*n)
        x += [xn] # ajouter xn à la liste x
    return x
