Click or drag to resize

SmoothCubicSpline Class

Class SmoothCubicSpline calculates smoothing splines.
Inheritance Hierarchy
SystemObject
  CenterSpace.NMath.CoreOneVariableFunction
    CenterSpace.NMath.CoreTabulatedFunction
      CenterSpace.NMath.CoreSmoothCubicSpline

Namespace: CenterSpace.NMath.Core
Assembly: NMath (in NMath.dll) Version: 7.4
Syntax
[SerializableAttribute]
public class SmoothCubicSpline : TabulatedFunction

The SmoothCubicSpline type exposes the following members.

Constructors
 NameDescription
Protected methodSmoothCubicSpline Used for cloning.
Public methodSmoothCubicSpline(DoubleVector, DoubleVector, Double, DoubleVector) Constructs a smooth cubic spline object for interpolation within the given data points.
Top
Properties
 NameDescription
Public propertyDifferentiator Gets and sets the differentiation method object associated with this function.
(Inherited from OneVariableFunction)
Public propertyFunc Gets the function encapsulated by this object.
(Inherited from OneVariableFunction)
Public propertyIntegrator Gets and sets the integration method object associated with this function.
(Inherited from OneVariableFunction)
Public propertyNumberOfTabulatedValues Gets the number of tabulated values.
(Inherited from TabulatedFunction)
Public propertyP Gets and set the smoothing factor P. P determines how much weight is given to minimizing the sum square error balanced against minimizing the curvature. When p = 1 the result is a traditional cubic spline. When p = 0 the result is a straight line ( zero curvature ).
Top
Methods
 NameDescription
Public methodClone Creates a deep copy.
(Overrides OneVariableFunctionClone)
Public methodDerivative Returns the first derivative of this function.
(Inherited from OneVariableFunction)
Public methodDifferentiate Computes the numerical derivative of the current function at the given x-value.
(Inherited from OneVariableFunction)
Public methodEvaluate(Double) Evaluates the current function at the given x-value.
(Inherited from OneVariableFunction)
Public methodEvaluate(DoubleVector) Evaluates the current function at the given set of x-values.
(Inherited from OneVariableFunction)
Public methodEvaluate(OneVariableFunction) Creates a composite function.
(Inherited from OneVariableFunction)
Public methodGetX Returns the value of the tabulated independent values at the specified index.
(Inherited from TabulatedFunction)
Public methodGetXs Gets the x, or independent, values represented by this function.
(Inherited from TabulatedFunction)
Public methodGetXVector Gets the x, or independent, values represented by this function.
(Inherited from TabulatedFunction)
Public methodGetY Returns the value of the tabulated dependent values at the specified index.
(Inherited from TabulatedFunction)
Public methodGetYs Gets the y, or dependent, values represented by this function.
(Inherited from TabulatedFunction)
Public methodGetYVector Gets the y, or dependent, values represented by this function.
(Inherited from TabulatedFunction)
Public methodIntegrate Computes the integral of the current function over the specified interval.
(Inherited from OneVariableFunction)
Protected methodProcessTabulatedValues Computes the smooth cubic spline for this instance.
(Overrides TabulatedFunctionProcessTabulatedValues)
Public methodSetTabulatedValues(DoubleVector, DoubleVector) Changes the values of the tabulated function.
(Inherited from TabulatedFunction)
Public methodSetTabulatedValues(Int32, Double, Double) Set the values of the tabulated point at the specified index to the specified value.
(Inherited from TabulatedFunction)
Public methodSetTabulatedValues(Range, DoubleVector, DoubleVector) Sets the the tabulated point values in the specifed range to the specified values.
(Inherited from TabulatedFunction)
Public methodSetX(Int32, Double) Sets the value of the independent tabulated value at the specified index to the specified value.
(Inherited from TabulatedFunction)
Public methodSetX(Range, DoubleVector) Sets the the tabulated independent values in the specifed range to the specified values.
(Inherited from TabulatedFunction)
Public methodSetY(Int32, Double) Sets the value of the dependent tabulated value at the specified index to the specified value.
(Inherited from TabulatedFunction)
Public methodSetY(Range, DoubleVector) Sets the the tabulated dependent values in the specifed range to the specified values.
(Inherited from TabulatedFunction)
Top
Fields
 NameDescription
Protected fielddifferentiator_Differentiator
(Inherited from OneVariableFunction)
Protected fieldfunction_ Captured function
(Inherited from OneVariableFunction)
Protected fieldintegrator_Integrator
(Inherited from OneVariableFunction)
Protected fieldxi_ Tabulated independent function values.
(Inherited from TabulatedFunction)
Protected fieldyi_ Tabulated dependent function values.
(Inherited from TabulatedFunction)
Top
Remarks
Gives the approximate values y[i] = g(x[i]) + e(i) of a function g and error e, the smoothing spline tries to recover the function g by constructing a function f that minimizes the sum square error and curvature: p*sum(y[i] - f(x[i])^2/dy[i] + (1-p)*int[(f'')^2] where p is a smoothing factor between 1 and 0, dy[i] is the variance in each y[i] (defaults to 1 if not specified), and int stands for integration. The first term in the above expression is the sum squared error of the approximating function f, and the second term is its curvature. The smoothing factor, p, determines how much weight is given to minimizing the sum square error balanced against minimizing the curvature. When p = 1 only the sum square error is minimized and the result is a traditional cubic spline. When p = 0 only the curvature is minimized and the result is a straight line which has 0 curvature.
See Also