PDA

View Full Version : Three Body Gravity Problem


Sakriya
Oct15-10, 07:48 PM
I am having problem in a small question. Suppose, when there are two objects and the only force acting between them is gravitational, then i can easily get the equations describing the objects. But when I also consider a third object how do i calculate the motion of any of those objects.

To make it clearer. Suppose there are only three objects Sun, Earth and Mars. In this case, how do i find the speed and other variables of Earth when i certainly cannot say that gravitational force between sun and earth provides the required centripetal force because the mars is also pulling earth towards itself.Moreover the velocity of earth is much higher than that of Mars so the distance between them should always be increasing. So how do i tackle this?
Please Help

zhermes
Oct15-10, 08:32 PM
There is no closed form analytic solution to the general 3-body problem. To my knowledge there is only one 3-body problem that has a closed form solution, and its still not analytic (kepler's three body problem). The only way to find what you're looking for is through numerical evolution of the equations of motion.

If you're familiar with programming this is very doable.

Sakriya
Oct15-10, 10:30 PM
I don't know programming. Isn't there any simple way.

K^2
Oct16-10, 12:28 AM
Simple way, in this case, is to learn programming. Starting from absolute scratch, it's still easier then doing it any other way.

Sakriya
Oct16-10, 12:45 AM
What kind of Programming is it.... I have got no clue. Could you guys give a bit detail

zhermes
Oct16-10, 01:25 AM
I don't know programming. Isn't there any simple way.
No. Most problems, in the end, have to be solved numerically.

SinghRP
Oct16-10, 08:40 AM
In 1971-74, as a post-doctoral fellow working for Prof. Breit, I was assigned to work on the hyperfine structure of orthohelium. This is a three body problem: a nucleus and two electrons. The electrostatic forces are similar in form to gravitational forces.

The previous answers are right. There are no closed-form solutions. We had to employ a numerical method, called panel method, to solve this problem. We set up the mathematical solutions and used FORTRAN and a CDC-6400 computer. This program turned out to be a headache. It took us three years to finally get the accuracy we wanted.

I was also looking for a separate three-body force, other than the 'sum' of three two-body forces. We were unable to find one for lack of larger computers.

I would recommend, as others have done so already, please learn computer programming. It is very easy and straightforward. Fortran is deal for physics and mathematical algorithms. It will help you in many other adventures as well. Good luck.

D H
Oct16-10, 09:23 AM
There is no closed form analytic solution to the general 3-body problem.
That is not quite correct. What is correct is that there is no solution in the elementary functions to the general 3-body problem. An infinite series in 1/t3 to the three body problem does exist. This series solution discovered by Karl Sundman is quite useless, however. An astronomically large number of terms (108,000,000 according to scienceworld@wolfram.com (http://scienceworld.wolfram.com/physics/RestrictedThree-BodyProblem.html)) are needed to obtain a reasonable degree of accuracy.

To my knowledge there is only one 3-body problem that has a closed form solution, and its still not analytic (kepler's three body problem).
There certainly are special solutions to the three body problem. These are the Lagrange points (aka libration points). There are five such points.

Sakriya
Oct17-10, 08:43 AM
Thank You everyone for your answers.

I do know C programming a bit and Qbasic Programming in detail. I will be learning FORTRAN in future. So, how should i design my program and could you give me some tips.

Thank You
Sakriya

D H
Oct17-10, 09:43 AM
That is a book you are asking us to write, Sakriya.

Numerical solution of ordinary differential equations, Kendall E. Atkinson, Weimin Han, David Stewart (http://books.google.com/books?id=SBvQ4ThK930C&printsec=frontcover&dq=numerical+solution+of+differential+equations&hl=en&ei=lAq7TNLVFYG88gaHm8yIBw&sa=X&oi=book_result&ct=result&resnum=9&ved=0CFYQ6AEwCA#v=onepage&q&f=false)

You can find several tutorials on the internet on this subject as well. Here are a couple:
http://www.cs.princeton.edu/introcs/94diffeq/
http://isc.temple.edu/physics402/notes/iv_notes.pdf

Sakriya
Oct17-10, 10:03 AM
Thank You D H
Your help means a lot for a high school student.

SinghRP
Oct17-10, 11:09 AM
I begin with the solar system. Let’s say the masses in the solar system = 1,000 balls, each with same mass. The sun is 998 balls; the Jupiter is 1 ball; and the rest of the solar system is that last 1 ball. Mars, I think, is 1/3 of planet earth. So, the sun has almost all gravitational pull on the earth; Mars is just a perturbation on the earth’s motion.

So I would calculate Sun-Earth as a two body problem, and then add Mars’ pull on Earth as a perturbation. What you will find that Earth is in an elliptical orbit around Sun. Mars is perturbing that Earth’s orbit, whose perihelion precesses as a result. Several textbooks provide excellent coverage of classical perturbation. (Mastering the theory of perturbation now will pay dividends when you study quantum mechanics later.)

As a vivid example, the perihelion of planet Mercury precesses at 527.7” of arc, almost all but 43” can be accounted for by the perturbative effects of the outer planets. General Relativity claims the left over 43”. A more vivid example is the precession and nutation of Earth’s spin vector.

FORTRAN (Formula Translation) is ideal for physics work. Moreover, you will have access to many physics programs. I have not done programming since 1975, but I recall a book by McCrakan (sic) from 1966. The language is simple. But here are few things to be FORTRAN careful: Handle large and small numbers well; Avoid accidental rounding and cancellation; Eliminate division by zero; Handle DO loops very carefully; Never change the inputs of a Function or a Subroutine. There may be more, but I don’t remember.

TurtleMeister
Oct17-10, 12:09 PM
A few years ago I used the n-body programming assignment (in the link that DH provided) to write my first simulation program. The assignment is intended to be written in Java, but you can use the ideas for any language. I recently rewrote mine for Visual Basic on the dot-net framework and added a lot of enhancements. I had a lot of fun with it, and still do.