#include <AMA.h>
Functions | |
long int | AMA_MltvApprox (AMA_OPTIONS *options, long int nind, long int n, double **x, double *z, double *epsilon, long int *degree, AMA_SPLINE **spline) |
Approximation of Multivariate Data More... | |
long int AMA_MltvApprox | ( | AMA_OPTIONS * | options, |
long int | nind, | ||
long int | n, | ||
double ** | x, | ||
double * | z, | ||
double * | epsilon, | ||
long int * | degree, | ||
AMA_SPLINE ** | spline | ||
) |
Approximation of Multivariate Data
This function employs cnspla to compute a spline approximation of independent variable data and dependent variable data
. For a given set of independent variable data
, dependent variable data
and approximation tolerances
, for
, this function computes the spline
that minimizes
subject to the approximation constraints
for . The integration region
where
and
, for
.
In the above definition of the
, for
and
, are the coefficients of the tensor product B-splines
where are the
univariate B-splines of degree
defined by the knot vector
. The knot vectors
are
and they depend on the independent variable data and the degree . They are based on the rectilinear grid
upon which the independent variable data lies and they are defined by AMA_LamdaInterp(). That is, the knot vector
is defined by AMA_LamdaInterp() based on the points
.
Additionally, the spline is subject to the bounds
where ,
and
equals AMA_SplineInfbnd(). By default the spline is unbounded but finite bounds can be set with AMA_OptionsSetBounds(). If the bounds specified with AMA_OptionsSetBounds() can not be satisfied in conjunction with the aforementioned approximation constraints, then AMA_MltvApprox() imposes the bounds
where and
. The values of
and
are defined by minimizing
subject to the constraints
and the aforementioned approximation constraints. If either or
, then AMA_MltvApprox() reports AMA_WARNING_ERROR messages which specify the bounds
and
imposed on the spline. Additionally, it sets AMA_OPTIONS::lwrbnd
and AMA_OPTIONS::uprbnd
.
This function does the following:
Parameter Note: In the parameter definitions given below the limits on are
and k =
.
options | [in] Pointer to AMA_OPTIONS. Must be initialized with AMA_Options() prior to calling AMA_MltvApprox(). |
nind | [in] The number of independent variables ![]() ![]() ![]() |
n | [in] The number of data points ![]() ![]() |
x | [in] Array of size nind containing arrays of size n where x[k] contains the independent variable data ![]() ![]() |
z | [in] Array of size n containing the dependent variable data ![]() ![]() |
epsilon | [in] Array of size n containing the approximation tolerances ![]() ![]() ![]() ![]() ![]() ![]() |
degree | [in] Array of size nind containing the degree ![]() ![]() ![]() ![]() |
spline | [out] Pointer to AMA_SPLINE pointer containing the spline approximation. Must satisfy spline ![]() |
User Callable Function - Documented 022416