SPLINE INTERPOLATION Spline Background • Problem: High Degree Interpolating Polynomials Often Have Extra Oscillations

SPLINE INTERPOLATION Spline Background • Problem: High Degree Interpolating Polynomials Often Have Extra Oscillations

SPLINE INTERPOLATION Spline Background • Problem: high degree interpolating polynomials often have extra oscillations. 1 Example: \Runge" function f(x) = 1+4x2 , x 2 [−1; 1]. 1/(1+4x2) and P (x) and P (x) 8 16 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 • Piecewise Polynomials provide alternative to high degree polynomials: approximation interval [a; b] is sub- divided into pieces [x1; x2]; [x2; x3];:::; [xn−1; xn], with a = x1 < x2 < ··· < xn = b, and a low degree polyno- mial is used to approximate f(x) on each subinterval. Example: piecewise linear approximation S(x) f(xj+1) − f(xj) S(x) = f(xj)+(x−xj) ; if x 2 [xj; xj+1] xj+1 − xj • Splines are piecewise polynomial approximations, con- nected at xj's with various continuity conditions. CUBIC SPLINE INTERPOLATION Cubic Interpolating Splines for a = x1 < ··· < xn = b with given data (x1; y1); (x2; y2);:::; (xn; yn). • Properties of Cubic Interpolating Spline S(x), a) S(x) is composed of cubic polynomial pieces Sj(x) S(x) = Sj(x) if x 2 [xj; xj+1]; j = 1; 2; : : : ; n − 1: b) S(xj) = yj, j = 1; : : : ; n: (interpolation) c) Sj−1(xj) = Sj(xj), j = 2; : : : ; n − 1 (S 2 C[a; b]). 0 0 1 d) Sj−1(xj) = Sj(xj), j = 2; : : : ; n − 1 (S 2 C [a; b]). 00 00 2 e) Sj−1(xj) = Sj (xj), j = 2; : : : ; n − 1 (S 2 C [a; b]). f) two end conditions: examples 00 00 i) S (x1) = S (xn) = 0 (natural or free spline); 0 0 0 0 ii) S (x1) = f (x1);S (xn) = f (xn) (complete or clamped spline); 000 000 iii) S1 = Sn−1 = 0 (parabolically terminated); 000 000 000 000 iv) S1 (x2) = S2 (x2);Sn−2(xn−1) = Sn−1(xn−1) (not-a-knot). Note: if 2 3 Sj(x) = aj +bj(x−xj)+cj(x−xj) +dj(x−xj) , condition a) provides 4(n − 1) free parameters; b)-f) give n + 3(n − 2) + 2 = 4(n − 1) constraints. 2 CUBIC SPLINE INTERPOLATION • Example: n = 3, natural, data (1,2), (2,3), (3,5). 3 1 3 S1(x) = 2 + 4(x − 1) + 4(x − 1) , 3 3 2 1 3 S2(x) = 3 + 2(x − 2) + 4(x − 2) − 4(x − 2) , 3 CUBIC SPLINE INTERPOLATION Cubic Interpolating Spline Construction • Spline Linear System: let hj = xj+1 − xj; start with 2 3 Sj(x) = aj + bj(x − xj) + cj(x − xj) + dj(x − xj) 2 3 = yj + bj(x − xj) + cj(x − xj) + dj(x − xj) : c) Sj+1(xj+1) = Sj(xj+1), implies 2 3 ∆yj 2 yj+1 = yj +bjhj +cjhj +djhj; = bj +cjhj +djhj; hj where ∆yj = yj+1 − yj. 00 Notice Sj (x) = 2cj + 6dj(x − xj), so 00 00 e) Sj+1(xj+1) = Sj (xj+1), implies 2cj+1 = 2cj + 6djhj; djhj = (cj+1 − cj)=3; 00 with extra unknown cn = Sn−1(xn)=2 added. Then ∆yj (cj+1 − cj)hj (cj+1 + 2cj)hj = bj +cjhj + = bj + ; hj 3 3 3∆yj+1 3∆yj − = 3∆bj+(cj+2+2cj+1)hj+1−(cj+1+2cj)hj: hj+1 hj 0 2 Also Sj(x) = bj + 2cj(x − xj) + 3dj(x − xj) , so 0 0 2 d) Sj+1(xj+1) = Sj(xj+1); bj+1 = bj + 2cjhj + 3djhj; ∆bj = 2cjhj + (cj+1 − cj)hj = (cj+1 + cj)hj 3∆yj+1 3∆yj − = cjhj + 2cj+1(hj + hj+1) + cj+2hj+1 hj+1 hj 4 CUBIC SPLINE INTERPOLATION 00 00 • Natural Splines: S (x1) = S (xn) = 0, so c1 = cn = 0 Linear system equations are a \tridiagonal" system c1 = 0 3∆y2 3∆y1 c1h1 + 2c2(h1+h2) + c3h2 = − h2 h1 3∆y3 3∆y2 c2h2 + 2c3(h2+h3) + c4h3 = − h3 h2 . 3∆yn−2 3∆y3−2 cn−3hn−3 + 2cn−2(hn−3+hn−2) + cn−1hn−2 = − hn−2 hn−3 3∆yn−1 3∆yn−2 cn−2hn−2 + 2cn−1(hn−2+hn−1) + cnhn−1 = − hn−1 hn−2 cn = 0: which can be solved uniquely for cj's with O(n) work; 2 dj = (cj+1 − cj)=(3hj); bj = ∆yj=hj − cjhj − djhj can be used to find remaining coefficients for Sj(x)'s. Note: if all hj = h, a simpler tridiagonal system. 5 CUBIC SPLINE INTERPOLATION • Example: n = 3, natural, with data (1,2), (2,3), (3,5), so h1 = h2 = 1, ∆y1 = 1; ∆y2 = 2. Only one equation 2c2(1 + 1) = 3(2 − 1), so c2 = 3=4, d1 = 1=4; d2 = −1=4; b1 = 1 − 0 − 1=4 = 3=4; b2 = 2 − 3=4 + 1=4 = 3=2. 3 1 S (x) = 2 + (x − 1) + (x − 1)3; 1 4 4 3 3 1 S (x) = 3 + (x − 2) + (x − 2)2 − (x − 2)3: 2 2 4 4 1 • Example: \Runge" function f(x) = 1+4x2 , x 2 [−1; 1]. 1/(1+4x2), S(x) and P (x) 4 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 6 CUBIC SPLINE INTERPOLATION 0 0 00 0 • Clamped Splines: let S (x1) = y1;S (xn) = yn, 0 0 2 so y1 = b1, yn = bn−1 + 2cn−1hn−1 + 3dn−1hn−1 ∆yj (cj+1+2cj)hj Using = bj + , 3hjdj = (cj+1 − cj); hj 3 \1st" and \nth" equations become 3∆y1 0 2c1h1 + c2h1 = − 3y , and h1 1 0 3∆yn−1 cn−1hn−1 + 2cnhn−1 = 3y − . n hn−1 Linear system equations are a \tridiagonal" system 3∆y1 0 2c1h1 + c2h1 = − 3y1 h1 3∆y2 3∆y1 c1h1 + 2c2(h1+h2) + c3h2 = − h2 h1 . 3∆yn−1 3∆yn−2 cn−2hn−2 + 2cn−1(hn−2+hn−1) + cnhn−1 = − hn−1 hn−2 0 3∆yn−1 cn−1hn−1 + 2cnhn−1 = 3yn − : hn−1 which can be solved (uniquely) for cj's with O(n) work; 2 dj = (cj+1 − cj)=(3hj); bj = ∆yj=hj − cjhj − djhj can be used to find remaining coefficients for Sj(x)'s. 7 CUBIC SPLINE INTERPOLATION • Example: n = 3, clamped, with data (1,2), (2,3), (3,5), 0 0 and y1 = 1, y3 = 2. Three equations: 2c1 + c2 = 3(2 − 1) − 3 = 0, c1 + 4c2 + c3 = 3, c2 + 2c3 = 6 − 3(2) = 0, so c1 = c3 = −1=2; c2 = 1; d1 = 1=2; d2 = −1=2; b1 = 1; b2 = 2−1+1=2 = 3=2. 1 2 1 3 S1(x) = 2 + (x − 1) − 2(x − 1) + 2(x − 1) , 3 2 1 3 S2(x) = 3 + 2(x − 2) + (x − 2) − 2(x − 2) , 000 000 • Parabolically Terminated Splines: S1 = Sn−1 = 0, so d1 = dn−1 = 0, c1 = c2; cn−1 = cn. Linear system equations are a \tridiagonal" system c1 − c2 = 0 3∆y2 3∆y1 c1h1 + 2c2(h1+h2) + c3h2 = − h2 h1 . 3∆yn−1 3∆yn−2 cn−2hn−2 + 2cn−1(hn−2+hn−1) + cnhn−1 = − hn−1 hn−2 cn−1 − cn = 0: which can be solved (uniquely) for cj's with O(n) work; 2 dj = (cj+1 − cj)=(3hj); bj = ∆yj=hj − cjhj − djhj can be used to find remaining coefficients for Sj(x)'s. 8 CUBIC SPLINE INTERPOLATION • Not-a-Knot Splines: 000 000 000 000 S1 (x2) = S2 (x2);Sn−2(xn−1) = Sn−1(xn−1), so d1 = d2, dn−2 = dn−1, and S1 = S2;Sn−2 = Sn−1. Then (c2 − c1)=h1 = (c3 − c2)=h2, (cn−1 − cn−2)=hn−2 = (cn − cn−1)=hn−1, so \1st" and \nth" equations become c1h2 − c2(h1 + h2) + c3h1 = 0 cn−2hn−1 − cn−1(hn−2 + hn−1) + cnhn−2 = 0. Linear system equations are a \tridiagonal" system c1h2 − c2(h1 + h2) + c3h1 = 0 3∆y2 3∆y1 c1h1 + 2c2(h1+h2) + c3h2 = − h2 h1 . 3∆yn−1 3∆yn−2 cn−2hn−2 + 2cn−1(hn−2+hn−1) + cnhn−1 = − hn−1 hn−2 cn−2hn−1 − cn−1(hn−2 + hn−1) + cnhn−2 = 0: which can be solved (uniquely) for cj's with O(n) work; 2 dj = (cj+1 − cj)=(3hj); bj = ∆yj=hj − cjhj − djhj can be used to find remaining coefficients for Sj(x)'s. 9 CUBIC SPLINE INTERPOLATION Efficient Spline Evaluation • Setup: solve linear system for cj's in O(n) time • For each evaluation point x, find interval x 2 [xj; xj+1] in O(log(n)) time and evaluate Sj(x) in O(1) time. Alternate formula for Sj(x) (without bj's and dj's): cj 3 cj+1 3 Sj(x) = (xj+1 − x) + (x − xj) 3hj 3hj+1 yj cjhj yj+1 cj+1hj+1 + ( − )(xj+1 − x) + ( − )(x − xj): hj 3 hj+1 3 • Compare with polynomial interpolation, where setup time is O(n2) and evauation time is O(n). Error Theorem : 4 (4) if f 2 C [a; b], with maxx2[a;b] jf (x)j = M, and S(x) is the unique clamped spline for f(x) with nodes a = x1 < x2 ··· < xn = b, then 5M 4 jf(x) − S(x)j ≤ max hj: 384 1≤j<n 10.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 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