Interpolation
NaturalNeighborInterpolation
interpolate 2-D scattered data using the natural neighbor interpolation method
Calling Sequence
Parameters
Description
Examples
Compatibility
NaturalNeighborInterpolation(xy,z)
f:=NaturalNeighborInterpolation(xy,z)
f(x,y)
f(M)
xy
-
listlist, Array, or Matrix of the form x1,y1,x2,y2,…,xn,yn; the (x,y) coordinates of the sample points
z
list, Array, or Vector of sample values corresponding to the (x,y) points
x,y
evaluate f at (x,y)
M
a k x 2 Matrix of points at which to evaluate f
The NaturalNeighborInterpolation command creates a function f⁡x,y=z which can then be evaluated at arbitrary points within the convex hull of the sample points.
The natural neighbor triangular interpolant is defined as follows. First, the Voronoi diagram on the given input points xy is determined. Now, to find f⁡x,y, find what would change if the point x,y would be added to the Voronoi diagram: some of the polygons would shrink to make space for a polygon around x,y. If the polygon around point xi,yi would shrink by area wi, then the value of the interpolant f⁡x,y is defined as the weighted average of the values zi, weighted by weights wi.
A natural neighbor interpolant is C1 continuous except at the sample points.
This interpolation method does not introduce local minima or maxima or infer trends which are not already present in the input data.
Results may be poor when interpolating near the convex hull of the sample points.
Evaluating f at points outside of the convex hull produces Float⁡undefined.
As with all interpolation methods, the interpolant f always passes through all of the sample values.
Input sample points must not contain duplicates. The presence of duplicate points can lead to unexpected results.
In order to evaluate f at k points, you can put each point in a row of a Matrix M and call f(M) to obtain the k values of f in a k-element Vector. This will be most efficient if M's options are such that its datatype is float[8], its order is C_order, and its storage is rectangular.
XY≔0,0,1,0,2,0,0,1,1,1,2,1,0,2,1,2,2,2
Z≔0,0,0,0,1,0,0,0,0
f≔Interpolation:-NaturalNeighborInterpolation⁡XY,Z
f≔Natural Neighbor interpolation object with 9 sample points
f can be polled at specific points.
f⁡0.5,0.5
0.250000000000000
M≔Matrix⁡1.5,0.3,0.7,1.4,1.2,1.8,datatype=float8,order=C_order
M≔1.500000000000000.3000000000000000.7000000000000001.400000000000001.200000000000001.80000000000000
f⁡M
0.1500000000000000.4200000000000000.160000000000000
Use plot3d to plot the interpolated surface.
plot3d⁡x,y↦f⁡x,y,0..2,0..2,labels=x,y,z
The Interpolation[NaturalNeighborInterpolation] command was introduced in Maple 2018.
For more information on Maple 2018 changes, see Updates in Maple 2018.
See Also
Download Help Document