Interpolation
InverseDistanceWeightedInterpolation
interpolate N-D scattered data using the inverse distance weighted interpolation method
Calling Sequence
Parameters
Description
Examples
Compatibility
InverseDistanceWeightedInterpolation(points,values)
InverseDistanceWeightedInterpolation(points,values,r)
f:=InverseDistanceWeightedInterpolation(...)
f(x1,...,xn)
f(M)
points
-
listlist, Array, Matrix, Vector, or list of m n-dimensional sample points where each inner list or row represents one point. For a Vector or plain list, n is 1.
values
list, Array, or Vector of sample values
r
(optional) the radius parameter; the default is infinity
x1,...,xn
evaluate f at (x1,...,xn)
M
a k x n Matrix of points at which to evaluate f
The InverseDistaneWeightedInterpolation command creates a function f⁡x1,...,xn=value which can then be evaluated at arbitrary points in Rn.
This interpolant is defined at the point x as the weighted average of the values valuesi, where each value is weighted by the inverse of the distance between pointsi and x, and only points at distance at most r of x are used.
By default, r is infinity, so all sample points will be used to interpolate a query point.
If no points lie within distance r, the interpolated value will be Float⁡undefined.
For sufficiently large r, this interpolation method produces a C1 continuous interpolant.
This interpolation method does not introduce local minima or maxima which are not already present in the input data.
f can be evaluated at every point in Rn, but results for points far away from the sample points may not be meaningful.
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
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
Z≔0,0,0,0,1,0,0,0,0
f ≔ Interpolation:-InverseDistanceWeightedInterpolation⁡XY,Z,1.5
f≔Invⅇrsⅇ Dⅈstancⅇ Wⅇⅈghtⅇⅆ ⅈntⅇrpolatⅈon obȷⅇct wⅈth 9 samplⅇ poⅈntsRaⅆⅈus of ⅈnfluⅇncⅇ: 1.5
f can be polled at specific points.
f⁡0.5,0.5
0.250000000000000000
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.09139916994783180.5991095777352200.0335025560440729
Use plot3d to plot the interpolated surface.
plot3d⁡x,y→f⁡x,y,0..2,0..2,labels=x,y,z
The Interpolation[InverseDistanceWeightedInterpolation] command was introduced in Maple 2018.
For more information on Maple 2018 changes, see Updates in Maple 2018.
See Also
Download Help Document
What kind of issue would you like to report? (Optional)