Class ThinPlateRadialBasis

java.lang.Object
smile.math.rbf.ThinPlateRadialBasis
All Implemented Interfaces:
Serializable, Function, RadialBasisFunction

public class ThinPlateRadialBasis extends Object implements RadialBasisFunction
Thin plate RBF. φ(r) = r2 log(r / r0) with the limiting value φ(0)=0 assumed, where r0 is a scale factor. This function has some physical justification in the energy minimization problem associated with warping a thin elastic plate. However, there is no indication that it is generally better than multiquadric or inverse multiquadric function.

In general, r0 should be larger than the typical separation of points but smaller than the "outer scale" or feature size of the function to interplate. There can be several orders of magnitude difference between the interpolation accuracy with a good choice for r0, versus a poor choice, so it is definitely worth some experimentation. One way to experiment is to construct an RBF interpolator omitting one data point at a time and measuring the interpolation error at the omitted point.

See Also:
  • Constructor Details

    • ThinPlateRadialBasis

      public ThinPlateRadialBasis()
      Constructor. The default scale is 1.0.
    • ThinPlateRadialBasis

      public ThinPlateRadialBasis(double scale)
      Constructor.
      Parameters:
      scale - the scale parameter.
  • Method Details

    • f

      public double f(double r)
      Description copied from interface: Function
      Computes the value of the function at x.
      Specified by:
      f in interface Function
      Parameters:
      r - a real number.
      Returns:
      the function value.
    • toString

      public String toString()
      Overrides:
      toString in class Object