# plot the error polynomial on [a,b] import numpy as np import matplotlib.pyplot as plt from chebyshev import chebyshev a = -1 b = 1 # points for visualization Xf = np.linspace(a,b,100) fs = 24 #font size for N in range(2,101,5): # interpolation points Xb = np.linspace(-1,1,N) #Xb = chebyshev(-1,1,N) # form the polynomial # (x-x1)*(x-x2)*...*(x-xN) p = lambda x: np.prod(x-Xb) # evaluate at the visualization points pf = [p(x) for x in Xf] maxpf = max(np.abs(pf)) # visualize plt.clf() plt.plot(Xf,pf,'-', Xb,np.zeros_like(Xb),'x', linewidth=3,markeredgewidth=3,markersize=10) plt.xlabel('x',fontsize=fs) plt.ylabel('y',fontsize=fs) plt.axis([a, b,-maxpf,maxpf]) plt.grid(True) plt.title('Interpolation using %3d points' % (N), fontsize=fs) plt.show(block=False) plt.draw() # wait for a key press _ = input("Press [enter] to continue.")