spline(n) | BLT Built-In Commands | spline(n) |
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 mathematical 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 polynominal 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 represents the abscissas (x-coordinates) or the new points. The ordinates (y-coordinates) are interpolated using the spline and written to another vector.
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)]
}
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 monotonically 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.
Finally, we generate the ordinates (the images of the spline) using the spline command. The ordinates are stored in a fourth vector.
Alternatively, you can generate a spline using the quadratic operation. Quadratic interpolation produces a spline which follows the line segments of the data points much more closely.
2.4 | BLT |