The following threads call our attention to the fact that "accuracy of Interpolation will be worse with an unstructured grid", in the context of interpolation of 3d data:

interpolation of 3D data

Improved interpolation of mostly-structured 3d data

I want to know if there is a systematic way to do the interpolation correctly for a 3D data with the points distributed logarithmically along x and y.

Simple example

The xy grid would be built using

grid = Table[ {10^t, 10^u}, {t, 1, 3, 0.05}, {u, 1, 3, 0.1}]
ListPlot[ grid ]

Logarithmic grid

Of course, in logarithmic scale it looks fine (linear):

ListLogLogPlot[ grid ]

enter image description here

The 3D data would be built using some 2 variable function func:

tabx = Table[10^w, {w, 1, 3, 0.05}]
taby = Table[10^w, {w, 1, 3, 0.1}]
tab = Table[ {{x,y},func[x, y]}, {x, tabx}, {y, taby}]

Then, how to interpolate tab properly?

  • $\begingroup$ Just using Interpolation works fine and gives high-order interpolation, although you have to use Flatten[tab, 1] to get rid of the nesting. It seems Mathematica still considers your data a structured grid, because it still has the structure of a full grid even though the $x$ and $y$ coordinates are nonuniformly sampled. $\endgroup$
    – user484
    Feb 15, 2014 at 19:45
  • $\begingroup$ link This was very helpful to me. And I guess just find the log to get the uniform grid then organize the data as shown in the link. $\endgroup$
    – Lina
    Feb 16, 2014 at 1:10
  • $\begingroup$ I don't see any difference between using Interpolation and ListInterpolaton for multidimensional data. Is there any difference? Maybe I am missing something. $\endgroup$
    – fcpenha
    Feb 16, 2014 at 2:02
  • $\begingroup$ Nevertheless, your point about doing the interpolation on the uniform grid is good. $\endgroup$
    – fcpenha
    Feb 16, 2014 at 2:49
  • $\begingroup$ Sometimes I wonder why I bother to leave comments. $\endgroup$
    – user484
    Feb 16, 2014 at 8:27


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.