1) For f (x) = e^(-|x|) on [-3, 3], you are to compare evenly-spaced interpolation with Chebyshev interpolation. In this exercise, you do not have to use any loops.
b) Modify your script from part (a) to make a new script file to do the following: Compute the n Chebyshev nodes, and call newtdd.m and nest.m the same way you did in part (a) to get an interpolating polynomial on x-values evenly spaced by 0.01 between -3 and 3.
Plot the new interpolating polynomial, and also plot the vector of the absolute errors between the interpolating polynomial and the exact function on these 0.01-spaced x-values for n = 10 and n = 30, where n is the number of nodes.
Use MATLAB to compute an estimate of the maximum of the absolute error in the interpolating polynomial for n = 30. c) Can you compute a theoretical error bound for parts (a) and (b) with the bounds discussed in class? Explain. On a related note, near what part of a function do you think large interpolation errors can occur, besides the endpoints?
(result from class that an upper bound on the absolute error in the unique interpolating polynomial on 2 nodes, x1 and x2, for any function f(x) is
((M2)/8) h^2, where h = x2 – x1 > 0, and M2 = max (x1< x < x2 ) |f ”(x)|.) %Program 3.1 Newton Divided Difference Interpolation Method %Computes coefficients of interpolating polynomial %Input: x and y are vectors containing the x and y coordinates % of the n data points %Output: coefficients c of interpolating polynomial in nested form %Use with nest.m to evaluate interpolating polynomial function c=newtdd(x,y,n) for j=1:n v(j,1)=y(j); % Fill in y column of Newton triangle end for i=2:n % For column i, for j=1:n+1-i % fill in column from top to bottom v(j,i)=(v(j+1,i-1)-v(j,i-1))/(x(j+i-1)-x(j)); end end for i=1:n c(i)=v(1,i); % Read along top of triangle end % for output coefficients %Program 0.1 Nested multiplication %Evaluates polynomial from nested form using Horner’s method %Input: degree d of polynomial, % array of d+1 coefficients (constant term first), % x-coordinate x at which to evaluate, and % array of d base points b, if needed %Output: value y of polynomial at x function y=nest(d,c,x,b) if nargin<4, b=zeros(d,1); end y=c(d+1); for i=d:-1:1 y = y.*(x-b(i))+c(i); end