Calculating Motion in a Three-Body Gravity System: Challenges and Solutions

  • Thread starter Thread starter Sakriya
  • Start date Start date
  • Tags Tags
    Body Gravity
AI Thread Summary
The discussion centers on the complexities of calculating motion in a three-body gravitational system, specifically using the example of the Sun, Earth, and Mars. Participants emphasize that there is no closed-form analytic solution to the general three-body problem, and numerical methods are necessary for accurate calculations. Learning programming, particularly in FORTRAN, is recommended as a practical approach to solving these equations. Some users suggest treating the Earth-Mars interaction as a perturbation to the Sun-Earth two-body problem for simplification. Overall, the consensus is that numerical solutions and programming skills are essential for tackling the challenges of three-body motion calculations.
Sakriya
Messages
16
Reaction score
0
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
 
Physics news on Phys.org
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.
 
I don't know programming. Isn't there any simple way.
 
Simple way, in this case, is to learn programming. Starting from absolute scratch, it's still easier then doing it any other way.
 
What kind of Programming is it... I have got no clue. Could you guys give a bit detail
 
Sakriya said:
I don't know programming. Isn't there any simple way.
No. Most problems, in the end, have to be solved numerically.
 
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.
 
zhermes said:
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) 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.
 
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
 
  • #10
Last edited by a moderator:
  • #11
Thank You D H
Your help means a lot for a high school student.
 
Last edited:
  • #12
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.
 
  • #13
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.
 
Back
Top