- (I)nitial conds. This invokes a short list of options for integrating the differential equations. The choices are:
- (G)o which uses the initial data in the IC window and the current
numerics parameters to solve the equation. The output is drawn in the
current selected graphics window and the data are saved for later use. The
solution continues until either the user aborts by pressing Esc , the
integration is complete, or storage runs out.
- (N)ew This prompts you at the command line for each
initial condition. It is similar to clicking on something in the initial condition window.
Press Enter to accept the value presented.
- (L)ast This uses the end result of the most recent integration as the
starting point of the current integration.
- (S)hift This is like Last except that the stating time is shifted to the
current integration time. This is irrelevant for autonomous systems but is
useful for nonautonomous ODEs.
- (O)ld This uses the most recent initial data as the current initial
data. It is essentially the same as Go.
- (R)ange This lets you integrate multiple times with the results shown
in the graphics window. Pressing this option produces a new window with
several boxes to fill in. First choose the quantity you want to range
over. It can be a parameter or a variable. The integrator will be called
and this quantity will be changed at the beginning of each integration.
Then choose the starting and ending value and the number of steps. The
option Reset storage only stores the last integration. If you choose not
to reset, each integraion is appended to storage. Most likely, storage
will be exceeded and the integration will overwrite or stop. The option
to use last initial conditions will automatically use the final result of
the previous integration as initial dat for the next integration. Otherwise,
the current ICs will be used at each step (except of course for the variable
through wich you are ranging.) When you are happy with the parameters, simply
press the OK button. Otherwise, press the Cancel button to abort. Assuming
that you have accepted, the program will compute the trajectories and plot
them storing none of them or all of them. If you press Esc it will abort the
current trajectory and move on to the next. Pressing the / key will abort
the whole process.
- (M)ouse allows you to specify the values with the mouse. Click at the
- (C)ontinue. This allows you to continue integrating appending the data
current curve. Type in the new ending time.
- (N)ullclines This option allows you to draw the nullclines of systems.
They are most useful for two-dimensional models, but XPP lets you draw them for
any model. The constraints are the same as in the
direction fields option. The menu has 4 items.
- (N)ew draws a new set of nullclines.
- (R)estore restores the most recently computed set.
- (A)uto turns on a flag that makes
XPP redraw them every time it is necessary because some other window obscured
- (M)anual turns this flag off so that you must restore them manually.
The X-axis nullcline is blue and the Y-axis nullcline is red.
- (D)irection Field/Flow
This option is best used for two-dimensional systems however,
it can be applied to any system. The current graphics view must be a
two-d plot in which both variables are different and neithet is the time
variable, T. There are two items.
- (D)irection fields Choosing the direcion field option will prompt you for
a grid size. The two dimensional plane is broken into a grid of the size
specified and lines are drwan at each point specifying the direction of
the flow at that point. If the system is more than two-dimensional, the
other variables will be held at the values in the initial conditions
- (F)low Choosing the flow, you will be prompted for a grid size
started at each point on the grid will be integrated according to the
numerical parameters. Any given trajectory can be aborted by pressing
Esc and the whole process stopped by pressing /. The
if in more than two-dimensions are initialized with the values in the IC window.
- (W)indow allows you to rewindow the current graph. Pressing this presents
another menu with the choices:
(NOTE: On some displays, no rubber boxes are drawn for the zooming
operations. If this occurs, run with the -xorflag option on
the command line.
- (W)indow A window pops up prompting you for the values.
Press OK or CANCEL when done.
- (Z)oom in Use the mouse to expand a region by clicking, dragging and
releasing. The view in the rectangle will be expanded to the whole window.
- Zoom (O)ut As above but the whole window will be shrunk into the
- (F)it The most common command will automatically fit the window so
the entire curve is contained within it. For three-D stuff the window data
will be scaled to fit into a cube and the cube scaled to fit in the window.
Use this often.
- ph(A)se space XPP allows for periodic domains so that you can solve
equations on a torus or cylinder. You will be prompted to make (A)ll variables
periodic, (N)o variables periodic or (C)hoose the ones you want. You will
be asked for the period which is the same for all periodic variables (if they
must be different, rescale them) Choose them by name or by clicking the
appropriate names from the list presented to you. An X will
appear next to the selected ones. Clicking toggles the X .
Type Esc when done or CANCEL or DONE.
XPP mods your variables by this period and is smart
enough when plotting to not join the two ends.
- (K)inescope This allows you to capture the bitmap of the active window and
play it back. It works poorly in some versions of X, you cannot save the bitmaps, nor will
it run properly across the network. This is not my fault, it is idiosyncratic
with X. It is slow also.
- (C)apture which takes a snapshot of the
currently active window
- (K)ill which deletes all the snapshots
- (A)utoplay which
continuously plays back snapshots until you press the middle mouse
- (P)layback which cycles thru the pictures each time you click the left mouse
button and stops if you click the middle. It will beep when done.
- (G)raphic stuff
This induces a popup menu with several
- (A)dd curve This lets you add another curve to the picture. A
parameter box will appear asking you for the variables on each axis, a color,
and line type (only 1 - solid and 0 - dotted are allowed currently) All
subsequent integrations and restorations will include the new graph. Up to
10 per window are allowed.
- (D)elete last Will remove most recent curve.
- (A)ll but first Deletes all curves but first.
- (E)dit curve You will be asked for th curve to edit. The first is 0,
the second 1, etc. You will get a parameter box like the add curve
- (P)ostscript This will ask you for a file name and write a
postscript representation of the current window. Nullclines, text,
and all graphs will be plotted. You can use plot black and white or color.
Black and white will try to make each differently colored curve a different
- (F)reeze This will create a permanent curve in the window. Usualiy,
when you reintegrate the equations or load in some new data, the current curve
will be replace by the new data. Freeze prevents this. Up to 26 curves can be
- n(U)merics This menu controls the
numerical aspects of the program.
This brings up a menu with several options.
Type the name of a parameter to change or click on its name
window. . Type
default to get back the values when you started XPP.
erases the contents of the active window, redraws the
text in the window, and sets the redraw flag to Manual.
- (H)alfwindow This name is a holdover from the DOS version. The option allows
you to create and destroy graphics windows. There are several
- (C)reate makes a copy of the currently active window and makes itself active.
You can change the graphs in this window without affecting the other windows.
- (K)ill all Removes all but the main graphics window.
- (D)estroy This destroys the currently active window. The main window
cannot be destroyed.
- (A)uto turns on a flag so that the window will automatically be
redrawn when needed.
- (M)anual turns off the flag and the user must restore the picture manually.
- (B)ottom puts the active window on the bottom.
- (T)ext etc allows you to write text to the display in a variety of sizes and in two different fonts. You can
also add other symbols to your graph.
- Text This prompts you for the text you want to add. Then you
are asked for the size; there are five choices (0-5): 0-8pt, 1-12pt, 2-14pt,
3-18pt, 4-24pt. Next you are asked for the font: 0-TimesRoman,
1-Symbol. Note that not all X-servers will have these fonts, but the
postscript file will still draw them. Finally, place the text with the
- Arrow This lets you draw an arrow-head to incicate a direction
on a trajectory. You will be prompted for the size, which should be
some positive number, usually less than 1. Then you must move the the
mouse and select a direction and starting point. Click on the
starting point and holding the mouse buttton down, drag the mouse to
indicate the direction of the arrow-head. Then release the
mouse-button and the arrow will be drawn.
- Pointer This is like an arrow, but draws the stem as well as
the arrow head. It can be used to point to important features of your
graph. The prompts are like those for Arrow.
- Edit This lets you edit the text,arrows, and pointers in one of
- Move lets you move the object to another location without
changing any of its properties. Choose the object with the mouse by
clicking near it.
You will then be prompted as to whether you want to move the item that
XPP selected. If you answer yes use the mouse to reposition it.
- Change lets you change the properties: for text, the text
itself, size, and font can be change; for arrows and pointers, only
the size of the arrow head can be changed. As above, select the object
with the mouse and then edit the properties.
- Delete deletes the object that you select with the mouse.
- Delete All Deletes all the objects in the current window.
- (S)ing pts
This allows you to calculate equilibria for a system. There
are three options.
- (G)o begins the calculation using the values in the initial
data box as a first guess. Newton's method is applied. If a value is found XPP
tries to find the eigenvalues and asks you if you want them printed out. If so,
they are written to the console. Then if there is a single real positive or
real negative eigenvalue, the program asks you if you want the unstable or
stable manifolds to be plotted. Answer yes if so and they will be
approximated. The calculation will continue until either a variable
of bounds or you press (Esc). If (Esc) is pressed, the other
The program continues to find any other invariant sets until it has gotten
them all. (These are stored and can be accessed by clicking (I) (H).) The program will continue integrating
beyond the current numerical parameters until you press (Esc).
equilibrium is computed a window
appears with info on the value of the point and its stability. The top of
the window tells you the number of complex eigenvalues with
positive, (c+) ,
negative (c-), zero (im) real parts and the number of
real negative (r-) eigenvalues. I
f the equation is a difference equation,
then the symbols correspond the numbers of real or complex eigenvalues
outside (+) the unit circle or inside (-)
This window remains and can be iconified.
- (M)ouse This is as above but you can specify the initial guess by
clicking the mouse. Only the two variables in the two-D window will reflect
the mouse values. This is most useful for 2D systems.
- (R)ange This allows you to find a set of equilibria over a range
of parameters. A parameter box will prompt you for the parameter, starting
and ending values, number of steps. Additionally, two other items are
requested. Column for stability will record the stability of the equilibrium
point in the specified column. If you elect to shoot at each, the invariant
manifolds will be drawn for each equilibrium computed. The stability can be
read as a decimal number of the form u.s where s is the
number of stable and u
the number of unstable eigenvalues. So 2.03 means 3 eigenvalues
with negative real parts (or in the unit circle) and 2 with positive
real parts (outside the unit circle.) The result of a range calculation is saved
in the data array and replaces what ever was there. The value of the parameter
is in the time column, the equilibria in the remaining columns and the
stability info in whatever column you have specified.
(Esc) aborts one step and
(/) aborts the whole procedure.
- (V)iew axes
This selects one of 2 different types of graphs:
a 2D box or a 3D Box.
If you select the 2D curve, you will be asked for limits
as in the window command as well as the variables to place on the axes
and the labels for the axes.
3D is more complicated. You will be asked for the 3 variables for the 3 axes,
their max and min values and 4 more numbers, XLO , etc. XPP first scales the
data to fit into a cube with corners (-1,-1,-1) and (1,1,1). Rotation of this
cube is performed and then projected into the two-D window. XLO
, etc define
the scales of this projection and are thus unrelated to the values of your
data. You are also asked for labels of the axes.
Use the (W) (F) option
to automatically choose the sizes for the graph.
- (X)i vs t This chooses a certain 2D view and prompts you for the variable name.
The window is automatically fitted and the data plotted. It is a
shortcut to choosing a view and windowing it.
redraws the most recent data in the browser in accordance with the
graphics parameters ofthe active window.
- (3)d params
This lets you choose rotations of the axes and
Play with this to see. You must be have a 3D view in the active graph
to use this.
- (B)ndry val This solves boundary value problems by numerical shooting. There
are 4 choices.
- (S)how This shows the successive results of the shooting and
erases the screen at the end and redraws the last solution. The program
uses the currently selected numerical integation method, the current starting
point, T0 as the left end time and T0+TEND as the right
end. These are set in the nUmerics menu.
Thus, if the
interval of interest is (2.5,6)then set T0=2.5 and
TEND=3.5 in the numerics menu.
- (N)o show This is as above but will not show succesive solutions.
- (R)ange This allows you to range over a parameter keeping starting or
ending values of each of the variables. A window will appear asking you for
the parameter, the start, end, and steps. You will also be asked if you want
to cycle color which means that the results of each successful solution to the
BVP will appear in different colors. Finally the box labeled side
program whether to save the initial (0) or final (1)
As the program progresses, you will see the current parameter in the info
window under the main screen. You can abort the current step by
and the whole process by pressing (/).
- (P)eriodic Periodic boundary conditions can be solved thru the
usual methods, but one then must write an addition equation for the
frequency parameter. This option eliminates that need so that a 2-D
autonomous system need not be suspended into a 3D one. You will be
asked for the name of the adjustable parameter for frequency. You
will also be asked for the section variable and section. This is an additional
condition that must be satisfied, namely, x(0)=x_0 where xis the
section variable and x_0 is the section. Type yes if you want
the progress shown.