CurveFitting
Spline
compute a spline with specified end conditions
Calling Sequence
Parameters
Description
Examples
Spline(xydata, v, dgr, endpts)
Spline(xdata, ydata, v, dgr, endpts)
xydata
-
list, Array, DataFrame, or Matrix of the form [[x0,y0], [x1,y1], ..., [xn,yn]]; data points
xdata
list, Array, DataSeries, or Vector of the form [x0, x1, ..., xn]; independent values
ydata
list, Array, DataSeries, or Vector or the form [y0, y1, ..., yn]; dependent values
v
name or numeric value
dgr
(optional) equation of the form degree=d where d is a positive integer
endpts
(optional) equation of the form endpoints=e where e is one of 'natural', 'notaknot', or 'periodic' or is a list, Array, Matrix, or Vector
The Spline routine computes a degree d piecewise polynomial in variable v that approximates the points {x0,y0,x1,y1,...,xn,yn}.
If v is a numerical value, the value of the polynomial at this point returns. The default value of d is 3; this can be changed by using the degree=d option.
The intended purpose of the Spline function is to compute and return the piecewise formula of a spline interpolant. To perform fast spline interpolation on numeric data, the CurveFitting[ArrayInterpolation] command should be used instead.
By default, natural end conditions are used. This can be changed by using the endpoints=e option. For more details on the other types of end conditions available, see Spline Continuity and End Conditions.
You can call the Spline routine in two ways.
The first, Spline(xydata, v, dgr, endpts), accepts a list, Array, or Matrix, [[x0,y0],[x1,y1],...,[xn,yn]], of data points.
The second, Spline(xdata, ydata, v, dgr, endpts), accepts two lists, two Arrays, or two Vectors. In this form, the first set of data contains the independent values, [x0,x1,...,xn], and the second set contains the dependent values, [y0,y1,...,yn]. Each element must be of type algebraic. All the independent values must be distinct.
The result returned by the Spline routine is determined by the degree d.
If d is odd, the Spline routine returns a result in the form piecewise⁡v<x1,p1,...,pn, where the n spline sections {p1,p2,...,pn} are polynomials of degree at most d.
If d is even, the routine defines the spline knots at the midpoints of the nodes, unless the knots=data option is specified. In the default case, the Spline routine returns a result in the form piecewise⁡v<z1,p1,...,v<zn,pn,pn+1, where zi=xi−12+xi2, for i=1,2,...,n, and the n+1 spline sections {p1,p2,...,pn+1} are polynomials of degree at most d. In the knots=data case, the result will have n spline sections and be of the form piecewise⁡v<x1,p1,...,pn.
For more details on the formation of the piecewise polynomials and additional examples involving different end conditions, see the Spline Continuity and End Conditions help page.
If a unique solution cannot be determined from the input data, a parametrized solution that uses parameters of the form a[i, j], where a is an automatically generated name, and i and j are integers, is returned.
For greater efficiency in large problems, it is recommended that xdata and ydata be stored as Vectors using a float datatype. For the degree 2 and degree 3 cases involving floating-point data only, the Spline command uses a more efficient algorithm that takes advantage of the external Numerical Algorithms Group (NAG) library for solving the resulting matrix equations.
with⁡CurveFitting:
Spline⁡0,0,1,1,2,4,3,3,v
45⁢v3+15⁢vv<1−2⁢v3+425⁢v2−415⁢v+145v<265⁢v3−545⁢v2+1515⁢v−1145otherwise
Spline⁡0,0,1,5,2,−1,3,0,v,degree=2,endpoints=periodic
165⁢v2+245⁢vv<12−445⁢v2+845⁢v−3v<32285⁢v2−1325⁢v+1475v<52165⁢v2−725⁢v+725otherwise
Spline⁡0,1,2,3,0,1,4,3,v,degree=1
vv<1−2+3⁢vv<26−votherwise
See Also
CurveFitting[ArrayInterpolation]
diff
piecewise
Spline Continuity and End Conditions
type/algebraic
Download Help Document