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

Symplectic runge kutta for hamiltonian system

  1. Feb 6, 2005 #1
    Hi !

    I'm trying to solve the restricted problem of three bodies, where a negligeable mass particule is moving in the gravitationnal field of two heavy objects which are in circular orbit around their common center of mass. this is a plane problem...

    I describe the mouvment in the mobile referential in order to have an time independant hamiltonian, which is the following :

    [tex]H = \frac{1}{2} ( P^2_1+P^2_2 ) + P_1Q_2-P_2Q_1 - (\frac{1-\mu}{R_1} + \frac{\mu}{R_2})[/tex]

    where Q1,2 and P1,2 are the position and momenta of the object one and two respectively.

    I found out that, since the energy is an invariant of this problem, there was a numerical algorithm which was better to use : symplectic method.

    I don't know much about it, I just know it is better than classical RK4 (even with variable time step) because it preserves invariants and 'symplectic form' (I don't really know what it is...)

    I'm french student in 2nd cycle physics studies, I learnt hamiltonian formalism this year, but not the "symplectic" notion... therefore, I don't really know how to code a symplectic integrator.

    I didn't see a lot of web sites which could help me, just things like "Candy-Rozmus algorithm" which I don't really understand.

    I found an exemple of a symplectic runge kutta function on the web

    the code is here in this package : http://aristote.obspm.fr/phynum/libphynum/libphn.tar.gz

    I'm looking for some help to understand this...

    Thank you
    Last edited: Feb 6, 2005
  2. jcsd
  3. Feb 10, 2005 #2
    hum, sorry nobody knows something ?
  4. Mar 15, 2005 #3
    hi heimdall, as u rightly pointed out, symplecting algorithms respect the 'invariants' in the problem.
    following the std RG methods will give you reasonable results unless u want to integrate for very long periods .
    there are many symplecting integration toolboxes available for matlab.
    one of them is

    it also comes with a decent tutorial(or try 'symplectinc integration' on google's scholar)

    to see the difference...look at this image where i have shown the variation the jacobi constant with time(this ofcourse is an artifact of the integration)
    I used the integrator available in matlab.
    look at
    http://www.ae.iitm.ac.in/~ae03b005/jacobi.png [Broken]
    Last edited by a moderator: May 1, 2017
  5. Mar 15, 2005 #4
    oops..i forgot to add a point..the hill curve in the third curve is for cj=3.02 ..the max that is reached in the integration....the initial conditions actually corresspond to a cj=2.9998
  6. Mar 15, 2005 #5


    User Avatar
    Staff Emeritus
    Science Advisor

    I can tell you a little bit. A symplectic integrator will represent the exact solution of some Hamiltonian. It won't be YOUR Hamiltonian, however. As you take smaller and smaller time steps, the symplectic integrator will solve a problem that's closer and closer to the actual problem you are intersted in.

    The fact that the solution will actually be the exact solution of some Hamiltonian is useful for avoiding some types of obnoxious behaviors.

    Symplectic integrators are especially useful where one is interested in the stability of a system.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook