Application Center - Maplesoft

App Preview:

Lesson 6: Bifurcations

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

Lesson06.mw

ORDINARY DIFFERENTIAL EQUATIONS POWERTOOL

Lesson 6 -- Bifurcations

Prof. Douglas B. Meade

Industrial Mathematics Institute

Department of Mathematics

University of South Carolina

Columbia, SC 29208

URL:   http://www.math.sc.edu/~meade/

E-mail: meade@math.sc.edu

Copyright  2001  by Douglas B. Meade

All rights reserved

-------------------------------------------------------------------

>

Outline of Lesson 6

6.A Graphical Approaches to Bifurcation

                6.A-1 Animated Direction Fields and Solution Curves

                6.A-2 Bifurcation Diagram

6.B Analytic Determination of Bifurcation Points

>

Initialization

> restart;

> with( DEtools ):

> with( plots ):

Warning, the name changecoords has been redefined

>

6.A Graphical Approaches to Bifurcation

The solution of a differential equation that contains a parameter will depend in some intrinsic way on the value of this parameter.  As the parameter varies, the nature of the solution may indeed vary also.  For example, the number, location, and stability of equilibrium solutions may change with changing values of the parameter.  Such changes in the nature and behavior of solutions changes are called bifurcations, and the location of such points in a space of parameter and dependent variable are called bifurcation points.

By way of clarification of these ideas, consider the one-parameter family of functions

> f := y^2 - 2*y + mu;

f := y^2-2*y+mu

>

in the differential equation

> ode := diff( y(t), t ) = eval( f, y=y(t) );

ode := diff(y(t), t) = y(t)^2-2*y(t)+mu

>

6.A-1 Animated Direction Fields and Solution Curves

For each of the following values of the parameter mu ,

> PARAM := [ seq( i/2, i=-8..8 ) ];

PARAM := [-4, (-7)/2, -3, (-5)/2, -2, (-3)/2, -1, (-1)/2, 0, 1/2, 1, 3/2, 2, 5/2, 3, 7/2, 4]

>

the differential equation

diff(y(t), t) = y(t)^2-2*y(t)+mu

has a solution y(t) , and perhaps some equilibrium solutions.  If a phase portrait is generated for each value of the parameter listed above, an animation can be constructed of the transition that occurs as the parameter changes.  The impact of this animation will be enhanced if all equilibria for each value of the parameter are included in the list of initial conditions.  This is accomplished by the following Maple calculation.

 

> IC := { seq( [0,i], i=-5..5 ) }:

> for mu in PARAM do

>  yROOT := solve( f=0, y );

>  yROOT2 := remove( has, {yROOT}, I );

>  IC := IC union { seq( [0,y0], y0 = yROOT2 ) };

> od:

> unassign( 'mu' ):

>

The complete set of initial conditions is now

> IC;

{[0, 1], [0, -5], [0, -4], [0, -3], [0, -2], [0, -1], [0, 0], [0, 2], [0, 3], [0, 4], [0, 5], [0, 1-5^(1/2)], [0, 1+5^(1/2)], [0, 1+3/2*2^(1/2)], [0, 1-3/2*2^(1/2)], [0, 1+1/2*14^(1/2)], [0, 1-1/2*14^...{[0, 1], [0, -5], [0, -4], [0, -3], [0, -2], [0, -1], [0, 0], [0, 2], [0, 3], [0, 4], [0, 5], [0, 1-5^(1/2)], [0, 1+5^(1/2)], [0, 1+3/2*2^(1/2)], [0, 1-3/2*2^(1/2)], [0, 1+1/2*14^(1/2)], [0, 1-1/2*14^...

>

Maple Question

Note that the IC are being kept as a set , not a list .  Why is this important? (Consult the on-line help for information about sets and lists.)

>

The first frame of the animation is

> DEplot( eval(ode,mu=PARAM[1]), {y(t)}, t=0..5, y=-10..10, IC, arrows=MEDIUM );

[Plot]

>

It shows two equilimbium solutions, the upper one being unstable, and the lower one, stable.

Since there are 17 frames in the full animation it may take a considerable amount of time to complete the execution of the next command that generates the full animation.

> PLOTseq := seq( DEplot( ode, {y(t)}, t=0..5, y=-10..10, IC,

>                arrows=MEDIUM ), mu=PARAM ):

> display( PLOTseq, insequence=true );

[Plot]

>

As the parameter mu varies, the phase portrait for the corresponding differential equation exhibits two equilibrium solutions that merge into one, that then seems to disappear entirely.  There is a transition from two equilibria, to one, to none.  This is the type behavior that the term bifurcation designates.

Hence, this animation shows there is at least one bifurcation somewhere in this range of parameters.  To identify the values of the parameter where the bifurcations occur, one typically examines a bifurcation diagram (see below).

>

6.A-2 Bifurcation Diagram

Continuing the previous example, recall that the right-hand side of the ODE

> ode;

diff(y(t), t) = y(t)^2-2*y(t)+mu

>

is the function

> f;

y^2-2*y+mu

>

where mu is the parameter.  The equilibrium solutions y = c (c constant) are solutions of the equation f(y, mu) = 0 .  In general, these solutions will depend on the parameter mu , so the equation f(y, mu) = 0 defines the equilibrium solutions y(mu) implicitly.  The constant alpha will depend on the parameter mu !

A bifurcation diagram displays the equilibria of the ODE as a function of the parameter, that is, it contains a graph of y(mu) vs. mu .  Hence, the bifurcation diagram is obtained by graphing y as a function of mu as determined implicitly by the equation f(y, u) = 0 .

In Maple, such a plot, here called Figure 6.1, can be obtained with

> implicitplot( f=0, mu=-8..8, y=-4..4, style=POINT, view=[ -8..2, -4..4 ], title="Figure 6.1" );

[Plot]

>

For values of mu less than 1, there are two equilibrium solutions.  (For example, if mu = -2 , there are two intersections of the vertical line mu = -2 with the curve containing the equilibrium values.)  At mu = 1 , the two branches of the relation shown in Figure 6.1 come together at a single point.  Thus for mu = 1 , there is a single equilibrium solution, and clearly, for value of mu greater than 1, there are no equilibrium solutions.  Hence, the bifurcation value for this ODE is mu = 1 .

For a second example, consider the one-parameter family of ODEs determined by

> f := y^3 - mu*y:
ode := diff( y(t), t ) = eval( f, y=y(t) );

ode := diff(y(t), t) = y(t)^3-mu*y(t)

>

where again, mu is the parameter.

The bifurcation diagram for this example has the name "pitchfork".

> implicitplot( f=0, mu=-4..4, y=-2..2, style=POINT, axes=BOXED, title="Pitchfork Bifurcation" );

[Plot]

>

6.B Analytic Determination of Bifurcation Points

Not every equilibrium solution is a bifurcation point. For a given value of the parameter mu , a necessary condition for an equilibrium solution to be a bifurcation point is

diff(f(y, mu), y) = 0 .

Thus, equilibrium points for the ODE diff(y(t), t) = f(y(t), mu) must satisfy the equation f(y, mu) = 0 .  If an equilibrium point satisfies the additional condition  diff(f(y, mu), y) = 0 , then the equilibrium point might also be a bifurcation point.

The bifurcation points generated by the function

> f := y*(1-y)^2 + mu;

f := y*(1-y)^2+mu

>

are found by solving the equations

> bif_eq1 := f = 0;
bif_eq2 := diff( f, y ) = 0;

bif_eq1 := y*(1-y)^2+mu = 0

bif_eq2 := (1-y)^2-2*y*(1-y) = 0

>

Maple gives

> bif_sol := solve( { bif_eq1, bif_eq2 }, { mu, y } );

bif_sol := {y = 1/3, mu = (-4)/27}, {y = 1, mu = 0}

>

as the solutions, which are then expressed as the points ``(mu, y) via

> bif_pt := seq( eval([mu,y],BP), BP=[bif_sol] );

bif_pt := [(-4)/27, 1/3], [0, 1]

>

The bifurcation diagram corresponding to the ODE

> dy/dt = f;

dy/dt = y*(1-y)^2+mu

>

is given in Figure 6.2.

> bif_diag := implicitplot( f=0, mu=-2..2, y=-2..4, style=POINT ):

> bif_pt_P := plot( [bif_pt], style=POINT, color=BLUE,

>                  symbol=CROSS, symbolsize=16 ):

> display( bif_diag, bif_pt_P, axes=BOXED, title="Figure 6.2" );

>

[Plot]

>

The two potential bifurcation points are marked with blue crosses in Figure 6.2.

>

[Back to ODE Powertool Table of Contents]

>