Polynomial Interpolation CPSC 303: Numerical Approximation and Discretization

Polynomial Interpolation CPSC 303: Numerical Approximation and Discretization

Lecture Notes 2: Polynomial Interpolation CPSC 303: Numerical Approximation and Discretization Ian M. Mitchell [email protected] http://www.cs.ubc.ca/~mitchell University of British Columbia Department of Computer Science Winter Term Two 2012{2013 Copyright 2012{2013 by Ian M. Mitchell This work is made available under the terms of the Creative Commons Attribution 2.5 Canada license http://creativecommons.org/licenses/by/2.5/ca/ Outline • Background • Problem statement and motivation • Formulation: The linear system and its conditioning • Polynomial bases • Monomial • Lagrange • Newton • Uniqueness of polynomial interpolant • Divided differences • Divided difference tables and the Newton basis interpolant • Divided difference connection to derivatives • Osculating interpolation: interpolating derivatives • Error analysis for polynomial interpolation • Reducing the error using the Chebyshev points as abscissae CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 2/ 53 Interpolation Motivation n We are given a collection of data samples f(xi; yi)gi=0 n • The fxigi=0 are called the abscissae (singular: abscissa), n the fyigi=0 are called the data values • Want to find a function p(x) which can be used to estimate y(x) for x 6= xi • Why? We often get discrete data from sensors or computation, but we want information as if the function were not discretely sampled • If possible, p(x) should be inexpensive to evaluate for a given x CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 3/ 53 Interpolation Formulation There are lots of ways to define a function p(x) to approximate n f(xi; yi)gi=0 • Interpolation means p(xi) = yi (and we will only evaluate p(x) for mini xi ≤ x ≤ maxi xi) • Most interpolants (and even general data fitting) is done with a linear combination of (usually nonlinear) basis functions fφj(x)g n X p(x) = pn(x) = cjφj(x) j=0 where cj are the interpolation coefficients or interpolation weights CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 4/ 53 How Many Ways to Interpolate? 6 Given data samples f(yi; ti)gi=0 (eg: n + 1 = 7 samples), how many different mathematical functions can interpolate this data? (A) One: A polynomial of suitable degree. (B) Two: Either a polynomial of suitable degree, or the Fourier transform. (C) Seven, because there are seven samples. (D) An infinite number. A B C D CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 5/ 53 Linear System for Interpolation Pn Our interpolant is p(x) = j=0 cjφj(x) • From interpolation condition n X p(xi) = cjφj(xi) = yi i = 0; 1; : : : ; n j=0 which leads to the linear system Ac = y where 2 3 2 3 2 3 φ0(x0) φ1(x0) ··· φn(x0) c0 y0 6φ0(x1) φ1(x1) ··· φn(x1)7 6c1 7 6y1 7 A = 6 7c = 6 7 y = 6 7 6 . .. 7 6 . 7 6 . 7 4 . 5 4 . 5 4 . 5 φ0(xn) φ1(xn) ··· φn(xn) cn yn • When can we accurately solve this linear system? CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 6/ 53 How many basis functions? How many basis functions do we need to interpolate this data set? (A) Six. (B) Seven. (C) Eight. (D) An infinite number. A B C D CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 7/ 53 Determining the Interpolation Coefficients Under what conditions can we find a unique set of interpolation n coefficients fcjgj=0? n (A) If the basis functions fφjgj=0 are linearly independent. (B) If A is nonsingular (eg: det(A) 6= 0). (C) If for any x 6= 0, Ax 6= 0. (D) None of the above. A B C D CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 8/ 53 Linear System Conditioning Digression Consider solving linear system Ax = b given A and b • Due to approximation error, we actually use a slight perturbation A^ = A + ∆A • The solution to the perturbed system is x^ = x + ∆x • So b = A^x^ = Ax^ + ∆Ax^ implies b − Ax^ = ∆Ax^ • Then ∆x =x ^ − x = A−1Ax^ − A−1b = A−1(Ax^ − b) = −A−1∆Ax^ • Now take norms k∆xk ≤ kA−1kk∆Akkx^k k∆xk k∆Ak k∆Ak ≤ kA−1kkAk = cond(A) kx^k kAk kAk | {z } | {z } output error input error where cond(A) = kA−1kkAk is the definition of the condition number of matrix A • Perturbations on b have a similar effect, so the overall result is roughly (assuming kx^k ≈ kxk) k∆xk k∆bk k∆Ak cond(A) + kxk . kbk kAk CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 9/ 53 Choosing Basis Functions What should we use for the fφjg? • Many possibilities: polynomials, trigonometric, exponential, rational (fractions), wavelets / curvelets / ridgelets, radial basis functions, ... • We will focus for now on polynomial basis functions • Most commonly used • Easy to evaluate, integrate, differentiate • Illustrates the basic interpolation ideas and techniques • Virtually all other interpolation problems will follow the same procedure: form A and solve for c • Now we are ready to examine particular polynomial bases which are often chosen due to their simplicity, efficiency, numerical robustness, extensibility, etc. CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 10/ 53 Monomial Basis j The monomial basis functions are typically defined as φj(x) = x ~ j • We could also scale and shift: φj(x) = sj(x − x~) for fixed known n scaling constants fsjgj=0 and shift constant x~ j • Entries of A are aij = φj(xi) = (xi) • Matrix is dense: O(n2) to construct and O(n3) to solve • In fact, this particular matrix appears so often, it has a name: \Vandermonde" matrix (in Matlab: vander) • Interpolant p(x) can be evaluated in O(n) with Horner's rule CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 11/ 53 Monomial Basis Conditioning The monomial basis (and the corresponding Vandermonde matrix) are known to be very poorly conditioned as n gets large and/or fxig cover a large range. • Notice that φj(x) starts to look very similar to φj−1(x) and φj+1(x) as j gets larger. • Conditioning can be improved somewhat by scaling and/or shifting basis functions CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 12/ 53 Monomial Example Construct an interpolant for data points f(xi; yi)g = f(2; 14); (6; 24); (4; 25); (7; 15)g using the monomial basis. 2 3 • Requires four basis functions: fφj(x)g = f1; x; x ; x g 2 3 • The interpolant will be p(x) = c0 + c1x + c2x + c3x • Construct linear system 2 3 2 3 2 3 1 2 4 8 c0 14 61 6 36 2167 6c17 6247 A = 6 7c = 6 7 y = 6 7 41 4 16 64 5 4c25 4255 1 7 49 343 c3 15 T and solve Ac = y to find c ≈ −0:267 1:700 2:767 3:800 • Check cond(A) ≈ 6:1(103) • However, if we scaled all the abscissae x~i = 1000xi, the resulting cond(A~) ≈ 4:6(1012) CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 13/ 53 Monomial Interpolation Practice For the data set f(xi; yi)g = f(1; 11); (3; 13); (2; 12)g j and the monomial basis functions φj(x) = x , what is the form of the matrix A in Ac = y? 21 1 13 21 1 13 (A) 41 3 25 (C) 41 3 95 1 9 4 1 2 4 2 1 1 1 3 2 1 1 1 3 1 3 2 (B) 1 3 2 (D) 6 7 4 5 6 1 9 4 7 11 13 12 4 5 11 13 12 A B C D CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 14/ 53 Lagrange Basis The best conditioned matrix is the identity. • In order for A = I, we need ( 1 i = j aij = φj(xi) = 0 i 6= j • We can achieve this by choosing the Lagrange basis functions n Y (x − xi) Lj(x) = (xj − xi) i=0;i6=j • Numerator ensures that aij = Lj (xi) = 0 for i 6= j • Denominator normalizes to get ajj = Lj (xj ) = 1 • With A = I, no need to solve linear system: cj = yj and Pn p(x) = j=0 yjLj(x) • Pros & Cons: • Trivial to determine and modify interpolation coefficients • Nontrivial to compute normalization constants or add new data points CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 15/ 53 Lagrange Basis Conditioning The Lagrange basis functions Lj(x) are clearly distinct. With abscissae i xi = =5 for i = 0; 1;:::; 5 the Lagrange basis function Lj(x) are shown below. CPSC 303 Notes 2 Ian M. Mitchell | UBC Computer Science 16/ 53 Lagrange Example Construct an interpolant for data points f(xi; yi)g = f(2; 14); (6; 24); (4; 25); (7; 15)g using the Lagrange basis. • Four basis functions (x − 6)(x − 4)(x − 7) (x − 2)(x − 4)(x − 7) L (x) = L (x) = 0 (2 − 6)(2 − 4)(2 − 7) 1 (6 − 2)(6 − 4)(6 − 7) (x − 2)(x − 6)(x − 7) (x − 2)(x − 6)(x − 4) L (x) = L (x) = 2 (4 − 2)(4 − 6)(4 − 7) 3 (7 − 2)(7 − 6)(7 − 4) • Interpolant will be (x − 6)(x − 4)(x − 7) (x − 2)(x − 4)(x − 7) p(x) =14 + 24 (−4)(−2)(−5) (+4)(+2)(−1) (x − 2)(x − 6)(x − 7) (x − 2)(x − 6)(x − 4) + 25 + 15 (+2)(−2)(−3) (+5)(+1)(+3) • Scaling abscissae x~i = 1000xi will produce different bases L~j(x), but the accuracy of the coefficients will remain the same CPSC 303 Notes 2 Ian M.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    53 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us