Package com.imsl.math

Class CsAkima

java.lang.Object
com.imsl.math.Spline
com.imsl.math.CsAkima
All Implemented Interfaces:
Serializable, Cloneable

public class CsAkima extends Spline
Extension of the Spline class to handle the Akima cubic spline.

Class CsAkima computes a \(C^1\) cubic spline interpolant to a set of data points \((x_i, f_i)\) for \(i = 0, \ldots, n-1\). The breakpoints of the spline are the abscissas. Endpoint conditions are automatically determined by the program; see Akima (1970) or de Boor (1978).

If the data points arise from the values of a smooth, say \(C^4\), function f, i.e. \(f_i = f(x_i)\), then the error will behave in a predictable fashion. Let \(\xi\) be the breakpoint vector for the above spline interpolant. Then, the maximum absolute error satisfies

$$ \left\| {f - s} \right\|_{\left[ {\xi_0 ,\xi_{n-1} } \right]} \le C\left\| f^{(2)}\right\|_{[\xi_0,\xi_{n-1}} \left| \xi \right|^2 $$

where

$$|\xi| \;: = \max\limits_{i = 1,\ldots,n-1} |\xi_i -\xi_{i-1}|$$

CsAkima is based on a method by Akima (1970) to combat wiggles in the interpolant. The method is nonlinear; and although the interpolant is a piecewise cubic, cubic polynomials are not reproduced. (However, linear polynomials are reproduced.)

See Also:
  • Constructor Details

    • CsAkima

      public CsAkima(double[] xData, double[] yData)
      Constructs the Akima cubic spline interpolant to the given data points.
      Parameters:
      xData - a double array containing the x-coordinates of the data. Values must be distinct.
      yData - a double array containing the y-coordinates of the data.
      Throws:
      IllegalArgumentException - This exception is thrown if the arrays xData and yData do not have the same length.