I ran into a problem while doing research. The problem can be described as: consider the original $n$-body problem, and if we fix the position of them(unknowns), no interaction among them, they don't ever move at all. I want to find out their positions. Now I put a test point with a small mass somewhere (known to me) in the system. I can measure the force it receives, I can write down one equation : $$ \sum_{j=1,...,n}\frac{G m_{0}m_j\mathbf{r}_{0j}}{||r_{0j}||^3} = \mathbf{F}_{0}, $$ where $G$ is a constant, $m_0, m_j$ are known to me, $\mathbf{r}_{0j} = \mathbf{x}_j - \mathbf{x}_0$ is the distance vector. $\mathbf{F}_{0}$ can be measured. $\mathbf{x}_0$ is the position of the test point, and $\mathbf{x}_j$ is the location of the $j^{\rm th}$ object.

if I move the test point $0$ to many other places, I can get many equations (as many as I want). My question is: how can I solve the positions of the bodies $x_j$ from these equations? Numerical solution is enough for me, I mainly use python programming language, any suggestion on how to solve this non-linear equation system?

  • $\begingroup$ You might be interested in NumPy and SciPy libraries. Also do consider looking at "Monte-Carlo" simulation of n-body systems. $\endgroup$ – Torsten Hĕrculĕ Cärlemän Jan 8 '14 at 16:46
  • 1
    $\begingroup$ This is cross-posted at math.stackexchange.com/q/631560 I think it is better at math than here $\endgroup$ – Ross Millikan Jan 8 '14 at 16:52
  • $\begingroup$ If you would take the gradient of the force (potential) as a function of position and make a contour plot out of it you should de able to determine the location of the stationary bodies. $\endgroup$ – fibonatic Jan 8 '14 at 16:59
  • $\begingroup$ Depending on the value of $n$, you are likely going to have to move away from interpreted languages and invest time learning C or Fortran. $\endgroup$ – Kyle Kanos Jan 8 '14 at 17:27
  • 2
    $\begingroup$ I actually think this question fits best here, though of course answers here would focus on the physics (i.e. how many points one needs and how to choose them), not the details of the numerical computation. (If the question was meant to be about the numerics, then yes, it should go to Computational Science.) Regardless, it shouldn't be posted both here and on math. johnniac, I guess it's your choice but you should probably delete one or the other. $\endgroup$ – David Z Jan 8 '14 at 19:50

I can think of a method, although it may require to compute $\mathbf{F}_0$ for a very large number of test points. It is based on Gauss's law for gravity $$ \frac1{m_0}\oint_{S} \mathbf{F}\cdot\mathrm d\mathbf S=-4\pi GM_S$$ where $S$ is a closed surface and $M_S$ is the total mass contained inside it.

So the idea would be to use some numerical scheme to compute the total mass contained inside some cubes, explore space and identify the regions where there is mass and where there is nothing. I suggest to start with large cubes and look for one that contains all the mass $\sum_jm_j$. Once you have delimited it, divide the size by two, this divides your cube into eight smaller ones, look in which you have mass and iterate until you have isolated masses correspoding to your $m_j$. This algorithm ends, but may be quite time consuming...

  • $\begingroup$ Thanks for your input, however, I only can measure the force on the test mass combined from all the unknown masses. I don't have the control to turn down a subset of masses. $\endgroup$ – johnniac Jan 14 '14 at 17:58
  • $\begingroup$ @johnniac. Using the formula I wrote, you don't need to turn down any mass. Only the mass inside the cube contributes to the integral. The masses outside the cube, whatever their positions, do not contribute ! Try it on with an example ! $\endgroup$ – Tom-Tom Jan 14 '14 at 21:42
  • $\begingroup$ @johnniac. More specifically: Rewrite formula (1) as $-(1/4\pi Gm_0)\oint_S\mathbf F\cdot\mathrm d\mathbf S=M_S$. You have on the left-hand hide something you can compute from the values of $\mathbf F$ at the points of the surface of the cube. The right-hand is the sum of the masses contained inside the cube. The masses that are outside of the cube do not contribute, so you don't need to turn them down, it's done by the formula. $\endgroup$ – Tom-Tom Jan 14 '14 at 22:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.