What is XPP/XPPAUT?
XPP (XPPAUT is another name; I will use the two
interchangeably)
is a tool for solving
- differential
equations,
- difference
equations,
- delay equations,
- functional equations,
- boundary value
problems, and
-
stochastic equations.
It evolved
from a chapter written by John Rinzel and me on the qualitative
theory of nerve membranes and eventually became a commercial product
for MSDOS computers called PHASEPLANE. It is now available as a
program running under
X11 and Windows.
The code
brings together a number of useful algorithms and is extremely portable.
All the graphics and interface are written completely in Xlib which explains
the somewhat idiosyncratic and primitive widgets interface.
XPP contains the code for the popular bifurcation
program, AUTO . Thus, you can switch back and forth between XPP and
AUTO, using the values of one program in the other and vice-versa. I
have put a ``friendly'' face on AUTO as well. You do not need to know
much about it to play around with it.
XPP has the capabilities for handling up to 590 differential equations.
- There areover a dozen solvers including several for stiff
systems, a solver for integral equations and a symplectic solver.
- Up to 10 graphics windows can be visible at once and a variety
of color combinations is supported.
- PostScript output
is supported as well as GIF and animater GIF movies
- Post processing is easy and includes the ability to make
histograms, FFTs and applying functions to columns of your data.
- Equilibria
and linear stability as well as one-dimensional invariant sets can be
computed.
- Nullclines and flow fields aid in the qualitative understanding
of two-dimensional models.
- Poincare maps and equations on cylinders and
tori are also supported.
- Some useful averaging theory tricks and various
methods for dealing with coupled oscillators are included primarily because
that is what I do for a living.
- Equations with Dirac delta functions
are allowable.
- I have added an animation package that allows you to
create animated versions of your simulations, such as a little
pendulum moving back and forth or lamprey swimming.
See toys! for examples.
- There is a
curve-fitter based on the Marquardt-Levenberg algorithm which lets you
fit data points to the solutions to dynamical systems.
- It is possible to automatically generate ``movies'' of
three-dimensional views of attractors or parametric changes in the
attractor as some parameters vary.
- Dynamically link to external subroutines
XPP has been successfully compiled on a SPARC II under OpenLook, a SPARC
1.5 running generic X, a NeXT running X11R4, a DEC 5000, a PC using
Linux or Windows, and SGI and an HP 730. It also runs under Win95/NT/98 if you
have an X-Server.
I cannot vouch for other platforms but it has been compiled on the
IBM RS6000. Building XPP requires only the standard C compiler,
and Xlib. Look at the any README files that come with the
distribution for solutions to common compilation problems.
Download
Main page