4
$\begingroup$

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?

$\endgroup$
  • $\begingroup$ Do you need first and second derivatives as well? $\endgroup$ – nicoguaro Mar 3 '18 at 17:51
  • $\begingroup$ @nicoguaro No, only coordinates $\endgroup$ – Tarlan Mammadzada Mar 3 '18 at 18:17
4
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ Thanks. What does 'map the interval to [-1,1]' mean? $\endgroup$ – Tarlan Mammadzada Mar 6 '18 at 4:49
  • $\begingroup$ @TarlanMammadzada, that you assign a point in [-1,1] to each point in [a,b]. $\endgroup$ – nicoguaro Mar 6 '18 at 11:35
  • $\begingroup$ The question is, why it is the most accurate? Why not Chebishev interpolation? $\endgroup$ – Tarlan Mammadzada Mar 6 '18 at 12:01
  • $\begingroup$ 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. $\endgroup$ – nicoguaro Mar 6 '18 at 15:42
8
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ The point is, the velocities are also known and it's required to interpolate the coordinates. If you're suggesting the Hermite, would be great to show the equations for this case (not the link to Wikipedia) $\endgroup$ – Tarlan Mammadzada Mar 3 '18 at 20:42
  • $\begingroup$ You can find the equations in this answer, for example. $\endgroup$ – nicoguaro Mar 4 '18 at 5:49
  • $\begingroup$ @nicoguaro Your answer is great there. Would be happy, if you post an answer here also, to make it clear for my case $\endgroup$ – Tarlan Mammadzada Mar 4 '18 at 10:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.