Computes a two-dimensional, tensor-product spline approximant using least squares.

Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll) Version: 6.5.0.0

Syntax

C#
[SerializableAttribute]
public class Spline2DLeastSquares : Spline2D
Visual Basic (Declaration)
<SerializableAttribute> _
Public Class Spline2DLeastSquares _
	Inherits Spline2D
Visual C++
[SerializableAttribute]
public ref class Spline2DLeastSquares : public Spline2D

Remarks

The Spline2DLeastSquares class computes a tensor-product spline least-squares approximation to weighted tensor-product data. The input consists of data vectors to specify the tensor-product grid for the data, two vectors with the weights, the values of the surface on the grid, and the specification for the tensor-product spline. The grid is specified by the two vectors x = xData and y = yData of length
n = xData.Length and m = yData.Length, respectively. A two-dimensional array f = fData contains the data values which are to be fit. The two vectors w_x = xWeights and w_y = yWeights contain the weights for the weighted least-squares problem. The information for the approximating tensor-product spline can be provided using the SetXOrder, SetYOrder, SetXKnots and SetYKnots methods. This information is contained in k_x = xOrder, t_x = xKnots, and N = xSplineSpaceDim for the spline in the first variable, and in k_y = yOrder, t_y = yKnots and M = ySplineSpaceDim for the spline in the second variable. This class computes coefficients for the tensor-product spline by solving the normal equations in tensor-product form as discussed in de Boor (1978, Chapter 17). The interested reader might also want to study the paper by Grosse (1980).

As the computation proceeds, we obtain coefficients c minimizing

\sum\limits_{i = 0}^{n - 1} {\sum\limits_{j = 0}^{m - 1} {w_x \left( i \right)w_y \left( j \right)} \left[ {\sum\limits_{k = 0}^{N - 1} {\sum\limits_{l = 0}^{M - 1} {c_{kl} } B_{kl} \left( {x_i ,y_i } \right) - f_{ij} } } \right]} ^2
where the function B_{kl} is the tensor-product of two B-splines of order k_x and k_y. Specifically, we have
B_{kl} \left( {x,y} \right) = B_{k,k_x ,t_x } \left( x \right)B_{l,k_y ,t_y } \left( y \right)
The spline
\sum\limits_{k = 0}^{N - 1} {\sum\limits_{l = 0}^{M - 1} {c_{kl} } } B_{kl}
and its partial derivatives can be evaluated using the Value method.

Inheritance Hierarchy

System..::.Object
Imsl.Math..::.Spline2D
Imsl.Math..::.Spline2DLeastSquares

See Also