Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Simulating the solar system

  1. Jul 6, 2011 #1

    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. jcsd
  3. Jul 6, 2011 #2

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    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.
  4. Jul 12, 2011 #3
    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?
  5. Jul 12, 2011 #4


    User Avatar
    Science Advisor
    Gold Member

    Next to "Ephemeris Type" is a change button. Choose "Vectors" and it will give you position xyz and velocity xyz.
  6. Jul 12, 2011 #5
    I was so sure I somehow have to convert these data that I didn't notice this button
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook