from pylab import plot,show,ylabel,xlabel def expeuler(N,T,t0=0.0,u0 =0.0): dt = 1.*T/N t = [t0,] u = [u0,] for i in range(N): u +=[u[-1] + dt*(u[-1] + t[-1]*(2. -t[-1]))] t += [t[-1]+dt] return u,t def impeuler(N,T,u0=0.0,t0=0.0): dt= 1.*T/N t = [t0,] u = [u0,] for i in range(N): u +=[(u[-1] +dt*t[-1]*(2. - t[-1]))/(1. - dt)] t += [t[-1]+dt] return u,t s = expeuler(20,1.) plot(s[1],s[0]) s = impeuler(20,1.) plot(s[1],s[0]) show()