kjensen said:
Thanks a lot for your reply. If I google "symplectic multi-step integrator" then I get a lot of interesting stuff (documents, books and so on). It might be what I am looking for! Do you know any books or documents where it is related to computer programming (any programming language). Thanks.
Symplectic multi-step methods are a big step for someone just starting out.
I suggest you start with something simple such as Euler's method or symplectic Euler, but design your system so that the most of the details of the integration technique are hidden from the uses of those techniques. This way you can start with something simple and step up to more advanced techniques as you learn.
Besides, accurate ephemeris models typically do not use symplectic methods. JPL uses a variable step-size, variable-order, Adams method to compute their Development Ephemerides (DE series; the latest of which is the DE421); the Russian Institute of Applied Astronomy of Saint-Petersburg uses a similar technique for their Ephemerides of the Planets and the Moon (EPM), as does the French Observatoire de Paris for their INPOP ephemerides. NORAD uses Stoermer-Cowell (aka Gauss-Jackson) to integrate the states of objects that are orbiting the Earth.There are lots of things to learn about besides integration techniques.
You'll need to learn about how to represent time. Eventually you'll learn about why we have leap seconds. As a starter, I suggest you use TAI (International Atomic Time) as your time standard. If you later want to address relativistic effects you will need to move to a relativistic time scale such as JPL's T_eph or the IERS's Barycentric Dynamic Time. If you want to relate the calculated ephemerides with what you can see from the ground you'll also have to learn about things like Universal Time.
You'll need to learn about how to represent positions in space. There are many choices of reference frames. I suggest the IERS's International Celestial Reference System. If you want to relate the calculated ephemerides with what you can see from the ground you'll also have to learn about things like Terrestrial Reference Frames, and a whole lot about the Earth's rotation.
As a starter, I suggest you use TAI as the dynamic time for your system with coordinates in ICRF, and ignore
all of the subtleties. You can add the subtleties as you learn more (and as you need them).
Some key websites:
US Naval Observatory Astronomical Information Center
http://www.usno.navy.mil/USNO/astronomical-applications/astronomical-information-center
Standards of Fundamental Astronomy:
http://www.iausofa.org/
International Earth Rotation and Reference Systems Service:
http://www.iers.orgAs far as integration techniques go, I suggest that you start with something very simple. The two simplest techniques are basic Euler and symplectic Euler. Basic Euler treats position and velocity as a six-vector and integrates according to
\vec u(t+\Delta t) = \vec u(t) + \Delta t\frac{d}{dt}(\vec u(t))
This is equivalent to propagating position and velocity according to
\begin{aligned}<br />
\vec x(t+\Delta t) &= \vec x(t) + \Delta t\,\vec v(t) \\<br />
\vec v(t+\Delta t) &= \vec v(t) + \Delta t\,\vec a(t)<br />
\end{aligned}
Symplectic Euler merely reverses the order of the calculation:
\begin{aligned}<br />
\vec v(t+\Delta t) &= \vec v(t) + \Delta t\,\vec a(t) \\<br />
\vec x(t+\Delta t) &= \vec x(t) + \Delta t\,\vec v(t+\Delta t)<br />
\end{aligned}
Basic Euler is incredibly inaccurate and unstable. Symplectic Euler is fairly inaccurate but is stable. The only reason to learn about basic Euler is that it is the basis for a lot of other integration techniques. The Adams family of integrators (which includes Stoermer-Cowell) and the Runge-Kutta family of integrators use basic Euler as the underlying mechanism for integration.
A couple of techniques that are a bit better than the Euler techniques are leapfrog, verlet integration, and Beeman's algorithm. A lot of galactic simulations, simulations in chemistry, and robotic simulations use these techniques or similar ones. Note very well: They don't use these techniques because they are good. They use these techniques because anything more advanced would kill the computer while dropping down to Euler integration would kill accuracy.
Beyond these, you'll find two key families, the Adams and Runge-Kutta families of integrators, that predominate in this field. (There are plenty more techniques than these, but these are the dominant ones). Neither Adams nor RK-type integrators are symplectic. The losses are small, particularly if you go to higher order integrators. One problem with symplectic integrators is that it is very, very hard to get beyond second order. It is fairly easy to come up with Adams and Runge-Kutta integrators that are well beyond second order.
Perturbation techniques open the door to a completely different style of integration. The Apollo program used an Encke-Nystrom integrator to accurately propagate the state of the Apollo spacecraft . An orbiting body will follow something that is fairly close to an elliptical path. An Encke-Nystrom integrator takes advantage of this fact, propagating the path as a small deviation from a simple elliptical path. The integrator has to re-anchor the ellipse to on occasion to keep the integration accurate.
Integrating something other than cartesian position and velocity opens the door to yet another style of integration. Variation of parameters techniques integrate Lagrange's planetary equations (or some variant of those planetary equations). In these techniques, it is orbital elements that are integrated rather than position and velocity. The planetary equations provide the partial derivatives of these elements with respect to the perturbing forces. A somewhat related technique is to use the Karhunen-Loève transform. An elliptical path falls out directly from this transform.