#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 . Must satisfy nind AMA_MXNIND. |
n | [in] The number of data points . Must satisfy n . |
x | [in] Array of size nind containing arrays of size n where x[k] contains the independent variable data , for . |
z | [in] Array of size n containing the dependent variable data , for . |
epsilon | [in] Array of size n containing the approximation tolerances , for . Must satisfy for all . If epsilon = NULL, then this function uses for all . |
degree | [in] Array of size nind containing the degree where degree[k] . Must satisfy degree[k] . |
spline | [out] Pointer to AMA_SPLINE pointer containing the spline approximation. Must satisfy spline NULL. |
User Callable Function - Documented 022416