Message Boards Message Boards

Simulation for the three body problem

Posted 7 years ago

Hi, Everyone! This is the Simulation for Three body Problem. More: http://mmascript.com/topic/84/%E7%A9%BA%E9%97%B4%E4%B8%89%E4%BD%93%E9%97%AE%E9%A2%98

enter image description here

R = 5; G = 1; T = 15; Subscript[M, 1] = 5; Subscript[M, 2] = 1; \
Subscript[M, 3] = 1; Subscript[X, 10] = 0; Subscript[Y, 10] = 0; \
Subscript[Z, 10] = 0; Subscript[X, 20] = -5; Subscript[Y, 20] = 0; \
Subscript[Z, 20] = 0; Subscript[X, 30] = 5; Subscript[Y, 30] = 0; \
Subscript[Z, 30] = 0; Subscript[V, x10] = 0; Subscript[V, y10] = 0; \
Subscript[V, z10] = 0; Subscript[V, x20] = 0; Subscript[V, y20] = \
1/2; Subscript[V, z20] = 0; Subscript[V, x30] = 0; Subscript[V, y30] \
= -1/2; Subscript[V, z30] = 0;
(*??????G=1;T=50;Subscript[M, 1]=1;Subscript[M, 2]=1;Subscript[M, \
3]=1;Subscript[X, 10]=0;Subscript[Y, 10]=0;Subscript[Z, \
10]=0;Subscript[X, 20]=-5;Subscript[Y, 20]=0;Subscript[Z, \
20]=0;Subscript[X, 30]=5;Subscript[Y, 30]=0;Subscript[Z, \
30]=0;Subscript[V, x10]=0;Subscript[V, y10]=0;Subscript[V, \
z10]=0;Subscript[V, x20]=0;Subscript[V, y20]=1/2;Subscript[V, \
z20]=0;Subscript[V, x30]=0;Subscript[V, y30]=-1/2;Subscript[V, \
z30]=0;*)
(*??????G=1;T=30;Subscript[M, 1]=5;Subscript[M, 2]=1;Subscript[M, \
3]=1;Subscript[X, 10]=0;Subscript[Y, 10]=0;Subscript[Z, \
10]=0;Subscript[X, 20]=-5;Subscript[Y, 20]=0;Subscript[Z, \
20]=0;Subscript[X, 30]=5;Subscript[Y, 30]=0;Subscript[Z, \
30]=0;Subscript[V, x10]=0;Subscript[V, y10]=0;Subscript[V, \
z10]=0;Subscript[V, x20]=0;Subscript[V, y20]=1/2;Subscript[V, \
z20]=0;Subscript[V, x30]=0;Subscript[V, y30]=-1/2;Subscript[V, \
z30]=0;*)
??? = {
   Subscript[X, 1]''[
     t] == -((
       G Subscript[M, 
        2])/((Subscript[X, 1][t] - 
           Subscript[X, 2][t])^2 + (Subscript[Y, 1][t] - 
           Subscript[Y, 2][t])^2 + (Subscript[Z, 1][t] - 
           Subscript[Z, 2][t])^2)^((3/
       2))) (Subscript[X, 1][t] - Subscript[X, 2][t]) - (
      G Subscript[M, 
       3])/((Subscript[X, 1][t] - 
          Subscript[X, 3][t])^2 + (Subscript[Y, 1][t] - 
          Subscript[Y, 3][t])^2 + (Subscript[Z, 1][t] - 
          Subscript[Z, 3][t])^2)^(3/
      2) (Subscript[X, 1][t] - Subscript[X, 3][t]),
   Subscript[Y, 1]''[
     t] == -((
       G Subscript[M, 
        2])/((Subscript[X, 1][t] - 
           Subscript[X, 2][t])^2 + (Subscript[Y, 1][t] - 
           Subscript[Y, 2][t])^2 + (Subscript[Z, 1][t] - 
           Subscript[Z, 2][t])^2)^((3/
       2))) (Subscript[Y, 1][t] - Subscript[Y, 2][t]) - (
      G Subscript[M, 
       3])/((Subscript[X, 1][t] - 
          Subscript[X, 3][t])^2 + (Subscript[Y, 1][t] - 
          Subscript[Y, 3][t])^2 + (Subscript[Z, 1][t] - 
          Subscript[Z, 3][t])^2)^(3/
      2) (Subscript[Y, 1][t] - Subscript[Y, 3][t]),
   Subscript[Z, 1]''[
     t] == -((
       G Subscript[M, 
        2])/((Subscript[X, 1][t] - 
           Subscript[X, 2][t])^2 + (Subscript[Y, 1][t] - 
           Subscript[Y, 2][t])^2 + (Subscript[Z, 1][t] - 
           Subscript[Z, 2][t])^2)^((3/
       2))) (Subscript[Z, 1][t] - Subscript[Z, 2][t]) - (
      G Subscript[M, 
       3])/((Subscript[X, 1][t] - 
          Subscript[X, 3][t])^2 + (Subscript[Y, 1][t] - 
          Subscript[Y, 3][t])^2 + (Subscript[Z, 1][t] - 
          Subscript[Z, 3][t])^2)^(3/
      2) (Subscript[Z, 1][t] - Subscript[Z, 3][t]),
   Subscript[X, 2]''[
     t] == -((
       G Subscript[M, 
        1])/((Subscript[X, 1][t] - 
           Subscript[X, 2][t])^2 + (Subscript[Y, 1][t] - 
           Subscript[Y, 2][t])^2 + (Subscript[Z, 1][t] - 
           Subscript[Z, 2][t])^2)^((3/
       2))) (Subscript[X, 2][t] - Subscript[X, 1][t]) - (
      G Subscript[M, 
       3])/((Subscript[X, 2][t] - 
          Subscript[X, 3][t])^2 + (Subscript[Y, 2][t] - 
          Subscript[Y, 3][t])^2 + (Subscript[Z, 2][t] - 
          Subscript[Z, 3][t])^2)^(3/
      2) (Subscript[X, 2][t] - Subscript[X, 3][t]),
   Subscript[Y, 2]''[
     t] == -((
       G Subscript[M, 
        1])/((Subscript[X, 1][t] - 
           Subscript[X, 2][t])^2 + (Subscript[Y, 1][t] - 
           Subscript[Y, 2][t])^2 + (Subscript[Z, 1][t] - 
           Subscript[Z, 2][t])^2)^((3/
       2))) (Subscript[Y, 2][t] - Subscript[Y, 1][t]) - (
      G Subscript[M, 
       3])/((Subscript[X, 2][t] - 
          Subscript[X, 3][t])^2 + (Subscript[Y, 2][t] - 
          Subscript[Y, 3][t])^2 + (Subscript[Z, 2][t] - 
          Subscript[Z, 3][t])^2)^(3/
      2) (Subscript[Y, 2][t] - Subscript[Y, 3][t]),
   Subscript[Z, 2]''[
     t] == -((
       G Subscript[M, 
        1])/((Subscript[X, 1][t] - 
           Subscript[X, 2][t])^2 + (Subscript[Y, 1][t] - 
           Subscript[Y, 2][t])^2 + (Subscript[Z, 1][t] - 
           Subscript[Z, 2][t])^2)^((3/
       2))) (Subscript[Z, 2][t] - Subscript[Z, 1][t]) - (
      G Subscript[M, 
       3])/((Subscript[X, 2][t] - 
          Subscript[X, 3][t])^2 + (Subscript[Y, 2][t] - 
          Subscript[Y, 3][t])^2 + (Subscript[Z, 2][t] - 
          Subscript[Z, 3][t])^2)^(3/
      2) (Subscript[Z, 2][t] - Subscript[Z, 3][t]),
   Subscript[X, 3]''[
     t] == -((
       G Subscript[M, 
        2])/((Subscript[X, 3][t] - 
           Subscript[X, 2][t])^2 + (Subscript[Y, 3][t] - 
           Subscript[Y, 2][t])^2 + (Subscript[Z, 3][t] - 
           Subscript[Z, 2][t])^2)^((3/
       2))) (Subscript[X, 3][t] - Subscript[X, 2][t]) - (
      G Subscript[M, 
       1])/((Subscript[X, 3][t] - 
          Subscript[X, 1][t])^2 + (Subscript[Y, 3][t] - 
          Subscript[Y, 1][t])^2 + (Subscript[Z, 3][t] - 
          Subscript[Z, 1][t])^2)^(3/
      2) (Subscript[X, 3][t] - Subscript[X, 1][t]),
   Subscript[Y, 3]''[
     t] == -((
       G Subscript[M, 
        2])/((Subscript[X, 3][t] - 
           Subscript[X, 2][t])^2 + (Subscript[Y, 3][t] - 
           Subscript[Y, 2][t])^2 + (Subscript[Z, 3][t] - 
           Subscript[Z, 2][t])^2)^((3/
       2))) (Subscript[Y, 3][t] - Subscript[Y, 2][t]) - (
      G Subscript[M, 
       1])/((Subscript[X, 3][t] - 
          Subscript[X, 1][t])^2 + (Subscript[Y, 3][t] - 
          Subscript[Y, 1][t])^2 + (Subscript[Z, 3][t] - 
          Subscript[Z, 1][t])^2)^(3/
      2) (Subscript[Y, 3][t] - Subscript[Y, 1][t]),
   Subscript[Z, 3]''[
     t] == -((
       G Subscript[M, 
        2])/((Subscript[X, 3][t] - 
           Subscript[X, 2][t])^2 + (Subscript[Y, 3][t] - 
           Subscript[Y, 2][t])^2 + (Subscript[Z, 3][t] - 
           Subscript[Z, 2][t])^2)^((3/
       2))) (Subscript[Z, 3][t] - Subscript[Z, 2][t]) - (
      G Subscript[M, 
       1])/((Subscript[X, 3][t] - 
          Subscript[X, 1][t])^2 + (Subscript[Y, 3][t] - 
          Subscript[Y, 1][t])^2 + (Subscript[Z, 3][t] - 
          Subscript[Z, 1][t])^2)^(3/
      2) (Subscript[Z, 3][t] - Subscript[Z, 1][t]),
   Subscript[X, 1][0] == Subscript[X, 10],
   Subscript[Y, 1][0] == Subscript[Y, 10],
   Subscript[Z, 1][0] == Subscript[Z, 10],
   Subscript[X, 2][0] == Subscript[X, 20],
   Subscript[Y, 2][0] == Subscript[Y, 20],
   Subscript[Z, 2][0] == Subscript[Z, 20],
   Subscript[X, 3][0] == Subscript[X, 30],
   Subscript[Y, 3][0] == Subscript[Y, 30],
   Subscript[Z, 3][0] == Subscript[Z, 30],
   Subscript[X, 1]'[0] == Subscript[V, x10],
   Subscript[Y, 1]'[0] == Subscript[V, y10],
   Subscript[Z, 1]'[0] == Subscript[V, z10],
   Subscript[X, 2]'[0] == Subscript[V, x20],
   Subscript[Y, 2]'[0] == Subscript[V, y20],
   Subscript[Z, 2]'[0] == Subscript[V, z20],
   Subscript[X, 3]'[0] == Subscript[V, x30],
   Subscript[Y, 3]'[0] == Subscript[V, y30],
   Subscript[Z, 3]'[0] == Subscript[V, z30]
   };
??? = NDSolve[{???}, {Subscript[X, 1][t], Subscript[Y, 1][t], 
    Subscript[Z, 1][t], Subscript[X, 2][t], Subscript[Y, 2][t], 
    Subscript[Z, 2][t], Subscript[X, 3][t], Subscript[Y, 3][t], 
    Subscript[Z, 3][t]}, {t, 0, T}, MaxSteps -> 1000000];
Subscript[JX, 1][t_] := Evaluate[Subscript[X, 1][t] /. ???[[1, 1]]];
Subscript[JY, 1][t_] := Evaluate[Subscript[Y, 1][t] /. ???[[1, 2]]];
Subscript[JZ, 1][t_] := Evaluate[Subscript[Z, 1][t] /. ???[[1, 3]]];
Subscript[JX, 2][t_] := Evaluate[Subscript[X, 2][t] /. ???[[1, 4]]];
Subscript[JY, 2][t_] := Evaluate[Subscript[Y, 2][t] /. ???[[1, 5]]];
Subscript[JZ, 2][t_] := Evaluate[Subscript[Z, 2][t] /. ???[[1, 6]]];
Subscript[JX, 3][t_] := Evaluate[Subscript[X, 3][t] /. ???[[1, 7]]];
Subscript[JY, 3][t_] := Evaluate[Subscript[Y, 3][t] /. ???[[1, 8]]];
Subscript[JZ, 3][t_] := Evaluate[Subscript[Z, 3][t] /. ???[[1, 9]]];
Manipulate[
 Show[
  ParametricPlot3D[{{Subscript[JX, 1][t], Subscript[JY, 1][t], 
     Subscript[JZ, 1][t]}, {Subscript[JX, 2][t], Subscript[JY, 2][t], 
     Subscript[JZ, 2][t]}, {Subscript[JX, 3][t], Subscript[JY, 3][t], 
     Subscript[JZ, 3][t]}, {0, 0, t}, {0, 0, -t}, {0, t, 0}, {0, -t, 
     0}, {t, 0, 0}, {-t, 0, 0}}, {t, 0, T}, 
   PlotRange -> {{-R, R}, {-R, R}, {-R, R}}, AspectRatio -> 1, 
   PlotStyle -> {Red, Green, Purple, Black, Black, Black, Black, 
     Black, Black}, PlotTheme -> "Classic", ImageSize -> 30*30, 
   Axes -> False, Boxed -> False],
  ParametricPlot3D[{{Subscript[JX, 1][x], Subscript[JY, 1][x], 
     Subscript[JZ, 1][x]}, {Subscript[JX, 2][x], Subscript[JY, 2][x], 
     Subscript[JZ, 2][x]}, {Subscript[JX, 3][x], Subscript[JY, 3][x], 
     Subscript[JZ, 3][x]}}, {t, 0, T}, 
   PlotRange -> {{-R, R}, {-R, R}, {-R, R}}, AspectRatio -> 1, 
   PlotStyle -> Thickness[0.01], AspectRatio -> 1, ImageSize -> 30*30,
    Axes -> False, Boxed -> False]
  ]
 , {x, 0, T}
 ]
POSTED BY: 123 123
Posted 7 years ago

Another:

R = 5; G = 1; T = 15; Subscript[M, 1] = 5; Subscript[M, 2] = 1; \
Subscript[M, 3] = 1; Subscript[X, 10] = 0; Subscript[Y, 10] = 0; \
Subscript[Z, 10] = 0; Subscript[X, 20] = -5; Subscript[Y, 20] = 0; \
Subscript[Z, 20] = 0; Subscript[X, 30] = 3; Subscript[Y, 30] = 0; \
Subscript[Z, 30] = 1; Subscript[V, x10] = 0; Subscript[V, y10] = 0; \
Subscript[V, z10] = 0; Subscript[V, x20] = 0; Subscript[V, y20] = \
1/2; Subscript[V, z20] = 0; Subscript[V, x30] = 0; Subscript[V, y30] \
= -1/2; Subscript[V, z30] = 0;

enter image description here

POSTED BY: 123 123
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract