#! /usr/bin/env python3 # from back_euler import back_euler from forward_euler import forward_euler from vanderpol_ode import vanderpol_nu, vanderpol_ode import matplotlib.pyplot as plt import numpy as np print ( '' ) print ( 'exercise8:' ) print ( 'Compare forward_euler and back_euler on the van der Pol equation.' ) NU = 12.0 vanderpol_nu ( NU ) f_ode = vanderpol_ode xRange = np.array ( [ 0.0, 2.0 ] ) yInit = np.array ( [ 0.0, 0.0 ] ) numSteps = 40 x1, y1 = forward_euler ( f_ode, xRange, yInit, numSteps ) x2, y2 = back_euler ( f_ode, xRange, yInit, numSteps ) plt.plot ( x1, y1, 'r-' ) plt.plot ( x2, y2, 'b-', linewidth = 2 ) plt.grid ( True ) plt.xlabel ( '<--- X --->' ) plt.ylabel ( '<--- Y(X) --->' ) plt.legend ( [ "forward_euler y", "forward_euler y'", "back_euler y", "back_euler y'" ] ) plt.title ( 'van der Pol ODE' ) filename = 'exercise8.jpg' plt.savefig ( filename ) print ( 'Graphics saved as "%s"' % ( filename ) ) plt.show ( ) plt.close ( )