euler.py

#
# Explicit Euler method
# Vincent Legat - 2018
# Ecole Polytechnique de Louvain
#

from numpy import *
from matplotlib import pyplot as plt

Xstart = 0; Xend = 3; Ustart = 1; 
for n in [3,6,12,24]:
  h = (Xend-Xstart)/n
  X = linspace(Xstart,Xend,n+1)
  U = zeros(n+1); U[0] = Ustart
  for i in range(n):
    U[i+1] =  U[i] + h*(X[i]-U[i])/2
  plt.plot(X,U,'.-b')
plt.show()