Polynoms.Spline1D Method

Overload List

#SignatureDescription
1void Spline1D(TVec Y, TPiecePoly PiecePoly, Boolean Knots)Interpolates cubic splines between consecutive Y points.
2void Spline1D(TVec X, TVec Y, TPiecePoly PiecePoly)Cubic spline interpolation.

Overload 1: void Spline1D(TVec Y, TPiecePoly PiecePoly, Boolean Knots)

Interpolates cubic splines between consecutive Y points.

#NameTypeDescription
1YTVecsource TVec
2PiecePolyTPiecePoly
3KnotsBoolean

Result: stored in self (calling object)

Remarks:

Interpolates cubic splines between consecutive Y points. The assumption is that Y is evaluated at [0,1,2,...] -> X values are [0,1,2,...]. If the Knot parameter is true then the first and the last Y value will be used for the end conditions. In this case Y.Length = X.Length + 2.

Examples
using Dew.Math;
using Dew.Math.Units;
using Dew.Math.Tee;

namespace Dew.Examples
{
    private void Example()
    {
        Vector X = new Vector(0);
        Vector Y = new Vector(0);
        Vector Y2 = new Vector(0);
        TPiecePoly PP = new TPiecePoly();
        int i;
        double YVal;

        // generate function - note that X values are monotonical
        X.Size(100);
        Y.Size(100);
        Y2.Size(100);
        X.Ramp(0,1);
        Y.RandUniform(0,50);
        Y2.Ramp(100,0.25);
        Y += Y2;

        //   construct cubic splines, but do not evaluate them
        Polynoms.Spline1D(X,Y,PP);
        X.Size(800);
        X.Ramp(0,0.125); //get interpolation points
        PP.Evaluate(X,Y2); // evaluate

        MtxVecTee.DrawIt(Y,"Original",false);
        MtxVecTee.DrawIt(Y2,"Interpolated",false);
    }
}
See Also: Polynoms.Interpolate, Polynoms.Linear1D, Polynoms.PolyFit, TPiecePoly

Overload 2: void Spline1D(TVec X, TVec Y, TPiecePoly PiecePoly)

Cubic spline interpolation.

#NameTypeDescription
1XTVecsource TVec
2YTVecsource TVec
3PiecePolyTPiecePoly

Result: stored in self (calling object)

Remarks:

The procedure interpolates cubic splines between consequtive (X,Y) pairs. The rotine does not return interpolated points. It constructs piece-wise polynomial, which in term can be used for evaluating (by using the TPiecePoly.Evaluate method) cubic splines. To directly obtain interpolated values, use the Dew.Math.Units.Polynoms.Interpolate routine.

Note
If X.Length=Y.Length, then the "not-a-knot" end conditions are used. If Y.Length = X.Length +2 then the "knot" end conditions are used. X values must be monotonic or the result will not be valid.