Chapter 3, Section 3.7, Figure 3.13

We start by defining the characteristic equation, ce.

ce = λ^4+λ^2+(27/4)*μ*(1-μ)==0;

Because this is a bi-quadratic we have a simple analytical solution:

soln = λ /. N[Solve[ce,λ]]

Prepare a list of masses for which we want to know the values of the roots.

mass = Table[-Log[10,i], {i,0.1,0.001,-0.0002}];

Calculate the four roots of the characteristic equation for mass ratios between 0.1 and 0.001.  Express each root in terms of its real and imaginary part and store in a list.

pts = 
Table[Map[ {Re[#], Im[#]}&, soln /. μ -> tμ],
     {tμ,0.1,0.001,-0.0002}];

For example, here are the four roots for μ=0.1.  Notice the pattern in the roots.

First[pts]

However, if we look at the four roots for μ=0.001 we get a different pattern.  Therefore the nature of the roots has changed as we changed the mass ratio.

Last[pts]

Transpose the results for future use ...

tpts = Transpose[pts];

... and check on the dimensions.

Dimensions[pts]

We plot the real parts of the first roots for all the masses.  These are negative until near log μ ≈ –1.4 after which they are all zero.

p11 = 
ListPlot[
Transpose[{mass,Transpose[tpts[[1]]][[1]]}],
        PlotJoined->True]

Then we plot the imaginary parts of the first roots.  These are non-zero.  Note how the sign changes near log μ ≈ –1.4.

p12 = 
ListPlot[
Transpose[{mass,Transpose[tpts[[1]]][[2]]}],
        PlotJoined->True,
        PlotStyle->{Dashing[{0.02,0.02}]}]

Then we plot the real parts of the second roots.  These are positive until near log μ ≈ –1.4 after which they are all zero.

p21 =
ListPlot[
Transpose[{mass,Transpose[tpts[[2]]][[1]]}],
        PlotJoined->True]

Then we plot the imaginary parts of the second roots.  These are non-zero.  Note how the sign changes near log μ ≈ –1.4.

p22 =
ListPlot[
Transpose[{mass,Transpose[tpts[[2]]][[2]]}],
        PlotJoined->True,
        PlotStyle->{Dashing[{0.02,0.02}]}]

Then we plot the real parts of the third roots. These are negative until near log μ ≈ –1.4 after which they are all zero.

p31 =
ListPlot[
Transpose[{mass,Transpose[tpts[[3]]][[1]]}],
        PlotJoined->True]

Then we plot the imaginary parts of the third roots.  These are always negative.

p32 =
ListPlot[
Transpose[{mass,Transpose[tpts[[3]]][[2]]}],
        PlotJoined->True,
        PlotStyle->{Dashing[{0.02,0.02}]}]

Then we plot the real parts of the fourth roots.  These are positive until near log μ ≈ –1.4 after which they are all zero.

p41 =
ListPlot[
Transpose[{mass,Transpose[tpts[[4]]][[1]]}],
        PlotJoined->True]

Finally we plot the imaginary parts of the fourth roots.  These are always positive.

p42 =
ListPlot[
Transpose[{mass,Transpose[tpts[[4]]][[2]]}],
        PlotJoined->True,
        PlotStyle->{Dashing[{0.02,0.02}]}]

We can put these all together in one plot.  Here the solid and dashed lines denote the real and imaginary parts respectively.  This shows that the nature of the roots changes near log μ ≈ –1.4.  For large mass ratios there are no purely imaginary roots.  For smaller mass ratios all the roots are purely imaginary and so the system is linearly stable.

Show[p11,p12,p21,p22,p32,p42,
     PlotRange->{{1,3},{-1,1}},
     Frame->True,AxesOrigin->{1,-1}]