# Symplectic runge kutta for hamiltonian system

1. Feb 6, 2005

### Heimdall

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 :

$$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})$$

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
"http://aristote.obspm.fr/phynum/libphynum/lib1.html"

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. Feb 10, 2005

### Heimdall

hum, sorry nobody knows something ?

3. Mar 15, 2005

### genusunique

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
http://www.ii.uib.no/diffman.

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
4. Mar 15, 2005

### genusunique

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

5. Mar 15, 2005

### pervect

Staff Emeritus
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.