PolyharmonicSpline Type

Interpolation method for scattered data in any dimension based on radial basis functions. In 2D this is the so called Thin Plate Spline, which is an interpolation method that finds a "minimally bended" smooth surface that passes through all given points. The polyharmonic spline has an arbitrary number of dimensions and arbitrary derivative order. Note: The allocation space requirement is in the order (N+3)*(N+3), where N is the number of control points. Thus it is not applicable for too many points.

Literature: http://en.wikipedia.org/wiki/Polyharmonic_spline Extension to any number of dimensions: TIM GUTZMER AND JENS MARKUS MELENK, MATHEMATICS OF COMPUTATION, Volume 70, Number 234, Pages 699{703, S 0025-5718(00)01299-0, Article electronically published on October 18, 2000

Constructors

Constructor Description

PolyharmonicSpline()

Full Usage: PolyharmonicSpline()

Initializes the spline with a regularization parameter of zero and an derivative order of 2.

Instance members

Instance member Description

this.Construct

Full Usage: this.Construct

Parameters:
    x : IReadOnlyList<float> - X coordinates of the points.
    h : IReadOnlyList<float> - Values of the points that should be interpolated.

Constructs the interpolation (1 dimensional). The values and the corresponding coordinates of the values are given in separate vectors.

x : IReadOnlyList<float>

X coordinates of the points.

h : IReadOnlyList<float>

Values of the points that should be interpolated.

this.Construct

Full Usage: this.Construct

Parameters:

Constructs the interpolation (2 dimensional). The values and the corresponding coordinates of the values are given in separate vectors.

x : IReadOnlyList<float>

X coordinates of the points.

y : IReadOnlyList<float>

Y coordinates of the points.

h : IReadOnlyList<float>

Values of the points that should be interpolated.

this.Construct

Full Usage: this.Construct

Parameters:

Constructs the interpolation (3 dimensional). The values and the corresponding coordinates of the values are given in separate vectors.

x : IReadOnlyList<float>

X coordinates of the points.

y : IReadOnlyList<float>

Y coordinates of the points.

z : IReadOnlyList<float>

Z coordinates of the points.

h : IReadOnlyList<float>

Values of the points that should be interpolated.

this.Construct

Full Usage: this.Construct

Parameters:
    x : IReadOnlyList<float>[] - X coordinates of the points.
    h : IReadOnlyList<float> - Values of the points that should be interpolated.

Constructs the interpolation (any dimension). The values and the corresponding coordinates of the values are given in separate vectors.

x : IReadOnlyList<float>[]

X coordinates of the points.

h : IReadOnlyList<float>

Values of the points that should be interpolated.

this.DerivativeOrder

Full Usage: this.DerivativeOrder

Derivative order of the spline. Effectively, the L2-norm of this derivative is minimized.

this.GetBendingEnergy

Full Usage: this.GetBendingEnergy

Returns: float

Gets the bending energy of the interpolation.

Returns: float

this.GetInterpolatedValue

Full Usage: this.GetInterpolatedValue

Parameters:
    x : float[] - The x coordinate of the point.

Returns: float The interpolated value at the point (x,y).

Gets the interpolation value of given coordinates x and y.

x : float[]

The x coordinate of the point.

Returns: float

The interpolated value at the point (x,y).

this.NumberOfControlPoints

Full Usage: this.NumberOfControlPoints

Returns: int

Number of control points.

Returns: int

this.NumberOfDimensions

Full Usage: this.NumberOfDimensions

Returns: int

Number of dimensions of the control points.

Returns: int

this.RegularizationParameter

Full Usage: this.RegularizationParameter

Regularization parameter (>=0). If the regularization parameter is zero, interpolation is exact. As it approaches infinity, the resulting spline is reduced to a least squares linear fit (in 2D this is a plane, the bending energy is 0).