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,indexing='ij')
zz = xx + 1j*yy
pp = polyval(p,zz)
levels = 10.0**arange(-4,1)
contour(xx,yy,abs(pp),levels)
title(s);