Simulating the solar system

1. Jul 6, 2011

trelek2

Hi,

i'm attempting to simulate the Solar System in Java.

I'm particularly interested in simulating orbits of celestial bodies that might enter our solar system. Therefore I need real data for my simulation.

That is: x,y,z coordinates of planets with respect to the Sun (taking the sun to be at the origin) as well as their velocity components in all directions at some point in time. I'm sure this sort of information is to be found online, however I have not yet been successful in doing this.
I have found http://cohoweb.gsfc.nasa.gov/helios/planet.html" [Broken] at NASA talking about planets coordinates, but I couldn't get this to give me any useful information.

Also, which numerical method would you choose to do this. Do you think a Runge-Kutta 4th order would be accurate enough for this?

Last edited by a moderator: May 5, 2017
2. Jul 6, 2011

D H

Staff Emeritus
As a starter, I suggest you work in a solar system barycenter frame rather than a heliocentric frame. Choice of reference frames is also important. The current best guess regarding what constitutes an inertial reference frame is the International Celestial Reference Frame. This also happens to be the frame in which the JPL Developmental Ephemerides are represented. You can access these ephemerides over the internet at http://ssd.jpl.nasa.gov/?horizons. These are the data that you desire.

You are also going to need the masses of the Sun and the planets, or better yet, the appropriately, the standard gravitational parameters for the Sun and the planets. While mass is not known very well, the quantity μ=G*M is known to a high degree of precision for the Sun, the Earth, Jupiter, Saturn, Mars, and the Moon, and to a less extent for the other planets. Note that if you use μ instead of mass you do not need to (and don't want to) use G in your equations of motion.

As far as numerical methods, RK4 is an OK start, but just OK. If you want better stability you should look to a method that conserves energy. Unfortunately, most of these techniques are stable but are not particularly precise. If you want better precision, you will need to go to a higher order technique such as a Gauss Jackson integrator. A high order Adams Bashforth Moulton integrator is also a good choice, is a lot faster than RK4, and is fairly easy to program.

3. Jul 12, 2011

trelek2

Thanks for all of this advice!

But, could you also give me some hints where I can find information on how to translate these ephemerides into xyz coords, with corresponding velocity vectors?

4. Jul 12, 2011

tony873004

Next to "Ephemeris Type" is a change button. Choose "Vectors" and it will give you position xyz and velocity xyz.

5. Jul 12, 2011

trelek2

Cheers!
I was so sure I somehow have to convert these data that I didn't notice this button