Interpolation of a rapidly oscillating function

  • Context: C/C++ 
  • Thread starter Thread starter CAF123
  • Start date Start date
  • Tags Tags
    Interpolation
Click For Summary
SUMMARY

The discussion focuses on the challenges of interpolating an analytic function F(x,y,z) that exhibits rapid oscillations, particularly as y approaches zero. The user is currently employing linear interpolation in C++ but is considering splines for improved accuracy. However, concerns arise regarding the effectiveness of splines in handling rapid oscillations. Suggestions include utilizing a 3D Fourier transform for interpolation and exploring the function's oscillation characteristics, such as amplitude and frequency, to determine the best interpolation method.

PREREQUISITES
  • Understanding of analytic functions and their properties
  • Familiarity with interpolation techniques, specifically linear interpolation and splines
  • Knowledge of the Nyquist-Shannon theorem and its implications for data sampling
  • Experience with C++ programming for implementing interpolation routines
NEXT STEPS
  • Research 3D Fourier transforms for function interpolation
  • Explore the use of tricubic interpolation techniques, such as those found in the GTE library
  • Investigate the characteristics of oscillatory functions, focusing on amplitude and frequency analysis
  • Learn about trigonometric function combinations for improved interpolation of oscillating functions
USEFUL FOR

This discussion is beneficial for mathematicians, computational scientists, and software developers working on numerical methods for interpolating complex functions, particularly those dealing with oscillatory behavior in multi-dimensional spaces.

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.
 
Technology 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.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
11K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 19 ·
Replies
19
Views
6K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 23 ·
Replies
23
Views
3K