# -*- coding: utf-8 -*-
"""
Created on Sun Mar  2 18:01:22 2014

@author: dconduche
"""

import numpy as np

"""Pour plus d'explications, voir le code dans le corrigé du TP Euler"""

def Euler(F, y0, a, b, n):
    x = np.linspace(a, b, n)  # création de la subdivision sur x
    y = np.empty((n,np.size(y0))).squeeze()  # création du tableau des y[k]
    pas = (b-a)/float(n-1)  # pas de la subdivision (pour ne pas le recalculer)
    y[0] = y0
    for k in range(n-1):
        y[k+1] = y[k] + F(x[k], y[k]) * pas
    return y

# Type retourné : un tableau numpy (np.ndarray) de taille n, 
# représentant y(k(b-a)/n).
