Folks, hope someone can point me in the right direction. I've knocked up a perl program that pushes the planets around the Sun, using F=GMm/r^2 and f=ma, but there's one adjustment I've added to make it work and I don't know why ... The routines use 'v = sqrt[GM/(r*(1 +/- e))]' to calculate the velocity at apogee / perigee and set Earth's distance from the Sun as 149597890000. With the Sun sitting at the centre (Barycenter ??), I'm then trying to balance the Sun / Earth around the Barycenter to give a circular orbit. Calculating a multipler as the Earth Mass / Sun Mass, I'm moving the Sun away from the centre by 149597890000 * multiplier and then subtracting the same amount from the Earth's distance, to keep the distance from the Sun the same. Starting with the Earth's speed at perihelion ( obviously constant for a circular orbit ), I then need to set the Sun off in the opposite direction to keep the two circling the Barycentre. I'm calculating the Sun's velocity as Earth's velocity times the same multipler, I was then expecting to subtract the Sun's velocity from the Earth's to keep the system balanced. Here's my problem ( at least the one that I know about ) ... When subtracting the Sun's velocity from the Earth's, I have to half it. ie. Vs = Ve * Me/Ms; Ve = Ve - Vs/2. This isn't approx 2, but exactly 2. 1.99 doesn't work 2.01 doesn't work, only 2.0. Tried working this out with 1/2 MV^2 and the diffs in velocity but nothing seems to work out. Could just be my maths. So, where does this come from ? Why subtract the distance as it is, but divide the velocity by 2.0 ? Thanks. Mike.