Class ShepardInterpolation

java.lang.Object
smile.interpolation.ShepardInterpolation

public class ShepardInterpolation extends Object
Shepard interpolation is a special case of normalized radial basis function interpolation if the function φ(r) goes to infinity as r → 0, and is finite for r > 0. In this case, the weights wi are just equal to the respective function values yi. So we need not solve linear equations and thus it works for very large N.

An example of such φ is φ(r) = r-p with (typically) 1 < p <= 3.

Shepard interpolation is rarely as accurate as the well-tuned application of other radial basis functions. However, it is simple, fast, and often just the thing for quick and dirty applications.

  • Constructor Details

    • ShepardInterpolation

      public ShepardInterpolation(double[][] x, double[] y)
      Constructor. By default p = 2.
      Parameters:
      x - the data points.
      y - the function values at x.
    • ShepardInterpolation

      public ShepardInterpolation(double[][] x, double[] y, double p)
      Constructor.
      Parameters:
      x - the data points.
      y - the function values at x.
      p - the parameter in the radial basis function φ(r) = r-p.
  • Method Details

    • interpolate

      public double interpolate(double... x)
      Interpolate the function at given point.
      Parameters:
      x - a point.
      Returns:
      the interpolated function value.
    • toString

      public String toString()
      Overrides:
      toString in class Object