public class CsSmooth extends Spline
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).
breakPoint, coef, EPSILON_LARGE
Constructor and Description |
---|
CsSmooth(double[] xData,
double[] yData)
Constructs a smooth cubic spline from noisy data using
cross-validation to estimate the smoothing parameter.
|
CsSmooth(double[] xData,
double[] yData,
double[] weight)
Constructs a smooth cubic spline from noisy data using
cross-validation to estimate the smoothing parameter.
|
copyAndSortData, copyAndSortData, derivative, derivative, derivative, getBreakpoints, integral, value, value
public CsSmooth(double[] xData, double[] yData)
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.public CsSmooth(double[] xData, double[] yData, double[] weight)
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
relative weights. This array must have
the same length as xData.Copyright © 2020 Rogue Wave Software. All rights reserved.