>  Docs Center  >  Libraries  >  Markwardt  >  CUBETERP
Libraries

CUBETERP

CUBETERP

Name


  CUBETERP

Author


  Craig B. Markwardt, NASA/GSFC Code 662, Greenbelt, MD 20770
  craigm@lheamail.gsfc.nasa.gov
  UPDATED VERSIONs can be found on my WEB PAGE:
      http://cow.physics.wisc.edu/~craigm/idl/idl.html

Purpose


  Cubic spline interpolation with known derivatives

Major Topics


  Interpolation

Calling Sequence


  CUBETERP, XTAB, YTAB, YPTAB, XINT, YINT, YPINT=, YPPINT=, EXTRAP_ORDER=

Description



  CUBETERP performs cubic spline interpolation of a function. This
  routine is different from the many other spline interpolation
  functions for IDL in that it allows you to choose the slope of the
  spline at each control point. I.e. it is not forced to be a
  "natural" spline.
  The user provides a tabulated set of data, whose (X,Y) positions
  are (XTAB, YTAB), and whose derivatives are YPTAB. The user also
  provides a set of desired "X" abcissae for which interpolants are
  requested. The interpolated spline values are returned in YINT.
  The interpolated curve will smoothly pass through the control
  points, and have the requested slopes at those points.
  The user may also optionally request the first and second
  derivatives of the function with the YPINT and YPPINT keywords.

Inputs



  XTAB - tabulated X values. Must be sorted in increasing order.
  YTAB - tabulated Y values.
  YPTAB - tabulated derivatives ( = dY/dX, evaluated at XTAB).
  XINT - X values of desired interpolants.

Outputs



  YINT - Y values of desired interpolants.

Optional Keywords



  YPINT - upon return, the slope (first derivative) at the
          interpolated positions.
  YPPINT - upon return, the second derivative at the interpolated
            positions.
  EXTRAP_ORDER - technique used to extrapolate beyond the tabulated
                  values. Allowed values:
                    -1 - extrapolated points are set to NaN (not a number)
                    0 - constant extrapolation, equal to the value
                        at the nearest tabulated point
                    1 - linear extrapolation, based on slope at
                        nearest tabulated value
                    2 - quadratic extrapolation, based on slope and
                        second derivative at nearest tabulated value
                    3 - cubic extrapolation.
                  DEFAULT: 2 (quadratic extrapolation)

Example



  ;; Set up some fake data
  xtab = [0D,2,5,10]
  ytab = [2D,4,-3,-5]
  yptab = [-1D,0.5,2.3,-4]
  ;; Interpolate to a finer grid
  xint = dindgen(1001)/100
  cubeterp, xtab, ytab, yptab, xint, yint
  ;; Plot it
  plot, xint, yint
  oplot, xtab, ytab, psym=1, symsize=2
  for i = 0, n_elements(xtab)-1 do $ ;; Also plot slopes
    oplot, xtab(i)+[-0.5,0.5], ytab(i)+[-0.5,0.5]*yptab(i)
 

Modification History


  Written and documented, CM, July 2003
  Added EXTRAP_ORDER = -1 option, CM, 15 May 2005
  Syntax error fix, CM, 07 Mar 2007
  Clarified documentation a bit, CM, 12 Nov 2007
  Small documentation changes, CM, 16 Apr 2009



© 2024 NV5 Geospatial Solutions, Inc. |  Legal
   Contact Us