Brief Intro to LOCBIF
LOCBIF is distributed as part of the Windows version of XPP thanks to
the kind contribution of Alex Khibnik who parted with the source code.
LOCBIF was originally a stand-alone DOS program and a recent improved
version, CONTENT . The
version here is somewhat old but still seems to work OK. AUTO is the bifurcation package that
I originally included in XPP but was unable to get the port to work in
Windows. Anyone who'd like to try should contact me.
LOCBIF vs AUTO
LOCBIF is easier to use and handles bifurcations of equilibria and
fixed points of maps better than AUTO. On the other hand, AUTO handles
boundary value problems and continuation of periodic orbits better than
LOCBIF. If you really need AUTO, you can get the native X version for Windows
of XPPAUT or switch to Linux (the recommended solution).
Introduction
LOCBIF can continue and find bifurcations for the following four types
of problems depending on parameters p with state variables
x .
- Equilibria of ODEs :
dx/dt = f(x,p)
- Fixed points of maps :
x(n+1) = f(x(n),p)
- Periodic solutions of forced systems :
dx/dt = f(x,p,t) where f(x,p,t+T)=f(x,p,t)
- Autonomous oscillations of ODEs:
dx/dt = f(x,p)
NOTE The last three types of curves are essentially the same
since the periodically forced system is equivalent to a map taking the
phase-space at t=0 to the phase-space at t=T . In the
case of an autonomous oscillation, the one forms the Poincare map and
looks at that map. Fixed points of the latter two systems correspond to
periodic solutions.
To invoke LOCBIF, you must click on File Locbif from the main
WINPP menu. You will get a window like this:
The basic objects that LOCBIF computes are curves in the product space
of the parameters and the phase space. For example, it will compute
curves of equilibria F(x,p)=0 for ODEs. Along these curves, LOCBIF
keeps track of special points where bifurcations occur. These special
points are obtained by evaluating certain bifurcation functions
the zeros of which tell you something about the system. For
example, a zero determinant tells you that there is a zero eigenvalue.
The equations for these functions along with the ODE/MAP form the
curve-defining system. So, if you want to follow the set of
equilibria where there is a zero eigenvalue, you need two parameters
since you must solve the n+1 equations:
F(x,p1,p2) = 0
det A(p1,p2) = 0
along some curve in (x,p1,p2) space.
There are many
different types bifurcations and I will refer the reader to a
comprehensive book such as Wiggins ,
Guckenheimer and Holmes or Kuznetsov.
File menu
Nothing here works yet.
Numerics
This invokes the numerics menu. There are many numerical parameters and
their suggested settings. I will briefly describe them but a
comprehensive description is best obtained from the hardcopy
documentation for the DOS version lbf.ps
Curve parameters
These are parameters for the continuation in phase-space.
- H0crv is the initial step size for continuation of the
curve.
- Hmxcrv is the maximum step allowable; make this smaller to
force smoother bifurcation curves.
- Angcrv is the desired angle between the tangent at the
current point and the secant with the previous point. Smaller angles
lead to more points per curve and smoother curves.
- DhCrv increment for numerical evaluation of Jacobian matrix
for the curve-defining system
- DhJac increment for numerical evaluation of Jacobian matrix
for the right-hand sides of the ODE/Map.
- Maxit maximal number of Newton corrections
- Modit number of Newton corrector steps above with
Jacobian re-evaluation.
- Epscrv tolerance for Newton corrector.
Set this or any of the tolerances to zero to
ignore such points.
- Epscrs tolerance for self-crossing (eg transcritical and
closed curves)
- Epszer tolerance for zeros of the
curve-defining system
- Epsext tolerance for location of extremal values of the
parameters. I often set this to 0 as it is annoying.
- Ipsrng ordering number(s) of a nongeneric parameter(s) for
continuation of non-transveral curve types. Possibilities are
1,2,3,12,13,14,23,24,34.
- Algcrv type of step size
- +/- 1: doubling/halving
- +/- 2: explicit dependence on curvature
- +/- 3: implicit dependence on curvature
Curvature test (see Angcrv ) is ignored if this parameter is
negative.
Orbit parameters
These are parameters for the LOCBIF integrators.
- Itmap number of iterations for the map or periods of
length Tint for the flows.
- Tint length of time to integrate for flows. It should
equal the period for the periodically forced system.
- H0int initial integration step size
- Hmxint maximal step size for integration
- Dhint increment for numerical Jacobian for stiff
integrator
- Epsint absolute tolerance
- Epsrel relative tolerance (make this smaller than
Epsint )
- Solver there are five internal LOCBIF solvers, the first
three are fifth order Dormund-Prince solvers, the fourth is a
Runge-Kutta type solver, and the last is a stiff solver.
- Isec the undex of the variable used for the Poincare map.
When the derivative of the Isecth variable vanishes, this is the
Poincare map used. Setting this to 0 means to automatically compute the
secant plane.
- Irhs not yet implemented
- Iorbit ignored
Plots
These items let you redraw the diagram and set the plot parameters.
Only two-dimensional plots are allowed at present. The Autoscale
check box will scale the plot to fit the diagram.
Edit
- Copy copies the plot to the clipboard
- Edit lets you save the current curve, start a new curve,
and choose from previous saved curves. Curves are presently saved in
memory and are lost when you exit the program. Only the currently
chosen curve is plotted.
- Delete lets you delete curves.
Note that by defining different curves, you can look at a system as one
parameter varies, then as a different one varies and keep them separated.
Run
Equilibria
This command lets you find equilibria and other curves as one or more
parameters varies. To start, you must have an equilibriaum point as
the initial condition in WinPP or you must start on a point you have grabbed from a prior calculation. This opens the
dialog box:
There are many different choices that you can pick here. For ordinary
equilibria, choose Equilibrium and LOCBIF will track the
equilibria as a parameter varies. Note the number in the parenthese in
each point is the number of parameters you must choose for that curve.
Suppose after computing a curve of equilibria, you find a Hopf
bifurcation. Then you can do a two-parameter continuation finding all
equilibria that are points of a Hopf bifurcation. Once you have chosen
the type of curve to follow, choose the parameters and the maximum and
minimum ranges. Finally choose a direction (+/- 1) and click on OK.
If all goes well, the diagram will be computed. You can terminate
the calculation by clicking on ABORT.
Fixed points of maps
This command lets you find fixed points of maps as a function of some
parameters and lets you trace multi-parameters curves of
Examples
These examples are from the LOCBIF manual, adopted for WINPP. Click on
the ecology model, eco.ode . This is a modification
of the Lotka-Volterra model:
x'= x(1-beta x) - x y/(1 + alpha x)
y'= -y(1+delta y) + x y/(1+alpha x)
- Find an equilibrium point by drawing the nullclines (
Phaseplane Nullclines ) and then using the mouse to start nearby
the fixed point and integrate. Click Run Last a few times to
land on the fixed point.
- Click on File Locbif to get the LOCBIF window.
The rest of this example is within the LOCBIF window.
Plots Parameters and set the X-axis to be the parameter
delta and the Y-axis to be the variable Y . Set the X
limits between 0 and 1 and the Y limits between 0 and 10. Click on
Run Equilibria. Choose Equilibrium as the Curve Type and
set the 1st parameter to be delta and the range to be between
0 and 10. Click OK and the curve of fixed points will appear.
Notice that a thick line is drawn indicating a stable branch. An error
message will occur saying computations terminated. This is just because
you exceeded the parameter bounds and is OK.
- Click on Traverse and use the arrow keys or the mouse to
trace the curve. Info is given in the window above the graph and
stability is given in the small window with a circle. Eigenvalues in
the circle are stable. Click on Home and then Grab to
get the first point. Click on Run Equilibrium again and change
the Direction to -1 and then click OK and the rest of
the branch will be computed. You will have this curve:
- Traverse it again, this time clicking on Jump to see the
special points that have been marked with a cross. The info window
tells you what they are. The three of interest are the two fold points,
indicated by the descriptor Zero Eigenvalue and the Hopf
point. The other three special points are of no interest here. Note at
the Hopf point, the info tells you that L1=-.28037E-2 Since
it is negative, this tells you there is a supercritical Hopf
bifurcation but that it is nearly vertical since L1 is small.
Now we can do a two parameter continuation of the fold points.
- Traverse the diagram and grab the first zero eigenvalue point at
delta=.26 or so. Now click Edit Edit Curves and click on
Add New This will be for two-parameter curves. Click on
Choose and then Plots Parameters Choose the Y axis to be
Alpha and let the X axis range between 0 and 3 and the Y axis
between 0 and 1. If you want, pick a color, like red. Now click OK
Click on Numerics and set the parameter
EpsExt to zero to turn off extrema calculations. Click OK
Now click on Equilibrium Run and choose Fold as the curve
type, and Alpha OK A closed curve will
be drawn (at least on my computer). This is a curve of fold points.
- Among the special points are two Neutrality points and a pair of
Cusp points. Neutrality points indicate a double zero eigenvalue as can
be seen by looking at the stability circle. We can pick up a Hopf
bifurcation from these points. Traverse and grab the first one at
delta=.006 and alpha=.86 (Use the Jump button to go
directly to special points.) Change the plot color to say Blue.
- Click on Run Equilibria and choose Hopf as the
curve type. Make the direction -1 and click OK This will draw
the curve of Hopf points. You should have this diagram:
- The intersection of the Hopf and fold points is a Takens-Bogdanov
point and there are homoclinics near by. Grab a TB point and then in WINPP
try to find some homoclinics! The cusps are also special
points. Inside the closed curve there are three fixed points and
outside, one.
Clicking on the Traverse button once you have computed a
curve, allows you to move a little cross around and information about
the points is given in the window above the graph. You can use the
mouse to move through the diagram by clicking on
- >> or the right arrow to move up the diagram
- << or the left arrow to move down the diagram
- Home to go to the start of the curve
- Jump to go to the next marked point or PgUp and
PgDn
- Directly click near a point on the curve
Then click on Grab to load this point into the initial
conditions and to set the parameters at the value corresponding to the
point. Use this to start new curves and extend old ones.
Click on Esc or type Esc to end traversing the
diagram without grabbing a point.
Bibliography
- S. Wiggins, Introduction to Applied Nonlinear Dynamical
Systems and Chaos, Springer-Verlag, NY, 1990
- J. Guckenheimer and P. Holmes, Nonlinear
Oscillations, Dynamical Systems, and Bifurcations, Springer-Verlag, NY,
1983.
- Y. Kuznetsov, Elements of Applied Bifurcation
Theory, Springer-Verlag, NY, 1995 (1998, New Edition).