IMSL C# Numerical Library

CsSmooth Class

Extension of the Spline class to construct a smooth cubic spline from noisy data points.

For a list of all members of this type, see CsSmooth Members.

System.Object
   Imsl.Math.Spline
      Imsl.Math.CsSmooth

public class CsSmooth : Spline

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

Class CsSmooth 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 = xData, but it does not interpolate the data (x_i, f_i). The smoothing spline S is the unique C^2 function that minimizes

\int\limits_a^b {S''\left( x \right)^2 dx}

subject to the constraint

\sum\limits_{i = 0}^{n-1} {\left| {{{(S\left( 
            {x_i } \right) - f_i }) {w_i }}} \right|} ^2  \le \sigma

where \sigma is the smoothing parameter. The reader should consult Reinsch (1967) for more information concerning smoothing splines. CsSmooth solves the above problem when the user provides the smoothing parameter \sigma. CsSmoothC2 attempts to find the "optimal" smoothing parameter using the statistical technique known as cross-validation. This means that (in a very rough sense) one chooses the value of \sigma so that the smoothing spline (S_\sigma) best approximates the value of the data at x_I, if it is computed using all the data except the i-th; this is true for all i = 0, \ldots, n-1. For more information on this topic, we refer the reader to Craven and Wahba (1979).

Requirements

Namespace: Imsl.Math

Assembly: ImslCS (in ImslCS.dll)

See Also

CsSmooth Members | Imsl.Math Namespace | Example