## Section 3.6: Bifurcations - Imperfect bifurcations and catastrophes

Section 3.6: Bifurcations - Imperfect bifurcations and catastrophes

OK, where were we? We have been looking at a seemingly very simple differential equation which has two parameters, and

h

r

x

3

x

We know how to find fixed-points of a differential equation, and we have been finding these for different values of and then plotting the fixed points in on a graph as a function of This was what we had the last time

h

x

r.

In[]:=

pl[h_]:=Module[{topl,r},sol[r_]:=x/.NSolve[h+rx-0,x];topl=If[h0,Show[Plot[0,{r,-2,0},PlotStyle{Thick,Black},PlotRange{{-2,4},{-2.2,2.2}},AxesLabel(Style[#,20]&/@{"r","x"}),AspectRatio1],Plot[0,

3

x

r

,-r

,{r,0,4},PlotStyle{{Thick,Black,Dashed},{Thick,Black},{Thick,Black}},AxesLabel(Style[#,20]&/@{"r","x"}),AspectRatio1]],Plot[Evaluate[sol[r]],{r,-2,4},PlotStyle{Black,Black,{Black,Dashed}},AxesLabel(Style[#,20]&/@{"r","x"}),AspectRatio1]];Clear[sol];topl]In[]:=

Manipulate[pl[h],{{h,0},-1,1},SaveDefinitionsTrue]

Out[]=

In this case we are changing and seeing what happens to the fixed points. We can think of this as slicing through a surface where there is a new dimension. How about plotting this in three dimensions, ie. as the fixed points of as a function of :

h

h

x

randh

In[]:=

plot2=Module[{h,r,x,sol},sol=x/.Solve[h+rx-0,x]//Simplify;Show[Plot3D[Chop[sol],{r,-2,-0.01},{h,-1,1},PlotStyle{Lighter[Blue],Opacity[0.8]}],Plot3D[Chop[sol],{r,0.01,4},{h,-1,1},PlotStyle{Lighter[Blue],Opacity[0.8]}],BoxRatios1,AxesLabel(Style[#,20]&/@{"r","h","x"})]]

3

x

Out[]=

You should be able to rotate the figure to see it from all angles. Note that here we haven’t said what is a stable and what is an unstable fixed point.

ok, there is a lot going on here! Don’t worry if this isn’t making sense at all yet.

Let’s do a bit of a sanity check here. Let’s take a slice through here at, say h=0, and see what we have:

In[]:=

plotslice=Module[{r,x,h,sol},Show[plot2,ParametricPlot3D[{r,0,x},{r,-2,4},{x,-2,2},MeshNone,PlotStyle{Opacity[0.5],Red}],ParametricPlot3D[{r,0,0},{r,0,4},PlotStyle{Black,Thick,Dashed}],ParametricPlot3D[r,0,

r

,{r,-2,4},PlotStyle{Black,Thick}],ParametricPlot3D[{r,0,0},{r,-2,0},PlotStyle{Black,Thick}],ParametricPlot3D[r,0,-r

,{r,-2,4},PlotStyle{Black,Thick}]]]Out[]=

If you look at the intersection between the plane of h=0 and the surface that we’ve just created, you will see that it gives the plot for h=0 we’ve seen before.

And if we look at h close to -1?

In[]:=

plotslice2=Module[{r,h,x,sol},sol[r_]:=x/.NSolve[-1+rx-0,x];Show[plot2,ParametricPlot3D[{r,-1,x},{r,-2,4},{x,-2,2},MeshNone,PlotStyle{Opacity[0.5],Red}],ParametricPlot3D[Evaluate[{r,-1,#}&/@Evaluate[sol[r]]],{r,-2,4},PlotStyle{Black,Black,{Black,Dashed}},AxesLabel(Style[#,20]&/@{"r","x"}),AspectRatio1]]]

3

x

Out[]=

or h=1:

In[]:=

plotslice2=Module[{r,h,x,sol},sol[r_]:=x/.NSolve[1+rx-0,x];Show[plot2,ParametricPlot3D[{r,1,x},{r,-2,4},{x,-2,2},MeshNone,PlotStyle{Opacity[0.5],Red}],ParametricPlot3D[Evaluate[{r,1,#}&/@Evaluate[sol[r]]],{r,-2,4},PlotStyle{Black,Black,{Black,Dashed}},AxesLabel(Style[#,20]&/@{"r","x"}),AspectRatio1]]]

3

x

Out[]=

This strange surface that we’ve plotted looks a bit like a folded piece of cloth. Let’s look at a clearer drawing of it, taken from Steven Strogatz’s book on Nonlinear Dynamics and Chaos:

There’s something very interesting that happens here though if we want to move back in the other direction.

What happens if now you start to increase r again? Well, you will actually find that you stick on the upper branch. You won’t suddenly jump back. This means that if the parameter changes even a tiny bit, you may well find that you are never able to get back to the situation that you were in before.

In fact the easiest way to see what is going on here is in terms of a potential. Imagine that you are sat at the bottom of the stable minimum on the left, and you decrease r, from 2.6 down to a little less than 0 and then up again. You will find that as you pass r is 2, you will go into the situation where there is only one minimum, and then as you increase r again, you will stay in the right hand minimum. If you are then in that new minimum, it’s really hard to get out again...there’s a great big maximum sitting in your way.

OK, there’s another way of plotting all of this. Let’s look at the surface from above:

Exercise for you: One can model the population of insects by:

which is now a differential equation with just two free parameters. See how far you can get in showing that this also has a cusp catastrophe.

There is a nice explanation of this example here but I’d like you to have a go at it yourself first. Have a watch of it, and see if you can understand the behaviour as you change the different parameters. In particular look at around 25 minutes to see the change as you slowly increase the reproductive rate of the population and how an insect outbreak can suddenly occur.

There is a nice explanation of this example here but I’d like you to have a go at it yourself first. Have a watch of it, and see if you can understand the behaviour as you change the different parameters. In particular look at around 25 minutes to see the change as you slowly increase the reproductive rate of the population and how an insect outbreak can suddenly occur.