Direction fields can give us some information about the solution to a differential equation without actually having the solution.
# dy/dx = f(x,y) # Example: dy/dx = 3(1+x)-y, y(1) = 4, x in [1, 2]. # Exact solution: y(x) = 3*x + exp(1-x) import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 3, 16) y = np.linspace(4, 7, 16) f = lambda x, y: 3*(1+x)-y dx = x[1] - x[0] dy = y[1] - y[0] for xx in x: for yy in y: Dy = f(xx, yy) * dx Dx = (0.8 * dx) * dx / np.sqrt(dx**2 + Dy**2) Dy = (0.8 * dy) * Dy / np.sqrt(dx**2 + Dy**2) plt.plot([xx - Dx/2., xx + Dx/2.], [yy - Dy/2., yy + Dy/2.], 'b', lw=0.5) x_exact = np.linspace(1, 2, 11) y_exact = 3*x_exact + np.exp(1-x_exact) plt.plot(x_exact, y_exact, 'r') plt.title("Direction field") plt.xlabel("x") plt.ylabel("y") plt.show()