Given the position and velocity vectors at one point in an orbit, one can calculate the keplerian elements and thus graph the subsequent orbital path as a circle/ellipse/parabola/hyperbola depending on the eccentricity. To simplify this problem, I am only focusing on an elliptical 2D orbit, which is defined by the semi-major axis a, eccentricity e, and argument of periapsis ω. Imagine a satellite is given a random position and velocity around a central body (such that allows for an elliptical orbit), and these elements are solved for. Graphing the projected orbital path is easy using these three orbital elements, and integrating forward in small timesteps will result in the satellite following a very close approximation of this graph. enter image description here

However, increasing the speed of the simulation (by increasing the timestep) sacrifices accuracy and causes noticeable energy drift over time. My question is the following - is there a way to calculate the future position of the satellite as a function of time without integrating? Based on my research, I initially though it would be simple to calculate mean anomaly, then eccentric anomaly, and finally true anomaly, then translate this to position, but I am struggling for a few reasons; for instance, time of periapsis passage is unknown when the orbital elements are solved for. I am not an expert in this field, and I would really appreciate a breakdown of the right equations or an explanation of how to approach this problem.


2 Answers 2


You're on the right track. Kepler's equation is an analytical solution for the position of an object in an orbit with respect to time assuming two body dynamics. And given some initial state vector (position and velocity) you can calculate all the orbital elements (like you said), from which you can get orbital period and mean motion. And if you know the mean anomaly and mean motion, you can calculate time since periapsis:

$t=\cfrac{M}{n}$ where t is time since periapsis, M is mean anomaly, and n is mean motion (make sure you are consistent with degrees or radians). Calculating the time since periapse of an orbital position

You can calculate mean motion from orbital period which can be calculated from semi-major axis: $T=2\pi \sqrt{\cfrac{a^3}{\mu}}$


I'm assuming you've already seen Kepler's equation from what you said, but you actually don't need true anomaly for Kepler's equation, just mean and eccentric:

$ x = a ( cos( E ) - e )$

$ y = b sin( E )$

Where a is semi-major axis, E is eccentric anomaly, e is eccentricity, b is semi-minor axis, and the x-y coordinates represent the position.

For elliptical orbits, the semi-minor axis can be calculated:


In this case, in order to account for the other rotations like argument of periapsis, you could rotate the coordinates after the fact, since those equations for x-y are in the frame of the orbit (x-axis points from central body to periapsis, y-axis points perpendicular to that direction in a 2D plane, which in this case would be the direction of the velocity vector at periapsis) in order to align with another inertial frame.

Keep in mind again that this is only valid for two-body dynamics. If you add any perturbations Kepler's equation does not hold.


The fancy, tricky way to do orbit propagation, which enables both high accuracy and long times, is to do as many integrals as possible analytically, and leave the numerical integration to find only the small deviations from the expected periodic fluctuations. You should not attempt to derive this yourself! What you should do instead is read about Semi-Analytic Satellite Theory, as in the paper A Semi-analytical Approach for Orbit Determination based on Extended Kalman Filter, published just two weeks ago at the 2021 AAS/AIAA Astrodynamics Specialist Conference, and made freely available by the authors on ResearchGate.


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.