#!/usr/bin/env python # coding: utf-8 # # p09: Polynomial interpolation in equispaced and chebyshev points # In[1]: get_ipython().run_line_magic('matplotlib', 'inline') get_ipython().run_line_magic('config', "InlineBackend.figure_format='svg'") from numpy import pi,inf,linspace,arange,cos,polyval,polyfit from numpy.linalg import norm from matplotlib.pyplot import figure,subplot,plot,axis,title,text # In[2]: N = 16 xx = linspace(-1.01,1.01,400,True) figure(figsize=(10,5)) 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) subplot(1,2,i+1) u = 1.0/(1.0 + 16.0*x**2) uu = 1.0/(1.0 + 16.0*xx**2) p = polyfit(x,u,N) pp= polyval(p,xx) plot(x,u,'o',xx,pp) axis([-1.1, 1.1, -1.0, 1.5]) title(s) error = norm(uu-pp, inf) text(-0.6,-0.5,'max error='+str(error))