Periodic Planar Collisionless Three Body Orbits With Unequal Mass

Source Notebook

The 1349 periodic orbits of planar three-body problem with unequal mass and zero angular momentum

Originator: X. Li, Y. Jing, and S. Liao

The three-body problem seeks solutions for the orbits of three masses under the mutual influence of gravity. Periodic solutions are very hard to find.

(1349 elements)

Examples

Basic Examples

Extract velocities:

In[1]:=
ResourceData[
   "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"]["I.B1(0.5)"]["Velocity"]
Out[1]=

Maximum value of period:

In[2]:=
Max[AssociationMap[
  ResourceData[
      "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"][#]["Period"] &, Keys[ResourceData[
    "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"]]]]
Out[2]=

All initial velocities:

In[3]:=
Graphics[Point[
  Values[AssociationMap[
    ResourceData[
        "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"][#1]["Velocity"] &, Keys[ResourceData[
      "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"]]]]], AspectRatio -> 1, Frame -> True, FrameTicks -> True]
Out[3]=

Use NBodySimulation to solve an orbit:

In[4]:=
Module[{n = 170, view = "real space"}, With[{parameters = ResourceData[
      "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"][Keys[
       ResourceData[
        "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"]][[n]]]}, Module[{data = NBodySimulation[
      "InverseSquare", {<|"Mass" -> 1, "Position" -> {-1, 0}, "Velocity" -> parameters["Velocity"]|>, <|"Mass" -> 1, "Position" -> {1, 0}, "Velocity" -> parameters["Velocity"]|>, <|"Mass" -> parameters["Mass"], "Position" -> {0, 0}, "Velocity" -> -((2 parameters["Velocity"])/
          parameters["Mass"])|>}, parameters["Period"]]}, ParametricPlot[
    Evaluate[data[All, "Position", t]], {t, 0, parameters["Period"]}]]]]
Out[2]=

Plot in a "shape sphere" using Jacobi three-body coordinates:

In[5]:=
data = Module[{n = 170}, With[{parameters = ResourceData[
       "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"][Keys[
        ResourceData[
         "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"]][[n]]]}, Module[{data = NBodySimulation[
       "InverseSquare", {Association["Mass" -> 1, "Position" -> {-1, 0}, "Velocity" -> parameters["Velocity"]],
         Association["Mass" -> 1, "Position" -> {1, 0}, "Velocity" -> parameters["Velocity"]], Association["Mass" -> parameters["Mass"], "Position" -> {0, 0}, "Velocity" -> -((2 parameters["Velocity"])/
           parameters["Mass"])]}, parameters["Period"]]}, data]]]
Out[5]=
In[6]:=
Show[ParametricPlot3D[{(((x1 - x2) (x1 + x2 - 2 x3))/Sqrt[
     3] + ((y1 - y2) (y1 + y2 - 2 y3))/Sqrt[3])/(
    1/2 (x1 - x2)^2 + 1/6 (x1 + x2 - 2 x3)^2 + 1/2 (y1 - y2)^2 + 1/6 (y1 + y2 - 2 y3)^2), (-(1/2) (x1 - x2)^2 + 1/6 (x1 + x2 - 2 x3)^2 - 1/2 (y1 - y2)^2 + 1/6 (y1 + y2 - 2 y3)^2)/(
    1/2 (x1 - x2)^2 + 1/6 (x1 + x2 - 2 x3)^2 + 1/2 (y1 - y2)^2 + 1/6 (y1 + y2 - 2 y3)^2), (
    2 (-(((x1 + x2 - 2 x3) (y1 - y2))/(
        2 Sqrt[3])) + ((x1 - x2) (y1 + y2 - 2 y3))/(2 Sqrt[3])))/(
    1/2 (x1 - x2)^2 + 1/6 (x1 + x2 - 2 x3)^2 + 1/2 (y1 - y2)^2 + 1/6 (y1 + y2 - 2 y3)^2)} /. Thread[{x1, y1, x2, y2, x3, y3} -> Flatten[data[All, "Position", t]]], {t, 0, 32.2}, BoxRatios -> 1,
   PlotRange -> All, AspectRatio -> 1, PlotStyle -> Yellow, MaxRecursion -> 9, Axes -> False, ImageSize -> 445, Boxed -> False, SphericalRegion -> True, Background -> Black],
 Graphics3D[{Red, PointSize[.03], Point[{{-(Sqrt[3]/2), -(1/2), 0}, {Sqrt[3]/2, -(1/2), 0}, {0, 1, 0}}], Opacity[.35], Green, Sphere[]}]]
Out[6]=

Plot orbits from different families:

In[7]:=
Table[With[{parameters = ResourceData[
      "Periodic Planar Collisionless Three Body Orbits With Unequal Mass"][n]},
  Module[{data  = NBodySimulation[
      "InverseSquare", {<|"Mass" -> 1, "Position" -> {-1, 0}, "Velocity" -> parameters["Velocity"]|>,
       <|"Mass" -> 1, "Position" -> {1, 0}, "Velocity" -> parameters["Velocity"]|>,
       <|"Mass" -> parameters["Mass"], "Position" -> {0, 0}, "Velocity" -> -2 parameters["Velocity"]/parameters["Mass"]|>},
       parameters["Period"]]},
   ParametricPlot[
    Evaluate[data[All, "Position", t]], {t, 0, parameters["Period"]}]]],
 {n, {"I.A1(0.5)", "I.B1(0.5)", "II.A1(0.5)", "II.B1(0.5)", "II.C1(0.5)", "I.A1(0.75)", "I.B1(0.75)", "I.C1(0.75)", "II.A1(0.75)", "II.B1(0.75)", "II.C1(0.75)", "I.A1(2)"}}]
Out[7]=

Enrique Zeleny, "Periodic Planar Collisionless Three Body Orbits With Unequal Mass" from the Wolfram Data Repository (2021)  

Data Resource History

Source Metadata

Data Downloads

Publisher Information