Homework 3 Solution

$30.00

Category: Tag:

Description

Please submit to CANVAS a .zip le that includes the following Matlab functions:

Lagrange interp.m

test Lagrange interpolation.m

compute Lebesgue function.m

test Lebesgue function.m

Exercise 1 Write a function Lagrange interp.m that computes the Lagrangian interpolant of a given set of data points (xi; yi), i = 1, 2, :::. The function should be of the form

function [y] = Lagrange interp(xi,yi,x)

Input:

xi: vector of interpolation nodes

yi: vector of data points at interpolation nodes

x: vector of points at which we evaluate the polynomial interpolant

Output:

y: polynomial interpolant evaluated at x

Hint: Compare the output of your function with the output of the Matlab/Octave built-in function,

y=polyval(polyfit(xi,yi,length(xi)-1),x)

(see the Matlab/Octave documentation).

Exercise 2 Consider the nonlinear function

f(x) =

1

;

x 2 [ 1; 1]:

(1)

1 + 20x2

By using the Matlab function you coded in Exercise 1, determine the Lagrangian interpolant of f, i.e. the polynomial N f(x) that interpolates the set of data fxi; f(xi)gi=0;::;N in the following cases:

1

1. Evenly-spaced grid with N + 1 points

j

xj = 1 + 2 N

;j = 0; ::; N

(2)

2. Unevenly-spaced grid with N + 1 points (Chebyshev-Gauss-Lobatto points)

xj = cos

j ; j = 0; 1; :::; N;

(3)

N

In particular, write a Matlab function test Lagrange interpolation.m

function [x,f,P1,P2,P3,P4]=test Lagrange interpolation()

that returns the follwing items:

x: vector of 1000 evenly-spaced nodes in [ 1; 1] (use the command x=linspace(-1,1,1000)).

f: vector representing (1) evaluated at x.

P1: Lagrangian interpolant of (1) built on the grid (2) with N = 8 nodes and evaluated at x.

P2: Lagrangian interpolant of (1) built on the grid (2) with N = 20 nodes and evaluated at x.

P1: Lagrangian interpolant of (1) built on the grid (3) with N = 8 nodes and evaluated at x.

P1: Lagrangian interpolant of (1) built on the grid (3) with N = 20 nodes and evaluated at x.

The function should also plot (1) (in blue) and the Lagrangian interpolants (in red) obtained by using both the evenly-spaced and the unevenly-spaced grids for the cases N = 8 and N = 20 (4 di erent gures). Each gure should include the graph of f(x), the data points fxi; f(xi)g and the interpolant N f(x) through those points.

Hint: See the code uploaded in CANVAS for examples of similar plots.

Exercise 3 Let fli(x)gi=0;::;N be the set of Lagrange characteristic polynomials associated with the nodes fxj gj=0;::;N . We have seen in class that the polynomial interpolation error is related to the Lebesgue function

N

Xj

jlj(x)j

N (x) =

(Lebesgue function);

(4)

=0

and the Lebesgue constant

N = max

N (x)

(Lebesgue constant).

(5)

x2[ 1;1]

  1. Given the vector of interpolation nodes xi=[xi(1) … xi(N+1)], write a Matlab/Octave function compute Lebesgue function.m that returns the Lebesgue function (4) evaluated at

2

1000 evenly-spaced nodes between xi(1) and xi(N+1). Such function should also return the Lebesgue constant (5).

function [lambda,L]=compute Lebesgue function(xi)

Input:

xi: vector of interpolation nodes xi=[xi(1) … xi(N+1)]

Output:

lambda: Lebesgue function N (x) evaluated at 1000 evenly-spaced nodes between xi(1) and xi(N+1).

L: Lebesgue constant N .

  1. Apply the function compute Lebesgue function(xi) to the four cases of evenly- and unevenly-spaced grids you studied in Exercise 2. To this end, write a function

function [L1,L2,L3,L4]=test Lebesgue function()

that plots the Lebesgue function (4) corresponding to the aforementioned four cases (in 4 di erent Figures), and returns the value of the Lebesgue constant for each case.

Remark: Recall, that the smaller the Lebesgue constant the smaller the approximation error of the Lagrangian polynomial interpolation. If fact, we have seen in class that

kf(x) N (x)k1

(1 + N ) infN kf(x) (x)k1

(6)

2P

3


error: Content is protected !!