Tension Splines
TSPACK: Tension Spline Package

TSPACK is a collection of MATLAB functions that comprise a curve fitting package based on exponential tension splines. A tension spline is a generalization of a cubic spline in which a nonnegative tension factor is associated with each interval. With zero tension the fitting function (or each component of a parametric curve) is a degree-3 polynomial on the interval, and as the tension factor increases, the function approaches the linear interpolant of its endpoint values. Tension may thus be used to avoid extraneous inflection points, and more generally to preserve shape properties, such as monotonicity and convexity, of a set of data points, and to do so without sacrificing smoothness as in the case of piecewise linear interpolation.

The package provides for both data fitting with functions, and curve design with parametric planar curves and space curves. The curves may or may not be constrained to pass through the data points (control points), and the functions may have one or two continuous derivatives. Tension factors may be user-selected or chosen automatically to satisfy either shape constraints or user-specified bounds.

Technical References
Tension spline paper
Code organization paper

TSPACKGUI: TSPACK Graphical User Interface

The graphical user interface allows an interactive user to create, modify, and display curves constructed by TSPACK. Control points can be inserted, moved, and deleted, derivatives can be altered by dragging arrow tips, and tension factors can be altered with a slider control. A user manual in the form of a help text file is included, but the program should be easily usable without reading that file.

System Requirements and Installation

The program requires MATLAB version 7 (R2006) or later. It is installed by simply copying the source code file and the help text file into a subdirectory that is included in the MATLAB search path.

Download source code and help text

Romanian translation courtesy of EWS Translate
Polish translation
Ukrainian translation by Science Team
Czech translation
Portugeseh translation
Hindi translation

Last updated: 07/08/2019