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$
2
  • $\begingroup$ Do you need first and second derivatives as well? $\endgroup$
    – nicoguaro
    Commented Mar 3, 2018 at 17:51
  • $\begingroup$ @nicoguaro No, only coordinates $\endgroup$ Commented Mar 3, 2018 at 18:17

2 Answers 2

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$
4
  • $\begingroup$ Thanks. What does 'map the interval to [-1,1]' mean? $\endgroup$ Commented Mar 6, 2018 at 4:49
  • $\begingroup$ @TarlanMammadzada, that you assign a point in [-1,1] to each point in [a,b]. $\endgroup$
    – nicoguaro
    Commented Mar 6, 2018 at 11:35
  • $\begingroup$ The question is, why it is the most accurate? Why not Chebishev interpolation? $\endgroup$ Commented Mar 6, 2018 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
    Commented Mar 6, 2018 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$
3
  • $\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$ Commented Mar 3, 2018 at 20:42
  • $\begingroup$ You can find the equations in this answer, for example. $\endgroup$
    – nicoguaro
    Commented Mar 4, 2018 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$ Commented Mar 4, 2018 at 10:53

Your Answer

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

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