Welcome to the L3 Harris Geospatial documentation center. Here you will find reference guides and help documents.
﻿
>  Docs Center  >  Libraries  >  Markwardt  >  QUINTERP

QUINTERP

QUINTERP

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

Quintic spline interpolation from tabulated first and second derivatives

Major Topics

Interpolation, Hermite Interpolation

Calling Sequence

QINTERP, XTAB, YTAB, YPTAB, YPPTAB, \$
XINT, YINT, YPINT=, YPPINT=, MISSING=

Description

QUINTERP performs quintic spline interpolation of a function.
This routine is a natural extension of CUBETERP, in that it meant
for interpolation where the tabulated function has known values,
first derivatives *and* second derivatives at each point. Given
that there are six known values for each interpolation interval,
the resulting interpolation function is a quintic polynomial (one
of a class of Hermite interpolating splines).
The user provides a tabulated set of data, whose (X,Y) positions
are (XTAB, YTAB), and whose first and second derivatives are YPTAB
and YPPTAB. 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
derivatives at those points.
Note that the user must provide both derivatives (they are not
optional). If you don't have one or more derivatives, then you
should use the IDL spline functions SPL_INIT/SPL_INTERP, or the
if the requested point is outside of the tabulated range, the
function is not extrapolated. Instead the value provided by the
MISSING keyword is returned for 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 first derivatives ( = dY/dX ). Not optional
YPPTAB - tabulated second derivatives ( = d(YPTAB)/dX ). Not optional.
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.
MISSING - a value to report for "missing" data. This function
does not perform extrapolation; any requested point
outside the range [MIN(XTAB),MAX(XTAB)] is considered
missing.
Default: 0

Example

;; Set up some fake data, a sinusoid
xtab = dindgen(101)/100d * 2d*!dpi ; 100 points from 0 -> 2*!dpi
ytab = sin(xtab) ;; values
yptab = cos(xtab) ;; 1st deriv
ypptab = -sin(xtab) ;; 2nd deriv
;; Interpolate to a finer grid
xint = dindgen(1001)/1000 * 2d*!dpi ;; 1000 points from 0->2*!dpi
quinterp, xtab, ytab, yptab, ypptab, xint, yint, ypint=ypint, yppint=yppint
;; 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, 08 Oct 2008

© 2020 Harris Geospatial Solutions, Inc. |  Legal