Chapter 9, Section 9.9, Figure 9.35

The functions defined here are those already used in, for example, Fig.8.1–8.3.nb.

We start by defining the radius as a function of semi-major axis, eccentricity and true anomaly.

r[a_,e_,f_]:=a(1-e^2)/(1+e Cos[f]);

Now we define a function ksolve that solves Kepler's equation to find the eccentrci anomaly for a given value of the mean anomaly and eccentricity.

ksolve[ma_, e_] := FindRoot[ea - e Sin[ea] == ma, {ea,ma}];

The function position calculates the x and y coordinates of an object for a particular value of the mean anomaly.

position[ma_,a_,e_]:=
(eca=ea /. ksolve[ma,e];
x=N[a(Cos[eca]-e)]; y=N[a Sqrt[1-e^2] Sin[eca]];
{x,y})

We set the list of points, rotlist, to be empty.

rotlist={};

Define the resonance (3:2), the semi-major axis (unity) and the eccentricity (0.2488).

p=3/2; a=1.0; e=0.2488;

Create the list of points that make up the orbit.

Do[
(posvec=position[t,a,e];
f=N[ArcTan[posvec[[1]],posvec[[2]]]];
rad=N[Sqrt[posvec[[1]]^2+posvec[[2]]^2]];
θ=p*t;
ψ=θ-f;
blip=N[{rad*Cos[ψ],rad*Sin[ψ]}];
AppendTo[rotlist,blip];),
{t,0,4Pi,Pi/20}]

Plot the points as the path in the rotating frame.

pa=
ListPlot[rotlist,AspectRatio->Automatic, 
            PlotJoined->True,Axes->None]

Plot the points as individual points aloong the path in the rotating frame.

pb=
ListPlot[rotlist, 
AspectRatio->Automatic, Axes->None]

Show both plots together.

basic = 
Show[pa,pb,Prolog->PointSize[0.02]]

Check the definition of Circle.  Note that we can use it to draw an arc of a circle.

?Circle

Show the final plot complete with circular arc from 52° to 128° (i.e. 76° amplitude).

Show[basic, 
  Graphics[{PointSize[0.03],
            Point[{0,0.7616}],
            Point[{0.46888, 0.6001}],
            Point[{-0.46888, 0.6001}],
            Circle[{0,0},0.7616,
                   {52 Degree, 128 Degree}]}]]