Package com.imsl.math

Class CsPeriodic

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

public class CsPeriodic extends Spline
Extension of the Spline class to interpolate data points with periodic boundary conditions.

Class CsPeriodic computes a \(C^2\) 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. The program enforces periodic endpoint conditions. This means that the spline s satisfies s(a) = s(b), \({\it{s'}}\left( {\it{a}} \right) = {\it{s'}}\left( {\it{b}} \right)\), and \(s''\left( a \right) = s''\left( b \right)\), where a is the leftmost abscissa and b is the rightmost abscissa. If the ordinate values corresponding to a and b are not equal, then a warning message is issued. The ordinate value at b is set equal to the ordinate value at a and the interpolant is computed.

If the data points arise from the values of a smooth (say \(C^4\)) periodic 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

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

where

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

For more details, see de Boor (1978, pages 320-322).

See Also:
  • Constructor Details

    • CsPeriodic

      public CsPeriodic(double[] xData, double[] yData)
      Constructs a cubic spline that interpolates the given data points with periodic boundary conditions.
      Parameters:
      xData - A double array containing the x-coordinates of the data. There must be at least 4 data points and values must be distinct.
      yData - A double array containing the y-coordinates of the data. The arrays xData and yData must have the same length.