In Matlab (diary on), do the following: 1. Generate N+1=11 equi-spaced nodes Xi in the interval [?5,5]: X = [-5:1:5]; (to see values, omit the ;) or X = linspace(-5,5,11); and evaluate f(x) at these nodes: Y = 1./(1+X.^2); The N+1 points (Xi, Yi) are the data points to be interpolated by various methods. Plot them to see where they are: plot(X,Y,'o') title('N+1 = 11 equi-spaced points of Runge function') pause Also generate lots of points xi at which to evaluate f(x) and the interpolants for plotting: x = [-5:0.1:5]; (this is a lower case x, not X) Evaluate f(x) at these xi's and plot y=f(x) and the data points: plot(x,y,'-', X,Y,'o') title('Runge f(x) and data pts') pause Now, we use the data points (Xi, Yi) to construct various interpolants.A good interpolant should "reproduce" the function f(x) as close as possible. Let's try a few.2. Nth degree interpolating polynomial: Use Matlab's polyinterp to construct (the coefficients of) the Nth degree interpolating polynomial (here N=10): pN = polyfit( X,Y, N); Now this can be evaluated anywhere in the interval [-5,5] with polyval, e.g. at the xi's: v = polyval( pN, x); Find the Inf-norm error ?y-v??: err = norm(y-v, inf) and plot both f(x) and pN(x) on the same plot: plot(x,y,'-b', x,v,'*-r') title('f(x) and pN(x) at plotting pts') pause Is this a good interpolant ? Why ? 3. Interpolation at Chebychev nodes: Generate N+1=11 Chebychev points (Xchebi, Ychebi) in [a,b]: fprintf('------ chebychev nodes ------') K = N+1; a=?5; b=5; for i=1:K Xcheb(i)=(a+b)/2 + (b?a)/2 *cos( (i?0.5)*pi/K ); end Ycheb = 1./(1+Xcheb.^2); Follow the steps in 2. to produce the Nth degree interpolating polynomial pNcheb based on the Chebychev nodes, its values vcheb at the xi's, the error ?y ? vcheb??, and plot both f(x) and pNcheb(x) on the same plot. Compare the error and plot with those from 2. Which one is better ? why ? 4. Piecewise linear interpolation: Use Matlab's interp1 to construct the linear interpolant: lin = interp1(X,Y, x, 'linear'); Repeat the steps of 2. Compare errors and plots. 5. Piecewise cubic interpolation: Use Matlab's interp1 to construct the cubic interpolant: cub = interp1(X,Y, x, 'cubic'); Repeat the steps of 2. Compare errors and plots. 6. Cubic spline interpolation: Use Matlab's interp1 to construct the spline interpolant: spl = interp1(X,Y, x, 'spline'); Repeat the steps of 2. Compare errors and plots. 7. To see that the error gets worse for bigger N for equi-spaced nodes but not for Chebychev nodes (for this f(x) at least), repeat 2. and 3. with N = 20.