Page 149 - Applied Numerical Methods Using MATLAB
P. 149

138    INTERPOLATION AND CURVE FITTING
                       y 1 − y 0          y 2 − y 1          y 3 − y 2
                 dy 0 =       = 1,  dy 1 =       = 3,  dy 2 =       = 1 (E3.3.3)
                         h 0                h 1                h 2
           we write Eq. (3.5.8) as

                                                      
                                       3(dy 0 − S 0,1 )    
                    2  100        S 0,2                      −3
                    1  410                             6  
                                          3(dy 1 − dy 0 ) 
                                S 1,2               =            (E3.3.4)
                   0  141   S 2,2    =                 −6 
                                          3(dy 2 − dy 1 ) 
                    0  012        S 3,2                       3
                                           3(S 3,1 − dy 1 )
           Then we solve this equation to get
                   S 0,2 =−3,   S 1,2 = 3,  S 2,2 =−3,    S 3,2 = 3     (E3.3.5)

           and substitute this into Eq. (3.5.9) to obtain

                    S 0,0 = 0,  S 1,0 = 1,  S 2,0 = 4                   (E3.3.6)
                                                    1
                                h 0
                    S 0,1 = dy 0 −  (S 1,2 + 2S 0,2 ) = 1 − (3 + 2 × (−3)) = 2 (E3.3.7a)
                                3                   3
                                                    1
                                h 1
                    S 1,1 = dy 1 −  (S 2,2 + 2S 1,2 ) = 3 − (−3 + 2 × 3) = 2  (E3.3.7b)
                                3                   3
                                                    1
                                h 2
                    S 2,1 = dy 2 −  (S 3,2 + 2S 2,2 ) = 1 − (3 + 2 × (−3)) = 2 (E3.3.7c)
                                3                   3
                                      3 − (−3)
                          S 1,2 − S 0,2
                    S 0,3 =         =          = 2                     (E3.3.8a)
                             3h 0         3
                          S 2,2 − S 1,2  −3 − 3
                    S 1,3 =         =        =−2                       (E3.3.8b)
                             3h 1        3
                                      3 − (−3)
                          S 3,2 − S 2,2
                    S 2,3 =         =          = 2                     (E3.3.8c)
                             3h 2         3
            %do_csplines.m
            KC = 1; dy0 = 2; dyN = 2; % with specified 1st derivatives on boundary
            x = [0  1  2  3];  y = [0  1  4  5];
            xi = x(1)+[0:200]*(x(end)-x(1))/200; %intermediate points
            [yi,S] = cspline(x,y,xi,KC,dy0,dyN); S %cubic spline interpolation
            clf, plot(x,y,’ko’,xi,yi,’k:’)
            yi = spline(x,[dy0 y dyN],xi); %for comparison with MATLAB built-in ftn
            hold on, pause, plot(x,y,’ro’,xi,yi,’r:’)
            yi = spline(x,y,xi); %for comparison with MATLAB built-in ftn
            pause, plot(x,y,’bo’,xi,yi,’b’)
            KC = 3; [yi,S] = cspline(x,y,xi,KC);%with the 2nd derivatives extrapolated
            pause, plot(x,y,’ko’,xi,yi,’k’)
   144   145   146   147   148   149   150   151   152   153   154