IMSL C# Numerical Library

CsSmoothC2 Class

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

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

System.Object
   Imsl.Math.Spline
      Imsl.Math.CsSmoothC2

public class CsSmoothC2 : 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 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

\int\limits_a^b
            {s''_\sigma  \left( x \right)^2 dx}

subject to the constraint

\sum\limits_{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).

Requirements

Namespace: Imsl.Math

Assembly: ImslCS (in ImslCS.dll)

See Also

CsSmoothC2 Members | Imsl.Math Namespace | Example