PDF version (NAG web site
, 64-bit version, 64-bit version)
NAG Toolbox: nag_interp_5d_scat_shep_eval (e01tn)
Purpose
nag_interp_5d_scat_shep_eval (e01tn) evaluates the five-dimensional interpolating function generated by
nag_interp_5d_scat_shep (e01tm) and its first partial derivatives.
Syntax
[
q,
qx,
ifail] = e01tn(
x,
f,
iq,
rq,
xe, 'm',
m, 'n',
n)
[
q,
qx,
ifail] = nag_interp_5d_scat_shep_eval(
x,
f,
iq,
rq,
xe, 'm',
m, 'n',
n)
Description
nag_interp_5d_scat_shep_eval (e01tn) takes as input the interpolant
,
of a set of scattered data points
, for
, as computed by
nag_interp_5d_scat_shep (e01tm), and evaluates the interpolant and its first partial derivatives at the set of points
, for
.
nag_interp_5d_scat_shep_eval (e01tn) must only be called after a call to
nag_interp_5d_scat_shep (e01tm).
nag_interp_5d_scat_shep_eval (e01tn) is derived from the new implementation of QS3GRD described by
Renka (1988). It uses the modification for five-dimensional interpolation described by
Berry and Minser (1999).
References
Berry M W, Minser K S (1999) Algorithm 798: high-dimensional interpolation using the modified Shepard method ACM Trans. Math. Software 25 353–366
Renka R J (1988) Algorithm 661: QSHEP3D: Quadratic Shepard method for trivariate interpolation of scattered data ACM Trans. Math. Software 14 151–152
Parameters
Compulsory Input Parameters
- 1:
– double array
-
must be the same array supplied as argument
x in the preceding call to
nag_interp_5d_scat_shep (e01tm). It
must remain unchanged between calls.
- 2:
– double array
-
must be the same array supplied as argument
f in the preceding call to
nag_interp_5d_scat_shep (e01tm). It
must remain unchanged between calls.
- 3:
– int64int32nag_int array
-
must be the same array returned as argument
iq in the preceding call to
nag_interp_5d_scat_shep (e01tm). It
must remain unchanged between calls.
- 4:
– double array
-
must be the same array returned as argument
rq in the preceding call to
nag_interp_5d_scat_shep (e01tm). It
must remain unchanged between calls.
- 5:
– double array
-
must be set to the evaluation point , for .
Optional Input Parameters
- 1:
– int64int32nag_int scalar
-
Default:
the dimension of the array
f and the second dimension of the array
x. (An error is raised if these dimensions are not equal.)
must be the same value supplied for argument
m in the preceding call to
nag_interp_5d_scat_shep (e01tm).
Constraint:
.
- 2:
– int64int32nag_int scalar
-
Default:
the second dimension of the array
xe.
, the number of evaluation points.
Constraint:
.
Output Parameters
- 1:
– double array
-
contains the value of the interpolant, at
, for
. If any of these evaluation points lie outside the region of definition of the interpolant the corresponding entries in
q are set to the largest machine representable number (see
nag_machine_real_largest (x02al)), and
nag_interp_5d_scat_shep_eval (e01tn) returns with
.
- 2:
– double array
-
contains the value of the partial derivatives with respect to
of the interpolant
at
, for
, and for each of the five partial derivatives
. If any of these evaluation points lie outside the region of definition of the interpolant, the corresponding entries in
qx are set to the largest machine representable number (see
nag_machine_real_largest (x02al)), and
nag_interp_5d_scat_shep_eval (e01tn) returns with
.
- 3:
– int64int32nag_int scalar
unless the function detects an error (see
Error Indicators and Warnings).
Error Indicators and Warnings
Errors or warnings detected by the function:
-
-
Constraint: .
Constraint: .
-
-
On entry, values in
iq appear to be invalid. Check that
iq has not been corrupted between calls to
nag_interp_5d_scat_shep (e01tm) and
nag_interp_5d_scat_shep_eval (e01tn).
On entry, values in
rq appear to be invalid. Check that
rq has not been corrupted between calls to
nag_interp_5d_scat_shep (e01tm) and
nag_interp_5d_scat_shep_eval (e01tn).
-
-
On entry, at least one evaluation point lies outside the region of
definition of the interpolant.
-
An unexpected error has been triggered by this routine. Please
contact
NAG.
-
Your licence key may have expired or may not have been installed correctly.
-
Dynamic memory allocation failed.
Accuracy
Computational errors should be negligible in most practical situations.
Further Comments
The time taken for a call to nag_interp_5d_scat_shep_eval (e01tn) will depend in general on the distribution of the data points. If the data points are approximately uniformly distributed, then the time taken should be only . At worst time will be required.
Example
This program evaluates the function
at a set of
randomly generated data points and calls
nag_interp_5d_scat_shep (e01tm) to construct an interpolating function
. It then calls
nag_interp_5d_scat_shep_eval (e01tn) to evaluate the interpolant at a set of random points.
To reduce the time taken by this example, the number of data points is limited to . Increasing this value to the suggested minimum of improves the interpolation accuracy at the expense of more time.
See also
Example in
nag_interp_5d_scat_shep (e01tm).
Open in the MATLAB editor:
e01tn_example
function e01tn_example
fprintf('e01tn example results\n\n');
genid = int64(1);
subid = int64(1);
seed = [int64(1762543)];
seed2 = [int64(43331)];
[state, ifail] = g05kf(genid, subid, seed);
[state, x, ifail] = g05sa(int64(5*30), state);
x = reshape(x, 5, 30);
f = ((1.25+cos(5.4*x(5,:))).*cos(6*x(1,:)).*cos(6*x(2,:)).*cos(6*x(3,:)))./...
(6+6*(3*x(4,:)-1).^2);
nq = int64(0);
nw = int64(0);
[iq, rq, ifail] = e01tm(x, f, nw, nq);
[state, ifail] = g05kf(genid, subid, seed2);
[state, xe, ifail] = g05sa(int64(5*8), state);
xe = reshape(xe, 5, 8);
fun = ((1.25+cos(5.4*xe(5,:))).*cos(6*xe(1,:)).*cos(6*xe(2,:)).*...
cos(6*xe(3,:)))./(6+6*(3*xe(4,:)-1).^2);
[q, qx, ifail] = e01tn(x, f, iq, rq, xe);
fprintf('\n i | f(i) q(i) |f(i)-q(i)|\n');
fprintf('---|--------------------+---------+\n');
for i=1:8
fprintf(' %d |%8.4f %8.4f %8.4f \n', i, fun(i), q(i), abs(fun(i)-q(i)));
end
e01tn example results
i | f(i) q(i) |f(i)-q(i)|
---|--------------------+---------+
1 | 0.0058 0.0464 0.0407
2 | 0.0034 0.4855 0.4821
3 | -0.1096 0.0724 0.1820
4 | 0.0875 0.0320 0.0555
5 | 0.0015 0.0373 0.0358
6 | -0.0158 -0.1170 0.1012
7 | 0.0046 -0.0484 0.0530
8 | -0.0090 -0.0134 0.0043
PDF version (NAG web site
, 64-bit version, 64-bit version)
© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015