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
Constructor | Description |
Full Usage:
PolyharmonicSpline()
|
Initializes the spline with a regularization parameter of zero and an derivative order of 2. |
Instance member | Description |
Full Usage:
this.Construct
Parameters:
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.
|
Full Usage:
this.Construct
Parameters:
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.
|
Constructs the interpolation (2 dimensional). The values and the corresponding coordinates of the values are given in separate vectors.
|
Full Usage:
this.Construct
Parameters:
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.
|
Constructs the interpolation (3 dimensional). The values and the corresponding coordinates of the values are given in separate vectors.
|
Full Usage:
this.Construct
Parameters:
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.
|
Full Usage:
this.DerivativeOrder
|
Derivative order of the spline. Effectively, the L2-norm of this derivative is minimized. |
Full Usage:
this.GetBendingEnergy
Returns: float
|
Gets the bending energy of the interpolation.
|
Full Usage:
this.GetInterpolatedValue
Parameters:
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.
|
Full Usage:
this.NumberOfControlPoints
Returns: int
|
Number of control points.
|
Full Usage:
this.NumberOfDimensions
Returns: int
|
Number of dimensions of the control points.
|
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). |