Draw a slope field for a first order differential equation
from matplotlib.pyplot import * from math import * xMin = -3 xMax = 3 yMin = -3 yMax = 3 Nx = 12 Ny = 9 delta_x = (xMax-xMin)/Nx delta_y = (yMax-yMin)/Ny scl = 1.5*(1/min(delta_x,delta_y)) def Dx(x,y): return -2*x+5*y def Dy(x,y): return 2*x+y def U(x,y): return scl*sqrt(Dx(x,y)**2+Dy(x,y)**2) def sf(): for j in range(0,Ny): for i in range(0,Nx): xC = xMin+delta_x*(0.5+i) yC = yMin+delta_y*(0.5+j) DxU = Dx(xC,yC)/U(xC,yC) DyU = Dy(xC,yC)/U(xC,yC) arrow(xC-DxU/2,yC-DyU/2,DxU,DyU,color = 'black', head_width = .01) axis((xMin,xMax,yMin,yMax)) show()