spline(3blt) - phpMan

Command: man perldoc info search(apropos)  


spline(n)                             BLT Built-In Commands                             spline(n)



_________________________________________________________________________________________________

NAME
       spline -  Fit curves with spline interpolation

SYNOPSIS
       spline natural x y sx sy

       spline quadratic x y sx sy
_________________________________________________________________

DESCRIPTION
       The  spline  command  computes a spline fitting a set of data points (x and y vectors) and
       produces a vector of the interpolated images (y-coordinates) at a given set  of  x-coordi-
       nates.

INTRODUCTION
       Curve  fitting has many applications.  In graphs, curve fitting can be useful for display-
       ing curves which are aesthetically pleasing to the eye.  Another advantage is that you can
       quickly generate arbitrary points on the curve from a small set of data points.

       A  spline  is  a  device  used  in drafting to produce smoothed curves.  The points of the
       curve, known as knots, are fixed and the spline, typically a thin strip of wood or  metal,
       is bent around the knots to create the smoothed curve.  Spline interpolation is the mathe-
       matical equivalent.  The curves between adjacent knots are piecewise functions  such  that
       the  resulting  spline  runs exactly through all the knots.  The order and coefficients of
       the polynomial determine the "looseness" or "tightness" of the curve  fit  from  the  line
       segments formed by the knots.

       The  spline  command  performs  spline  interpolation using cubic ("natural") or quadratic
       polynomial functions.  It computes the spline based upon the knots, which are given  as  x
       and  y vectors.  The interpolated new points are determined by another vector which repre-
       sents the abscissas (x-coordinates) or the new points.  The ordinates (y-coordinates)  are
       interpolated using the spline and written to another vector.

EXAMPLE
       Before  we can use the spline command, we need to create two BLT vectors which will repre-
       sent the knots (x and y coordinates) of the data that we're going to fit.  Obviously, both
       vectors must be the same length.

              # Create sample data of ten points.
              vector x(10) y(10)

              for {set i 10} {$i > 0} {incr i -1} {
                  set x($i-1) [expr $i*$i]
                  set y($i-1) [expr sin($i*$i*$i)]
              }

       We now have two vectors x and y representing the ten data points we're trying to fit.  The
       order of the values of x must be monotonically increasing.  We can use the  vector's  sort
       operation to sort the vectors.

              x sort y

       The components of x are sorted in increasing order.  The components of y are rearranged so
       that the original x,y coordinate pairings are retained.

       A third vector is needed to indicate the abscissas (x-coordinates) of the new points to be
       interpolated  by the spline.  Like the x vector, the vector of abscissas must be monotoni-
       cally increasing.  All the abscissas must lie between the first and last knots (x  vector)
       forming the spline.

       How  the  abscissas  are  picked is arbitrary.  But if we are going to plot the spline, we
       will want to include the knots too.  Since both the quadratic and natural splines preserve
       the  knots  (an  abscissa from the x vector will always produce the corresponding ordinate
       from the y vector), we can simply make the new vector a superset of x.   It  will  contain
       the  same coordinates as x, but also the abscissas of the new points we want interpolated.
       A simple way is to use the vector's populate operation.

              x populate sx 10

       This creates a new vector sx.  It contains the abscissas of x, but  in  addition  sx  will
       have  ten evenly distributed values between each abscissa.  You can interpolate any points
       you wish, simply by setting the vector values.

       Finally, we generate the ordinates (the images of the spline) using  the  spline  command.
       The ordinates are stored in a fourth vector.

              spline natural x y sx sy

       This  creates a new vector sy.  It will have the same length as sx.  The vectors sx and sy
       represent the smoothed curve which we can now plot.

              graph .graph
              .graph element create original -x x -y x -color blue
              .graph element create spline -x sx -y sy -color red
              table . .graph

       The natural operation employs a cubic interpolant when forming the spline.   In  terms  of
       the  draftsmen's  spline, a natural spline requires the least amount of energy to bend the
       spline (strip of wood), while still passing through each knot.  In mathematical terms, the
       second derivatives of the first and last points are zero.

       Alternatively,  you can generate a spline using the quadratic operation.  Quadratic inter-
       polation produces a spline which follows the line segments of the data  points  much  more
       closely.

              spline quadratic x y sx sy


OPERATIONS
       spline natural x y sx sy
              Computes a cubic spline from the data points represented by the vectors x and y and
              interpolates new points using vector sx as the  x-coordinates.   The  resulting  y-
              coordinates  are  written  to a new vector sy. The vectors x and y must be the same
              length and contain at least three components.  The order of  the  components  of  x
              must be monotonically increasing.  Sx is the vector containing the x-coordinates of
              the points to be interpolated.  No component of sx can be less than first component
              of x or greater than the last component.  The order of the components of sx must be
              monotonically increasing.  Sy is the name of the vector  where  the  calculated  y-
              coordinates  will  be  stored.   If sy does not already exist, a new vector will be
              created.

       spline quadratic x y sx sy
              Computes a quadratic spline from the data points represented by the vectors x and y
              and interpolates new points using vector sx as the x-coordinates.  The resulting y-
              coordinates are written to a new vector sy.  The vectors x and y must be  the  same
              length  and  contain  at  least three components.  The order of the components of x
              must be monotonically increasing.  Sx is the vector containing the x-coordinates of
              the  points to be interpolated. No component of sx can be less than first component
              of x or greater than the last component.  The order of the components of sx must be
              monotonically  increasing.   Sy  is  the name of the vector where the calculated y-
              coordinates are stored.  If sy does not already exist, a new vector  will  be  cre-
              ated.

REFERENCES
       Numerical Analysis
       by R. Burden, J. Faires and A. Reynolds.
       Prindle, Weber & Schmidt, 1981, pp. 112

       Shape Preserving Quadratic Splines
       by D.F.Mcallister & J.A.Roulier
       Coded by S.L.Dodd & M.Roulier N.C.State University.

       The original code for the quadratic spline can be found in TOMS #574.

KEYWORDS
       spline, vector, graph




BLT                                            2.4                                      spline(n)

Generated by $Id: phpMan.php,v 4.49 2006/02/26 13:18:18 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2012-05-26 06:50 @38.107.179.238 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!