# Main Commands

## Contents

###

  Initial conditions/Integration
  Continue an integration longer
  Draw Nullclines
  Direction fields and flows
  Window and Zoom
  Setting up toroidal phase-spaces
  Making movies
  Graphics settings
  Set problem parameters
  Erasing the screen
  Multiple windows
  Drawing text in a window
  Computing fixed points and stability
  Two or three-dimensional view
  Plot a variable versus time
  Redrawing the window
  Three-d parameters
  Running the boundary-value solver

- (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 desired spot.

- (C)ontinue. This allows you to continue integrating appending the data to the 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 them.
  - (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 window.
  - (F)low Choosing the flow, you will be prompted for a grid size and trajectories 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 remaining variables 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:
  - (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 rectangle.
  - (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.
  (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.

- 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 button
  - (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 choices.
  - (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 option.
  - (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 linestyle.
  - (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 frozen.

- n(U)merics This menu controls the numerical aspects of the program.

- (F)ile This brings up a menu with several options.

- (P)arameters Type the name of a parameter to change or click on its name in parameter window. . Type default to get back the values when you started XPP.

- (E)rase erases the contents of the active window, redraws the axes, deletes all 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 choices.
  - (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 mouse.
  - 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 three ways:
    - 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 goes out of bounds or you press (Esc). If (Esc) is pressed, the other branch is computed. 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). Once an 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 positive (r+) and 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.
- (R)estore 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 persepctive planes. 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 tells the program whether to save the initial (0) or final (1) values of the solution. 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 pressing (Esc) 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.

# References

##

  Table of Contents
  Main Menu Items
  ODE Files and Examples
  Numerics Menu
  File Menu
  Freeze Menu
  AUTO Menu
  Data Browser
  I/O and Hardcopy
  XPP Basics
  Nonlinear ODEs
  Two-dimensions
  Three-dimensions and Beyond
  Phase Equations
  Chaos