JMSLTM Numerical Library 4.0

com.imsl.math
Class CsSmoothC2

java.lang.Object
  extended bycom.imsl.math.Spline
      extended bycom.imsl.math.CsSmoothC2
All Implemented Interfaces:
Cloneable, Serializable

public class CsSmoothC2
extends Spline

Extension of the Spline class used to construct a spline for noisy data points using an alternate method.

Class CsSmoothC2 is designed to produce a C^2 cubic spline approximation to a data set in which the function values are noisy. This spline is called a smoothing spline. It is a natural cubic spline with knots at all the data abscissas x, but it does not interpolate the data (x_i, f_i). The smoothing spline S_sigma is the unique C^2 function that minimizes

intlimits_a^b {s''_sigma  left( x 
  right)^2 dx}

subject to the constraint

sumlimits_{i=0}^{n-1} {left| {s_sigma 
 left( {x_i } right) - f_i } right|} ^2  le sigma

.

Recommended values for sigma depend on the weights, w. If an estimate for the standard deviation of the error in the y-values is availiable, then w_i should be set to this value and the smoothing parameter should be choosen in the confidence interval corresponding to the left side of the above inequality. That is,

n-sqrt{2n} le sigma le n+sqrt{2n}

CsSmoothC2 is based on an algorithm of Reinsch (1967). This algorithm is also discussed in de Boor (1978, pages 235-243).

See Also:
Example, Serialized Form

Field Summary
 
Fields inherited from class com.imsl.math.Spline
breakPoint, coef, EPSILON_LARGE
 
Constructor Summary
CsSmoothC2(double[] xData, double[] yData, double sigma)
          Constructs a smooth cubic spline from noisy data using an algorithm based on Reinsch (1967).
CsSmoothC2(double[] xData, double[] yData, double[] weight, double sigma)
          Constructs a smooth cubic spline from noisy data using an algorithm based on Reinsch (1967) with weights supplied by the user.
 
Methods inherited from class com.imsl.math.Spline
copyAndSortData, copyAndSortData, derivative, derivative, derivative, getBreakpoints, integral, value, value
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CsSmoothC2

public CsSmoothC2(double[] xData,
                  double[] yData,
                  double sigma)
Constructs a smooth cubic spline from noisy data using an algorithm based on Reinsch (1967). All of the points have equal weights.

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. The arrays xData and yData must have the same length.
sigma - A double value specifying the smoothing parameter. Sigma must not be negative.

CsSmoothC2

public CsSmoothC2(double[] xData,
                  double[] yData,
                  double[] weight,
                  double sigma)
Constructs a smooth cubic spline from noisy data using an algorithm based on Reinsch (1967) with weights supplied by the user.

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. The arrays xData and yData must have the same length.
weight - A double array containing the weights. The arrays xData and weight must have the same length.
sigma - A double value specifying the smoothing parameter. Sigma must not be negative.

JMSLTM Numerical Library 4.0

Copyright 1970-2006 Visual Numerics, Inc.
Built June 1 2006.