Interpolation of a rapidly oscillating function

  • Context: C/C++ 
  • Thread starter Thread starter CAF123
  • Start date Start date
  • Tags Tags
    Interpolation
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 3K views
CAF123
Gold Member
Messages
2,918
Reaction score
87
I have an analytic function F(x,y,z) and grids in x,y and z. I would like to reproduce the values I get for F at a given x,y and z through carefully interpolating the values given in the grids I have in each of these variables. The problem is that in some part of the x,y,z phase space, namely when y->0, the function F(x,y,z) oscillates very heavily and I am not sure how to tackle the interpolation.

My interpolation routine is in Cpp and, for a good part of my phase space, linear interpolation is OK but for y->0 I see it is not and was thinking of using splines. But, I see only a max 2D spline given in the gsl_library and I am anyway not sure if splines would help here when the function oscillates rapidly.

Thanks in advance for any comments.
 
Physics news on Phys.org
What form does the oscillation take?
Map the axes through a function that corrects the period to be a constant.
Consider using a 3D Fourier transform as the interpolator.
 
CAF123 said:
I am anyway not sure if splines would help here when the function oscillates rapidly.
Probably not, you can't extract more information than the grid can encode (oscillations at twice the interval of the grid points by the Nyquist-Shannon theorem).

Below this limit you could extract more accuracy using e.g. https://www.geometrictools.com/GTE/Mathematics/IntpTricubic3.h.
 
Last edited:
Is there some other properties of the function ##F(x,y,z)## that can be used in decision what interpolation would be the best for it
- It is analytical . Does it can be represented in the following form
$$F(x,y,z)=\sum_{n=0}^{\infty} a_n (x-x_0)^n+b_n(y-y_0)^n+c_n(z-z_0)^n$$
- It oscillates. What are features of those oscillations ? ( amplitude, frequency property )
- Why oscillates more when ##y \to 0## ?
Maybe combination of a trigonometric function and an interpolation can describe it better.