Akima I¶
The Akima I algorithm is part of the Estimate Scattered Data option in the Non-Parametric menu. It is also offered in the Interpolate Uniform Grid option. Note that the Akima II procedure overcomes many of the limitations of this earlier algorithm.
Author
Hiroshi Akima
References
"A Method of Bivariate Interpolation and Smooth Surface Fitting for Irregularly Distributed Data Points", ACM Transactions on Mathematical Software, Vol. 4, 1978, p144-159, Also "Algorithm 526", p160-164.
Description
For the Akima I algorithm, the late Hiroshi Akima’s ACM 526 procedure is implemented. This algorithm is perhaps the best known of triangulation-based surface fitting algorithms and was one of the first to be placed in the public domain.The algorithm uses a Delaunay triangulation and local gradients computed using a number of neighboring points, which is locked at 5 in TableCurve 3D. The additional points used for the gradient estimation aid in preserving global shape properties. The interpolant for each triangle is a 21 coefficient C1 (once continuously differentiable) Hermite bivariate quintic polynomial. This algorithm also offers a very stable form of extrapolation.
Revisions to Algorithm
An improvement for the computation of the coefficients of the interpolant was implemented (Preusser, A., "Remark on Algorithm 526", ACM Transactions on Mathematical Software, Vol. 11, No. 2, p186-7, June 1985). The data are also intrinsically scaled to a unit square. Routines were also added which compute exact analytic partial derivatives. A suggestion by Albrecht Preusser has also been implemented which prevents the selection of close to collinear points for the partial derivative computations. This modification also manages most instances of collinearity of non-axially aligned neighbor points.
Interpolation
This algorithm is based upon quintic Hermite polynomials on triangles. There is one polynomial for each triangle, whose coefficients are determined by the partial derivatives at the nodes of the triangle mesh. Five partial derivatives are computed at each node within the convex hull boundary of the data. The interpolant consists of 21 coefficients for every triangle, 18 values at the nodes with 3 additional conditions that assure continuity of first partial derivatives across triangle edges. With 5 partial derivatives per node, 15 total partial derivatives are used per triangle. In the gradient computations, neighboring points are determined based on actual distances from the target point. Due to the revisions which implement unit normalization of the x and y scales and where neighbors are regarded as collinear within a 15 degree band between the point and nearest neighbor, the points used for the gradient computations will usually result in a stable interpolant, regardless of the x and y scaling and data density.
Extrapolation
The algorithm directly provides for extrapolation and maintains a C1 boundary at the transition to the extrapolation regions. The algorithm uses two different lower coefficient count extrapolants to produce stable extrapolations. For extrapolations, only the first two partial derivatives are used at the boundary nodes.
Estimated Partial Derivatives
Full analytic derivatives are available (once with respect to x, to y, twice with respect to x, to y, and with respect to both x and y). These are used for graphing the partial derivative surfaces and for partial derivatives computed in the Evaluation procedure. The first order partials will be continuous, but not smooth. The higher order partials will not be continuous.
Estimated Volumes
The method is to interpolate a uniform grid of 10,000 points and to evaluate the double integral using a bicubic B-spline integration procedure. The error reported in the Evaluation procedure will be the fractional difference with a similar 2,500 node integration. Because the Akima I algorithm is extremely inefficient with individual function evaluations, the alternative integration procedures available with the other algorithms are not offered here. Repeat evaluations with the same integration limits serve no purpose with the Akima I procedure.
Quick Evaluations
The Akima I procedure is exceedingly inefficient when individual evaluations must be made. As such, a considerable length of time will be required for the update of the quick evaluation feature if the surface minimum or maximum is being sought (a large number of individual interpolations may be needed in the two dimensional minimization).
Considerations
The local nature of the gradient computations is subject to undue influence from the distant nodes that occurs within thin triangles. Further, since a Delaunay triangulation is often not unique, an anomalous point can have a variable influence in the estimated surface depending on the order of the input data. A global gradient estimation procedure can somewhat alleviate this effect. An Akima-type quintic interpolant which uses such a procedure is available with the C1 form of the Preusser option. One advantage of the Akima approach for gradient estimations is that the effects of local features that genuinely belong in the data can be generally restricted to a minimal effect on adjacent regions of the surface. In general, the Akima I algorithm is likely to be the amongst the least accurate of the scattered data procedures. Accuracy tests confirmed the newer Akima II procedure to be considerably more accurate.
Algorithm Adjustments
Akima recommended a value of 3-5 (inclusive) additional points for this algorithm. The TableCurve 3D fixed value of 5 was empirically found to be an effective value for properly handling single node peaks and valleys.
IMSL Implementation
The IMSL version of this algorithm (SURF) is offered as a separate item in the Interpolate Uniform Grid option. It is included because of its general use as a means for creating a grid from scattered data, and since it uses a proprietary method for gradient computation. Unit square scaling is implemented. Since the IMSL version functions only as a gridding procedure, it is not included in the Estimate Scattered Data option.