Macaulay2 » Documentation
Packages » Oscillators :: identifyStability
next | previous | forward | backward | up | index | toc

identifyStability -- Identify the stability of a list of eigenvalues, or of potential solutions to the oscillator system

Description

The function identifyStability computes the stability of a list of solutions or eigenvalues. For solutions, the function computes the eigenvalues of the Jacobian at each solution and determines the stability based on the sign of the real part of the eigenvalues. For eigenvalues, the function determines the stability based on the sign of the real part of the eigenvalues.

i1 : G = graph({0,1,2,3}, {{0,1},{1,2},{2,3},{0,3}});
i2 : R = oscRing(G, Reduced => true);
i3 : I = oscSystem(G, R);

o3 : Ideal of R
i4 : Jac = oscJacobian(G, R);

             4      4
o4 : Matrix R  <-- R
i5 : realsols = findRealSolutions I;
warning: some solutions are not regular: {10, 11, 15, 17, 19}
i6 : jacs = for pt in realsols list sub(Jac, matrix{pt});
i7 : eigenvals = jacs/eigenvalues;
i8 : eigenvals / identifyStability

o8 = {Unstable, Stable, Unstable, Semistable, Semistable, Unstable,
     ------------------------------------------------------------------------
     Semistable, Unstable, Semistable, Unstable, Unstable, Unstable,
     ------------------------------------------------------------------------
     Unstable}

o8 : List
i9 : realsols/(pt -> prepend(identifyStability(Jac, pt), pt))

o9 = {{Unstable, -1, 1, -1, 0, 0, 0}, {Stable, 1, 1, 1, 0, 0, 0}, {Unstable,
     ------------------------------------------------------------------------
     -.550456, -1, .550456, -.834864, 0, .834864}, {Semistable, 0, -1, 0, 1,
     ------------------------------------------------------------------------
     0, -1}, {Semistable, 0, -1, 0, 1, 0, -1}, {Unstable, .188411, -1,
     ------------------------------------------------------------------------
     .188411, -.98209, 0, .98209}, {Semistable, 0, -1, 0, -1, 0, 1},
     ------------------------------------------------------------------------
     {Unstable, -.550456, -1, .550456, .834864, 0, -.834864}, {Semistable, 0,
     ------------------------------------------------------------------------
     -1, 0, -1, 0, 1}, {Unstable, -.188411, -1, -.188411, -.98209, 0,
     ------------------------------------------------------------------------
     .98209}, {Unstable, .550456, -1, -.550456, .834864, 0, -.834864},
     ------------------------------------------------------------------------
     {Unstable, -.315974, -.800321, .315974, .948768, -.599572, -.948768},
     ------------------------------------------------------------------------
     {Unstable, .550456, -1, -.550456, -.834864, 0, .834864}}

o9 : List

See also

Ways to use identifyStability:

  • identifyStability(BasicList)
  • identifyStability(Matrix,List)

For the programmer

The object identifyStability is a method function with options.


The source of this document is in /build/reproducible-path/macaulay2-1.25.06+ds/M2/Macaulay2/packages/Oscillators/Documentation.m2:542:0.