Message Boards Message Boards

0 Replies
0 Total Likes
View groups...
Share this post:

Interpolation on an unstructured grid

I frequently need to perform interpolations on an unstructured grid. Mostly, with the purpose of filling grid holes and then later continue with regular grid interpolations.

Mathematica V9 and V10 supports linear Interpolation on an unstructured grid up to 3D:

In[4]:= if = 
 Interpolation[RandomReal[1, {2000, 2}], InterpolationOrder -> 1]; if[.5]

Out[4]= 0.61608

In[5]:= if = 
 Interpolation[RandomReal[1, {2000, 3}], InterpolationOrder -> 1]; if[.5, .5]

Out[5]= 0.41285

In[6]:= if = 
 Interpolation[RandomReal[1, {2000, 4}], InterpolationOrder -> 1]; if[.5, .5, .5]

Out[6]= 0.496552

In V8 however, it was possible to apply the same to even higher dimensions. On my present machine I can get up to 5D (higher dimensions apparently require more than the 16GB RAM that I have):

In[2]:= if = 
 Interpolation[RandomReal[1, {2000, 5}], InterpolationOrder -> 1]; if[.5, .5, .5, .3]

Out[2]= 4.82823

In[3]:= if = 
 Interpolation[RandomReal[1, {2000, 6}], InterpolationOrder -> 1]; if[.5, .5, .5, .3, .6]

Out[3]= 0.119046

To compensate I used the Imtek Mathematica Supplement. However, this accumulated some incompatibilities with the recent Versions of Mathematica and the performance for higher dimensions is not sufficient for my applications. I am about to switch to Ingolf Dahl's Obtuse package which adds five interpolation methods to the Mathematica Interpolation command. Alternatively, there in this Mathematica Stackexchange post one can find a Radial Basis Function based Interpolation command.

Now my question(s) are:

  1. Why has this functionality been removed for V8+ and is there are work-around to this new limitations?

  2. What other possibilities are there to perform unstructured grid interpolations in 4D+ with reasonable Performance and some control over the applied methods?

  3. Unfortunately I often need to interpolate missing grid points at the edges of the N-dim grid. For this reason I need to prevent/suppress divergent behavior, similar to the divergent extrapolation Problems when using higher order spline/polynomial inter/extrapolation methods. I know that the data cube is reasonably well behaved and would be content with linear Interpolation/Extrapolation behavior - any tips for that?

POSTED BY: Markus Roellig
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract