#!/usr/bin/env python # coding: utf-8 # # p10: Polynomials and corresponding equipotential curves # In[1]: get_ipython().run_line_magic('matplotlib', 'inline') get_ipython().run_line_magic('config', "InlineBackend.figure_format='svg'") from numpy import pi,linspace,arange,abs,cos,poly,polyval,meshgrid,real,imag from matplotlib.pyplot import figure,subplot,plot,title,axis,contour # In[2]: N = 16 figure(figsize=(9,8)) for i in range(2): if i==0: s = 'equispaced points'; x = -1.0 + 2.0*arange(0,N+1)/N if i==1: s = 'Chebyshev points'; x = cos(pi*arange(0,N+1)/N) p = poly(x) # Plot p(x) xx = linspace(-1.01,1.01,400,True) pp = polyval(p,xx) fig = subplot(2,2,2*i+1) plot(x,0*x,'o',xx,pp) fig.set_xlim(-1,1) title(s) # Plot equipotential curves subplot(2,2,2*i+2) plot(real(x),imag(x),'o') axis([-1.4,1.4,-1.12,1.12]) xgrid = linspace(-1.4,1.4,250,True) ygrid = linspace(-1.12,1.12,250,True) xx,yy = meshgrid(xgrid,ygrid) zz = xx + 1j*yy pp = polyval(p,zz) levels = 10.0**arange(-4,1) contour(xx,yy,abs(pp),levels) title(s)