Matcont: ACM Transactions On Mathematical Software June 2003
Matcont: ACM Transactions On Mathematical Software June 2003
Matcont: ACM Transactions On Mathematical Software June 2003
net/publication/277671019
MATCONT
CITATIONS READS
377 577
3 authors:
Yu. A. Kuznetsov
Utrecht University
137 PUBLICATIONS 9,857 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Yu. A. Kuznetsov on 27 November 2017.
MATCONT is a graphical MATLAB software package for the interactive numerical study of dynamical
systems. It allows one to compute curves of equilibria, limit points, Hopf points, limit cycles, period
doubling bifurcation points of limit cycles, and fold bifurcation points of limit cycles. All curves are
computed by the same function that implements a prediction-correction continuation algorithm
based on the Moore-Penrose matrix pseudo-inverse. The continuation of bifurcation points of equi-
libria and limit cycles is based on bordering methods and minimally extended systems. Hence no
additional unknowns such as singular vectors and eigenvectors are used and no artificial sparsity
in the systems is created. The sparsity of the discretized systems for the computation of limit cy-
cles and their bifurcation points is exploited by using the standard Matlab sparse matrix methods.
The MATLAB environment makes the standard MATLAB Ordinary Differential Equations (ODE) Suite
interactively available and provides computational and visualization tools; it also eliminates the
compilation stage and so makes installation straightforward. Compared to other packages such as
AUTO and CONTENT, adding a new type of curves is easy in the MATLAB environment. We illustrate
this by a detailed description of the limit point curve type.
Categories and Subject Descriptors: G.4 [Mathematical Software]: Algorithm design and analy-
sis; User interfaces; G.1.7 [Numerical Analysis]: Ordinary differential equations; J.2 [Physical
Sciences and Engineering]: Mathematics and Statistics
General Terms: Design
Additional Key Words and Phrases: Dynamical system, bifurcation, numerical continuation
1. INTRODUCTION
1.1 Some Mathematical Prerequisites
We consider generic parameterized autonomous ordinary differential equations
(ODEs) of the form
dx
≡ ẋ = f (x, α), (1)
dt
Author’s addresses: A Dhooge and W. Govaerts, Department of Applied Mathematics and Com-
puter Science, University of Ghent, Krijgslaan 281-S9, B-9000 Ghent, Belgium; email: {Annick.
Dhooge,Willy.Govaerts@rug.ac.be; Yu. A. Kuznetsov, Mathematisch Instituut, Universiteit Utrecht,
Boedapestlaan 6, 3584 CD Utrecht, The Netherlands, and Institute of Mathematical Problems in
Biology, Pushchino, Moscow Region, 142290 Russia; email: kuznetsov@math.uu.nl.
Permission to make digital/hard copy of part or all of this work for personal or classroom use is
granted without fee provided that the copies are not made or distributed for profit or commercial
advantage, the copyright notice, the title of the publication, and its date appear, and notice is given
that copying is by permission of ACM, Inc. To copy otherwise, to republish, to post on servers, or to
redistribute to lists requires prior specific permission and/or a fee.
°
C 2003 ACM 0098-3500/03/0600-0141 $5.00
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003, Pages 141–164.
142 • Dhooge et al.
and b, c ∈ Rn , d ∈ R are chosen such that the matrix in Equation (5) is non-
singular. An advantage of this method is that the derivatives of g with respect
to x and α can be obtained easily from the derivatives of f x . The method also
avoids the scaling problems [Govaerts 2000, §4.1.2].
There are several interactive software packages for analysis of dynamical sys-
tems defined by ODEs. The most widely used are
These packages are mostly used at universities (in mathematics, physics, bi-
ology, and other departments). In industry, their usage is limited to chemical
engineering and some aerospace research. The main reason for this is that all of
these packages do not fit well into the standard engineering software environ-
ment. No one of these packages covers the whole range of solution types, while
data exchange between them is practically impossible due to individual data
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
MATCONT • 145
formats. They do not represent the results of the analysis in a form suitable for
standard control, identification, and visualization software.
We note that several existing packages use MATLAB in dynamical system com-
putations. Arnold and Polking [1999] described the use of simulation techniques
and invariant curve computations in MATLAB, and provided a software tool PPLANE
[Polking 1997–2003] for two-dimensional vector fields. Choe and Guckenheimer
[2000] described guidelines for building an interface between MATLAB and dy-
namic tools, mainly oriented toward the use of AUTO. De Feo [2000] provided a
tool MPLAUT to visualize the output of AUTO in MATLAB. Engelborghs et al. [2002]
described a nongraphical but very extensive MATLAB package DDE-BIFTOOL to com-
pute bifurcations of delay differential equations.
MATCONT is free MATLAB software available for download at
http://allserv.rug.ac.be/~ajdhooge/research.html.
The aim of the MATLAB software package MATCONT is to provide an interactive en-
vironment primarily designed for the continuation and normal form analysis
of dynamical systems. This analysis is complementary to the simulation of the
systems (which is also included in the package) and allows for more compre-
hensive understanding of their dynamics; it can be used in their identification,
control, and optimization.
MATCONT implements a starter-generator-processor technique to compute dif-
ferent solutions to a dynamical system and to switch between them. Its com-
putational kernel supports numerical continuation of regular curves implicitly
specified by defining functions in a continuation space. It monitors scalar test
functions, along a curve, and detects and locates critical parameter values,
where these functions change sign. Such bifurcation points are processed using
normal form computation to generate initial data for the continuation of other
solution curves. All these subroutines are programmed in MATLAB in terms of
the system right-hand sides and their partial derivatives.
MATCONT is a package under development that started with two master’s the-
ses [Riet 2000; Mestrom 2002]. In many respects it is similar to CONTENT, which
can be considered as a prototype for MATCONT. However, MATCONT is being com-
pletely redesigned and reimplemented to exploit the power of MATLAB. It is being
developed in parallel with the Continuation Toolbox CL MATCONT [Dhooge et al.
2000–2002], a package of routines that can be used from the MATLAB command
line. We note that CL MATCONT can be used in Matlab 5.3 while MATCONT requires
at least Matlab 6. CL MATCONT is more general in the sense that it can also be
used for other purposes, for example, the continuation of solutions to parame-
terized partial differential equations (PDEs) (upon a discretization).
The following functions are supported by the present version of MATCONT:
(1) specification of the initial solution to start the continuation (either by se-
lecting a previously computed solution or by on-line specification of a new
solution);
(2) selecting the solution type to continue;
(3) setting and modifying numerical parameters of the computation method
specific to the selected initial point and solution type;
(4) activating detection of possible bifurcations and user-defined functions;
(5) starting computation/browsing, allowing for termination and pausing;
(6) manipulating the database of computed results by deleting or renaming the
output files of the computations; and
(7) setting options for graphic windows to represent the computed solution
during and after the computation.
A+ = AT (AAT )−1 .
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
MATCONT • 147
For the next point x (i+1) ∈ R N +1 on the curve, one could solve
(
F (x) = 0,
vT (x − X 0 ) = 0,
where Fx (X 0 )V 0 = 0. Thus
x = X 0 − Fx+ (X 0 )F (X 0 ),
leading to the so called Moore-Penrose corrections:
X k+1 = X k − Fx+ (X k ) f (X k ), k = 0, 1, 2, . . .
(see Figure 1). Note that V k ∈ R N +1 satisfying Fx (X k )V k = 0 can be used
to compute Fx+ (X k ) efficiently with the help of Equation (6). However, V k is
unknown and is approximated in MATCONT by a vector V k satisfying
Fx (X k−1 )V k = 0, V 0 = v(i) .
This yields the correction algorithm shown in Figure 2.
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
148 • Dhooge et al.
where c < 1 < C and kthr < kmax are certain constants.
— Continuer,
— GUI, and
— Systems.
Furthermore, there are directories specific to each type of curve that can be
computed (except Orbits). These include at least the following:
— Equilibrium,
— LimitPoint,
— Hopf,
— LimitCycle,
— PeriodDoubling, and
— LimitPointCycle.
Hopf points, respectively. The structure lds, contains those for the continutation
of either limit cycles or period doubling bifurcation points of limit cycles. These
global variables also allow computational routines to share information.
The database of Computed Objects and Curves and the database of System
Descriptions are in the directory Systems. This directory contains a MATLAB
mat-file session.mat in which the GUI information is stored as it was left when
exiting MATCONT in the previous session. When restarting MATCONT, this file is
loaded and the exit situation of the previous session is restored. The file ses-
sion.mat contains the global variable sys of cont that is discussed in Section 5.
Information on computed objects and curves is also stored by MATCONT in the
directory Systems. For each studied system, say adapt2, the directory Systems
contains an m-file adapt2.m that contains the definition of the system, a mat-
file adapt2.mat in which the structure gds of the previous run of MATCONT with
the system adapt2 is stored and a directory adapt2 with information on the
curves is computed for the system adapt2.
To understand the nomenclature, we note that MATCONT distinguishes several
types of objects, among which (the list is growing) are the following:
— Point: label P,
— Equilibrium: label EP,
— Limit Point: label LP,
— Hopf Point: label H,
— Bogdanov-Takens Point: label BT,
— Zero-Hopf Point: label ZH,
— Double Hopf Point: label DH,
— Cusp Point: label CP,
— Generalized Hopf Point: label GH,
— Limit Cycle: label LC,
— Period Doubling Bifurcation of Limit Cycles: label PD,
— Limit Point of Cycles: label LPC, and
— Torus Bifurcation of Cycles: label NS.
MATCONT also distinguishes several types of curves. The list contains at present:
Orbits (label: O), Equilibrium, Limit Point, Hopf Point, Limit Cycle, Period
Doubling Bifurcation Point of Limit Cycles and Limit Point of Cycles. All these
labels have the same meaning as in CONTENT (see, e.g., Kuznetsov [1998] for a
theoretical background).
The curve type Orbit is special because it is computed by an Integrator rou-
tine while all other curves are computed by the Continuer.
In the subdirectory adapt2 of Systems, the curves computed for the system
adapt2 are stored as mat-files. This first includes the string variables point
and ctype that denote, respectively, the type of the starting point of the curve
and the type of the curve. For example, the combination H-LC indicates that
the curve is a curve of limit cycles which was started from a Hopf point. These
labels are also used to name the file of the computed curve. For example, the
first curve of the system adapt2 with labels H-LC is stored in the file H-LC(1)
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
152 • Dhooge et al.
the subdirectory adapt2 of Systems. These names also appear in the SelectPoint
window, where the user has the option of renaming the curves.
Also, for each computed curve the arrays x,v and the array of structures
s are stored. Here x is simply the list of computed points, each column cor-
responding to a point. Similarly, v is the list of tangent vectors in the same
points. s is a one-dimensional array, each element of which is a structure that
corresponds to a special point on the curve. This structure has the following
fields :
— s.index: index of the singularity point in x and v.
— s.label: label of the singularity point, for example, LP, H.
— s.msg: a string that contains a message for this type of singularity.
— s.data: any kind of information that is useful in the further processing of this
type of singularity. For example, for Hopf points the critical eigenvalues, the
corresponding eigenvectors or the first Lyapunov coefficient might be stored
here.
Next, cds and the curve-type related global structures such as eds, lds, . . . ,
are stored. This allows the recovery of the values of the fixed parameters, the
location (in the parameter vector) of the free parameters, and the computational
settings and constants of the run.
4. THE GUI
The GUI is partially developed with GUIDE (the standard tool within MATLAB).
This tool can only be used for windows that remain fixed. For example, the
Continuer window was generated with GUIDE but the Starter window was
created manually because its layout depends on the type of the curve.
To illustrate the working of the GUI, we consider the question: How does
the GUI know what type of point the user has selected? Every object in the
windows of the GUI has a tag. If one selects Point and then Hopf in the main
MATCONT window, the following call will be made:
will be executed. This part selects the appropriate initializer and starts the
Continuer. Thus, the following commands will be executed:
[x0,v0]=init_H_LC(gds.system,x0,par,gds.options.ActiveParams,
gds.amplitude,gds.discretization.ntst,gds.discretization.ncol);
[x,v,s,h,f]=cont(’limitcycle’,x0,v0,gds.options);
must not vanish. If S(i, j ) is not 0 or 1, then the test function is not relevant to
the bifurcation. An example is given in Section 6.
For every single run, the user can choose the bifurcation to be detected on
the computed curve; these are the active bifurcations. Using this information
and the Singularity Matrix, the Continuer makes a list of test functions that
are to be monitored; these are the active test functions.
A vector of values of active test functions is computed at every computed point
along the curve and compared with the vector in the previous point. If there
are no sign changes, then no further action is taken. If there are sign changes,
then the active bifurcations are considered consecutively. Suppose that j is the
index of an active bifurcation. If there is a test function ti for which S(i, j ) = 0
and ti does not change sign, then there is no further action with regard to
bifurcation j . In the opposite case, the next step is to locate the zeros of all test
functions ti for which S(i, j ) = 0 by a bisection method. If this process fails to
converge for at least one test function, then an error message is printed and
no further action is taken. In the opposite case, the distance between the zeros
is considered. If it is larger than a certain threshold, then no further action is
taken. If the distance is smaller than the threshold, then the located points are
merged by simply taking arithmetic means of their coordinate values. If the
absolute value of one of the test functions ti for which S(i, j ) = 1 is larger than
a given threshold, then no further action is taken. In the remaining case, the
bifurcation is declared to have been detected and the located point is stored,
appropriately labeled, and considered as a “special point” on the curve.
We note that there are exceptional cases where the location of bifurcation
points by the above standard method may be problematic. This is mainly the
case if the bifurcation itself is nongeneric and appears because the dynamical
system has a special structure or symmetries. A typical example is the appear-
ance of a branching point on a curve of equilibria in the presence of symmetry.
To overcome this difficulty, a special “locator” algorithm can be provided in the
Description of Curve Type.
The computation of curves of Limit Points and Hopf points is based on the
bordered Jacobian and bordered squared Jacobian methods, respectively, as
described in Govaerts et al. [1998] and implemented in CONTENT.
For the computation of limit cycles, a discretization based on orthogonal col-
location [Ascher et al. 1979; De Boor and Swartz 1973; Russell and Christiansen
1978] is used, essentially the same as in AUTO and CONTENT. The algorithms for
the continuation of period doubling and fold bifurcation points of limit cycles
are new; they have been analyzed in detail in [Doedel et al. 2003] but have
never before been implemented in any standard software.
— Introduce a directory LimitPoint and set the path, that is, add a line
addpath([cd ’/LimitPoint/’]); to the file matcont.m.
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
156 • Dhooge et al.
— Introduce a structure lpds that will be global in cont.m and the computational
routines in the LimitPoint directory.
— Write the initializers that allow to start the curve from the appropriate start-
ing points; in this case only a LimitPoint fits the description. The correspond-
ing file is called init LP LP.m.
— Write the computational routine, a MATLAB m-file named limitpoint.m that
defines Limit Points.
— Make a file LP.m to handle the new type of curves in MATCONT. LP.m contains
the information about the appearance of the LP-related windows in the GUI.
We note that, for example, the starter windows for the LP and LC curves are
different.
We now go into detail. Since the bordering vectors are essential in the defi-
nition of the LP points, they are included in lpds. The fields lpds.borders.v,
lpds.borders.w contain approximations vbor , wbor to the right and left singular
vectors of the Jacobian matrix of the system in a LP point, respectively. They
are kept constant during the computation of a continuation point and during
the processing of special points; however, they can be adapted between such
tasks. The main task of init LP LP.m is, in fact, to initialize these two vectors.
In the file limitpoint.m, we have to provide the possibility to compute the
defining system for Limit Points by the call limitpoint(X) where X is a vector
of doubles (which contains the state variables of (1) and two free parameters).
Now an LP point is characterized by the fact that it is an equilibrium and that
the scalar g , defined by solving
à !µ ¶ à !
f x wbor v 0n
= , (8)
T
vbor 0 g 1
is zero (v is an n-vector). The output of a call to limitpoint(X) is a vector with
n + 1 components, namely:
µ ¶
f (x, α)
.
g
In the file limitpoint.m, we also have to provide the possibility to compute
the derivatives of the defining system for Limit Points with respect to the state
variables and active parameters by the call limitpoint(’jacobian’,X). Now
the derivatives of the first n components, that is, the equilibrium equations, are
simply the Jacobian values. The derivatives of g are given by
g z = −w T ( f x )z v,
where z is a state variable or an active parameter and w is obtained by solving
à !µ ¶ à !
f xT vbor w 0n
= , (9)
T
wbor 0 g 1
the transposed system of Equation (8) [Govaerts 2000, §4.1.2].
There is no need for the values of the Hessian of limitpoint(x), so we can
leave the content of limitpoint(’hessian’,X) empty.
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
MATCONT • 157
Fig. 4. Example of the Main, Continuer, EP-Starter, and Stop windows of MATCONT.
instead. In Figure 5, the first-order derivatives are input by the user while the
second-order derivatives are read from file.
Another possible action from the MATCONT Main window is to select an initial
point. This opens the SelectPoint window where the user gets a list of computed
curves and special points found on these curves. The first and last points on
each curve are also considered special. In the SelectCurve window, the user can
delete or rename curves.
Suppose that in our example a curve of limit cycles is to be started from the
Hopf point detected in the run presented in Figure 4. Then the user selects
“initial point” from the Type menu of the MATCONT Main window. This offers
a menu of curves consisting of possible types of initial points where the user
chooses Hopf from the EP EP(3) curve. The default curve to start from a Hopf
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
160 • Dhooge et al.
point is an LC curve (selecting Type menu of the Main window leads to the
choice between a Hopf curve and a LimitCycle curve). The Starter window and
the Continuer window for limit cycles now appear. The former contains fields
with the initial values for the state variables and parameters of the problem,
the increment value (used in the finite difference approximations if any are
needed), and the number of test intervals and collocation points for the dis-
cretization of the limit cycles. Also, there are buttons that allow choosing which
bifurcations are to be detected and whether or not multipliers will be com-
puted. The Continuer window contains parameter and threshold values for the
Continuer routine and the maximum number of points to be computed. The
numbers in the fields Adapt and ClosedCurve indicate after how many points
the adapter routine and the check for a closed curve will be called (a zero means
no call at all). All these fields are prefilled with values that are either defaults
or filled in previous runs or from selecting an initial point.
The computations are started by clicking the “compute” button on the Main
window. In most cases, a curve can be continued in one of two directions;
therefore a further choice between forward and backward is offered. In a few
cases, like starting a LimitCycle curve from a Hopf point, only one direction is
meaningful and, therefore, forward and backward have the same meaning.
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
MATCONT • 161
Fig. 6. Doubled period limit cycle curve started from a Period Doubling bifurcation point.
The output of the computations can be presented in real time either in nu-
meric form or in 2D or 3D graphical form by clicking the “window” button on the
Main window. In Figure 6 a 3D plot is presented. It is the result of the LimitCy-
cle continuation started from a PD point detected in the previously described
LimitCycle continuation started from a Hopf point.
The user can interact with the computations in two ways. First, the Main
window has a field options that allow one to choose the pause mode. The Contin-
uer can pause after each computed point, at special points only (the default) or
not at all. Second, starting the computations automatically opens a small win-
dow in the bottom left corner of the screen with buttons “pause,” “resume,” and
“stop” (moved to the right in Figure 2). Pressing these buttons during the com-
putation has the corresponding effect on the ongoing computations. In Figure 4
the status is “pause” because a special point is detected. The user can stop or re-
sume the continuation by pressing the “stop” or “resume” button, respectively.
The “pause,” “resume,” and “stop” buttons can also be invoked by pressing a
corresponding accelerator key.
APPENDIX
A. THE GDS FIELDS IN MATCONT
gds = gds.options =
coordinates: 4x2 cell InitStepsize: []
parameters: 9x2 cell MinStepsize: []
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
162 • Dhooge et al.
APPENDIX
B. THE CDS FIELDS IN MATCONT
cds = cds.options =
curve: ’equilibrium’ InitStepsize: []
ndim: 5 MinStepsize: []
options: [1x1 struct] MaxStepsize: 1
h: 1 MaxCorrIters: 10
h max: 1 MaxNewtonIters: 3
h min: 1.0000e-005 MaxTestIters: 10
pJac: [4x5 double] MoorePenrose: 1
pJacX: [5x1 double] SymDerivative: 0
h inc fac: 1.3000 SymDerivativeP: 0
h dec fac: 0.5000 Increment: 1.0000e-005
nActTest: 3 FunTolerance: 1.0000e-006
S: [3x3 double] VarTolerance: 1.0000e-006
nSing: 3 TestTolerance: 1.0000e-005
nTest: 3 Singularities: 1
ActSing: [1 2 3] MaxNumPoints: 300
nActSing: 3 Backward: 0
ActTest: [1 2 3] CheckClosed: []
ACM Transactions on Mathematical Software, Vol. 29, No. 2, June 2003.
MATCONT • 163
ACKNOWLEDGMENT
The authors thank Oscar De Feo (EPFL, Lausanne, Switzerland) for several
helpful remarks.
REFERENCES
ALLGOWER, E. L. AND GEORG, K. 1996. Numerical path following. In Handbook of Numerical Anal-
ysis 5, P. G. Ciarlet and J. L. Lions, Eds. North-Holland, Amsterdam, The Neatherlands.
ARNOLD, D. AND POLKING, J. C. 1999. Ordinary Differential Equations using MATLAB, 2nd ed.
Prentice-Hall, Englewood Cliffs, NJ.
ASCHER, U. M., CHRISTIANSEN, J., AND RUSSELL, R. D. 1979. A collocation solver for mixed order
systems of boundary value problems. Math. Comp. 33, 146, 659–679.
BACK, A., GUCKENHEIMER, J., MYERS, M. R., WICKLIN, F. J., AND WORFOLK, P. A. 1992. DSTOOL: Com-
puter assisted exploration of dynamical systems. Notices Amer. Math. Soc. 39, April, 303–309.
BEYN, W.-J., CHAMPNEYS, A., DOEDEL, E., GOVAERTS, W., KUZNETSOV, YU. A., AND SANDSTEDE, B. 2002.
Numerical continuation, and computation of normal forms. In Handbook of Dynamical Systems,
Vol. II, B. Fiedler, ed. Elsevier, Amsterdam, The Netherlands, 149–219.
CHOE, W. G. AND GUCKENHEIMER, J. 2000. Using dynamical system tools in MATLAB. In Numerical
Methods for Bifurcation Problems and Large-Scale Dynamical Systems, IMA Vol. 119, E. J. Doedel
and L. S. Tuckerman, Eds. Springer, New York, NY. 85–113.
DE BOOR, C. AND SWARTZ, B. 1973. Collocation at Gaussian points. SIAM J. Numer. Anal. 10, 4,
582–606.
DE FEO, O. 2000. MPLAUT: A MATLAB visualization software for AUTO97. EPFL, Lausanne,
Switzerland. Available at http://www.math.uu.nl/people/kuznet/cm.
DHOOGE, A., GOVAERTS, W., KUZNETSOV, YU. A., MESTROM, W., AND RIET, A. 2000–2002. CL MATCONT :
A Continuation Toolbox in MATLAB. In Proceedings of the 2003 ACM Symposium on Applied
Computing (Melbourne, FL), 161–166. Software available at: http://www.math.uu.nl/people/
kuznet/cm.
DOEDEL, E. J., CHAMPNEYS, A. R., FAIRGRIEVE, T. F., KUZNETSOV, YU. A., SANDSTEDE, B., AND WANG,
X. J. 1997. AUTO97: Continuation and bifurcation software for ordinary differential equa-
tions (with HomCont), user’s guide. Concordia University, Montreal, P.Q., Canada. Available
at http://indy.cs.concordia.ca.
DOEDEL, E., GOVAERTS, W., AND KUZNETSOV, YU. A. 2003. Computation of periodic solution bifurca-
tions in ODEs using bordered systems. SIAM J. Numer. Anal. To appear.
DOEDEL, E. J., KELLER, H. B., AND KERNÉVEZ, J. P. 1991. Numerical analysis and control of bifurca-
tion problems I : Bifurcation in finite dimensions. Int. J. Bifurc. Chaos 1, 3, 493–520.
ENGELBORGHS, K., LUZYANINA, T., AND ROOSE, D. 2002. Numerical bifurcation analysis of delay dif-
ferential equations using DDE-BIFTOOL. ACM Trans. Math. Softw. 28, 1, 1–21.
ERMENTROUT, B. 2002. Simulating, Analyzing and Animating Dynamical Systems, a Guide to XP-
PAUT for Researchers and Students. SIAM Publications, Philadelphia, PA.
GOVAERTS, W., KUZNETSOV, YU. A., AND SIJNAVE, B. 1998. Implementation of Hopf and double Hopf
continuation using bordering methods. ACM Trans. Math. Softw. 24, 4, 418–436.
GOVAERTS, W. 2000. Numerical Methods for Bifurcations of Dynamical Equilibria. SIAM Publica-
tions, Philadelphia, PA.
GUCKENHEIMER, J. AND HOLMES, P. 1983. Nonlinear Oscillations, Dynamical Systems, and Bifurca-
tions of Vector Fields, Applied Mathematical Sciences 42. Springer-Verlag, New York, NY.
HENDERSON, M. 2002. Multiple parameter continuation: Computing implicitly defined k-
manifolds. Int. J. Bifurcation Chaos 12, 3 451–476.
KELLER, H. B. 1977. Numerical solution of bifurcation and nonlinear eigenvalue problems. Appli-
cations of Bifurcation Theory. Academic Press, New York, NY., 359–384.
KHIBNIK, A. I., KUZNETSOV, YU. A., LEVITIN, V. V., AND NIKOLAEV, E. V. 1993. Continuation techniques
and interactive software for bifurcation analysis of ODEs and iterated maps. Physica D 62, 1–4,
360–371.
KUZNETSOV, YU. A. 1995/1998. Elements of Applied Bifurcation Theory, Applied Mathematical Sci-
ences 112. Springer-Verlag, New York, NY.
KUZNETSOV, YU. A. AND LEVITIN, V. V. 1995–1997. CONTENT: A multiplatform environment for ana-
lyzing dynamical systems. Dynamical Systems Laboratory, CWI, Amsterdam, The Netherlands.
Available at ftp.cwi.nl/pub/CONTENT.
MESTROM, W. 2002. Continuation of limit cycles in MATLAB. Master’s thesis. Mathematical Insti-
tute, Utrecht University, Utrecht, The Netherlands.
POLKING, J. C. 1997–2003. dfield and pplane software. Available at http://math.rice.edu/∼
dfield.
RIET, A. 2000. A continuation toolbox in MATLAB. Master’s thesis. Mathematical Institute, Utrecht
University, Utrecht, The Netherlands.
RUSSELL, R. D. AND CHRISTIANSEN, J. 1978. Adaptive mesh selection strategies for solving boundary
value problems. SIAM J. Numer. Anal. 15, 1, 59–80.
SHAMPINE, L. F. AND REICHELT, M. W. 1997. The MATLAB ODE suite. SIAM J. Sci. Compt. 18, 1, 1–22.