4

I have a table of the orbital coordinates and velocities of an object with time steps of 1 minute.

Now I would like to interpolate this to a finer time increments with time steps of the order of 1 second. How to make use of the velocities in coordinate interpolation and what might be the most accurate way to do this?

2 Answers2

8

That depends on how well you know the coordinates and velocities. If you have exact values, you can get a reasonable answer using Hermite interpolation. This will give you a degree-3 polynomial in each window that matches the coordinates and velocities at all the endpoints.

Alternatively, if you do not know the coordinates and velocities exactly, but you do know something about the probability distribution of the measurement errors, you'll want to use Kalman smoothing or a similar algorithm. Kalman-type methods are especially nice because you can also incorporate the physics into how you interpolate the data.

Daniel Shapero
  • 10,263
  • 1
  • 28
  • 59
4

You can interpolate values between $[a, b]$ using Hermite interpolation. You first map the interval $[a, b]$ to $[-1,1]$, and the values are computed as: $$f(x) \approx N_1(x) f(a) + N_2(x) f(b) + \frac{b - a}{2}[N_3(x) f'(a) + N_4(x) f'(b)]\quad \forall x\in [-1, 1]$$

with \begin{align} N_1 (x) &= \frac{1}{4} (x - 1)^2 (2 + x)\\ N_2 (x) &= \frac{1}{4} (x + 1)^2 (2 - x)\\ N_3 (x) &= \frac{1}{4} (x - 1)^2 (x + 1)\\ N_4 (x) &= \frac{1}{4} (x + 1)^2 (x - 1)\, . \end{align}

Then, you just need to loop over each pair of points.

nicoguaro
  • 8,500
  • 6
  • 23
  • 49
  • Thanks. What does 'map the interval to [-1,1]' mean? – Tarlan Mammadzada Mar 06 '18 at 04:49
  • @TarlanMammadzada, that you assign a point in [-1,1] to each point in [a,b]. – nicoguaro Mar 06 '18 at 11:35
  • The question is, why it is the most accurate? Why not Chebishev interpolation? – Tarlan Mammadzada Mar 06 '18 at 12:01
  • It is not the most accurate. It's the simplest one that uses the data that you have. Regarding "Chebyshev interpolation", I suppose that your refer to Lagrange interpolation using the roots of Chebyshev polynomials, unfortunately this is not possible in your case since you already have the data and it's sampled equidistantly. You can also use "Chebyshev sampling" for Hermite polynomials, I have an example here. But once again, your data is not suitable for that. – nicoguaro Mar 06 '18 at 15:42