Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Subcritical Pitchfork Bifurcation

  1. Sep 16, 2011 #1
    The problem statement, all variables and given/known data

    Consider the system dx/dt = rx + x^3 - x^5, which exhibits a subcritical pitchfork bifurcation.
    a) Find algebraic expressions for all the fixed points.
    b) Calculate r_s, the parameter value at which the nonzero fixed points are born in a saddle-node bifurcation.

    The attempt at a solution

    x* = 0 and x* = ±√½±½√4r+1.
  2. jcsd
  3. Sep 16, 2011 #2
    For (b), why not check out the Wikipedia reference on pitchfork bifurcation, check all those derivatives and determine which value of r satisfies them. That's not too hard right? Then if you want to and you're into Mathematica, check out this code which draws the slope field and bifurcation diagram. Experiment with it to see how the fixed points are created and destroyed at the bifurcation point:

    Code (Text):
    myStableVals = {};
    myUnstableVals = {};

    For[r2 = -1, r2 <= 1, r2 += 0.01, {thereals = Select[x /. Solve[r2*x + x^3 - x^5 == 0, x], Element[#1, Reals] & ]; rlen = Length[thereals];
         For[i = 1, i <= rlen, i++, {If[(r2 + 3*x^2 - 5*x^4 /. x -> thereals[[i]]) <= 0, myStableVals = Append[myStableVals, {r2, thereals[[i]]}],
             myUnstableVals = Append[myUnstableVals, {r2, thereals[[i]]}]]; }]; }];

    lp1 = ListPlot[myStableVals, PlotRange -> {{-1, 1}, {-3, 3}}, PlotStyle -> Blue];
    lp2 = ListPlot[myUnstableVals, PlotRange -> {{-1, 1}, {-3, 3}}, PlotStyle -> Red];

    Show[{lp1, lp2}]

    Manipulate[thereals = Select[x /. Solve[r2*x + x^3 - x^5 == 0, x], Element[#1, Reals] & ];
       theeqpoints = Graphics[{Red, Thickness[0.01], (Line[{{-5, #1}, {5, #1}}] & ) /@ thereals}];
       Show[{StreamPlot[{1, r2*x + x^3 - x^5}, {t, -5, 5}, {x, -2, 2}, StreamPoints -> 45], theeqpoints}], {r2, -1, 1}]
  4. Sep 16, 2011 #3
    Thank you.
  5. Sep 16, 2011 #4


    User Avatar
    Homework Helper

    It can be instructive to simply plot [itex]rx + x^{3} - x^{5} = x ( r + x^{2} - x^{4} ) [/itex] for various values of r , knowing that the y-axis represents dx/dt . Zeroes of the polynomial for which the slope is positive represent unstable equilibria, while those with negative slope represent stable equilibria. The equilibrium point at x* = 0 is always there for any choice of r . If you check your solution for the zeroes of [itex] r + x^{2} - x^{4} [/itex], by the way, I think you'll find that your expression for the other equilibria should be
    [tex] x* = \pm[ {\frac{1}{2}} \pm \frac{1}{2} \cdot \sqrt{1 + 4r} ]^{1/2} .[/tex]
    [EDIT: as I re-read this, I guess that is what you intend, but your expression would benefit from the insertion of some parentheses.]

    There are actually three cases to consider:

    (1) for large positive r , the "minus" within the square bracket is inapplicable because it makes the term under the "main square root" negative; in this case there are only two zeroes for dx/dt besides x* = 0 ;

    there is a critical value of r (what is it?) where the situation changes and we have

    (2) the "minus" become admissible, so there are now four zeroes for dx/dt , in addition to the one at x* = 0 ; also, look at what happens to the nature of the equilibrium at x* = 0 ;

    finally, there is another critical value of r (what is this?) where

    (3) just at that value, the number of zeroes other than x* = 0 is three again, but beyond that value, the expression under the "inner square root" is negative, permitting no other zero besides x* = 0 .

    The approach of plotting the direction field, which jackmell suggested, is certainly also useful and illustrative, but analysis of the function for dx/dt can pinpoint critical values of parameters (if the function isn't too "hairy"), and will also aid in interpreting what the direction field plots are showing us.
    Last edited: Sep 17, 2011
  6. Sep 17, 2011 #5
    Ok, that's better. Thanks. Wish to point out that this equation is just a cross-section of a more general expression:


    which exhibits the butterfly catastrophe, one of the seven elementary catastrophies in Catastrophe Theory. I tried to plot the equilibrium surface for:


    via the Mathematica code:
    Code (Text):

    thesheet = x /. Solve[-x^5 + x^3 + 3*u*x^2 + r*x == 0, x];
    Plot3D[Evaluate[thesheet], {u, -1, 1}, {r, -3, 3}, PlotPoints -> 75, BoxRatios -> {1, 1, 1}]

    below but can't do a nice job. The bifurcation diagram I mentioned in my first post is just a cross-section of this plot.

    Not trying to out-do Dynamic up there. Just pointing out to the young students in here that in my opinion, many of the puzzling phenomena in our world can be framed within the context of Catastrophe Theory and equations like this so you guys might want to consider studying them. That's one reason I do. :)

    Attached Files:

    Last edited: Sep 17, 2011
  7. Sep 17, 2011 #6


    User Avatar
    Homework Helper

    Thank you for this additional remark. There are many useful ways to visualize the behavior of dynamical systems, and I appreciate your providing the description via catastrophe theory. (CT is little emphasized in what I have been reading, so I found this alternative approach of interest.)

    [Incidentally, in my post (#4), for case (3), that should read, "... other than x* = 0 is two again, ..." . I just missed the 700-minute deadline for fixing the error up there.]
    Last edited: Sep 17, 2011
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook