PDF version (NAG web site
, 64-bit version, 64-bit version)
NAG Toolbox: nag_interp_4d_scat_shep_eval (e01tl)
Purpose
nag_interp_4d_scat_shep_eval (e01tl) evaluates the four-dimensional interpolating function generated by
nag_interp_4d_scat_shep (e01tk) and its first partial derivatives.
Syntax
[
q,
qx,
ifail] = e01tl(
x,
f,
iq,
rq,
xe, 'm',
m, 'n',
n)
[
q,
qx,
ifail] = nag_interp_4d_scat_shep_eval(
x,
f,
iq,
rq,
xe, 'm',
m, 'n',
n)
Description
nag_interp_4d_scat_shep_eval (e01tl) takes as input the interpolant
,
of a set of scattered data points
, for
, as computed by
nag_interp_4d_scat_shep (e01tk), and evaluates the interpolant and its first partial derivatives at the set of points
, for
.
nag_interp_4d_scat_shep_eval (e01tl) must only be called after a call to
nag_interp_4d_scat_shep (e01tk).
nag_interp_4d_scat_shep_eval (e01tl) is derived from the new implementation of QS3GRD described by
Renka (1988). It uses the modification for high-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
-
Note: the coordinates of are stored in .
must be the same array supplied as argument
x in the preceding call to
nag_interp_4d_scat_shep (e01tk). 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_4d_scat_shep (e01tk). 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_4d_scat_shep (e01tk). 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_4d_scat_shep (e01tk). 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 first 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_4d_scat_shep (e01tk).
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_4d_scat_shep_eval (e01tl) 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 four 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_4d_scat_shep_eval (e01tl) 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_4d_scat_shep (e01tk) and
nag_interp_4d_scat_shep_eval (e01tl).
On entry, values in
rq appear to be invalid. Check that
rq has not been corrupted between calls to
nag_interp_4d_scat_shep (e01tk) and
nag_interp_4d_scat_shep_eval (e01tl).
-
-
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_4d_scat_shep_eval (e01tl) 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_4d_scat_shep (e01tk) to construct an interpolating function
. It then calls
nag_interp_4d_scat_shep_eval (e01tl) 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 improves the interpolation accuracy at the expense of more time.
See also
Example in
nag_interp_4d_scat_shep (e01tk).
Open in the MATLAB editor:
e01tl_example
function e01tl_example
fprintf('e01tl 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(120), state);
x = reshape(x, 4, 30);
c1 = cos(6*x(1,:));
c2 = cos(6*x(2,:));
c3 = 6 + 6*(3*x(3,:)-1).^2;
c4 = 1.25 + cos(5.4*x(4,:));
f = c4.*c1.*c2./c3;
nq = int64(0);
nw = int64(0);
[iq, rq, ifail] = e01tk(x, f, nw, nq);
[state, ifail] = g05kf(genid, subid, seed2);
[state, xe, ifail] = g05sa(int64(32), state);
xe = reshape(xe, 4, 8);
[q, qx, ifail] = e01tl(x, f, iq, rq, xe);
c1 = cos(6*xe(1,:));
c2 = cos(6*xe(2,:));
c3 = 6 + 6*(3*xe(3,:)-1).^2;
c4 = 1.25 + cos(5.4*xe(4,:));
fun = c4.*c1.*c2./c3;
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
e01tl example results
i | f(i) q(i) |f(i)-q(i)|
---|--------------------+---------+
1 | -0.0189 -0.0394 0.0205
2 | -0.0186 0.0967 0.1153
3 | 0.1147 0.0606 0.0541
4 | 0.0096 -0.1313 0.1409
5 | -0.1354 -0.1878 0.0524
6 | 0.0022 -0.1595 0.1617
7 | -0.0095 -0.1179 0.1084
8 | 0.0113 -0.3950 0.4063
PDF version (NAG web site
, 64-bit version, 64-bit version)
© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015