OXFORD UNIVERSITY COMPUTING LABORATORY

Documentation for the GUI

The GUI is designed to serve two purposes. For large-scale eigenvalue computations it can be used when running the eigs command for sparse matrices, or it can be used for smaller, dense matrices (dimension of the order of a thousand). Once the GUI has been started, the operation is almost exactly the same.

The software can be downloaded here.


One of the main advantages of the GUI is the ability to zoom into specific parts of the pseudospectra with ease. Use the left mouse button to zoom in (clicking will zoom in by a factor of two, or dragging will zoom to the rectangle drawn) and the right button to zoom out. If you zoom out and then decide you want to zoom back in again, simply click once on the plot and you will be returned to the previous zoomed state.
When the pseudospectra display is first zoomed, no computation takes place: only the axis is changed. To compute the pseudospectra using a grid based on the new axes, press the Go! button (see buttons).

Control of the rest of the GUI is divided into five areas:


Snapshot of the Pseudospectra GUI.

Buttons

Go!Use this button to re-compute the pseudospectra on the current axes, using the number of grid points and projection level shown. This could potentially take a long time.
This button will change to Stop! when a computation is being performed. Note: The computation will not stop until the end of the current grid line is reached.
Start AgainThis button takes you back to the pseudospectra and options the GUI began with.
New MatrixSelects a new matrix. This can be used to read a matrix from the current workspace just by typing its name, or to create a matrix on the fly, either by using an m file or by composing commands [e.g. gallery('grcar',30)].
Field of Vals.This button adds the field of values (numerical range) of the matrix to the plot. You will be prompted for the number of points to use to evaluate this: leave blank to default to the same number as the pseudospectra grid.
Mode+Cond.NoClicking this button allows you to select an eigenvalue from the plot using the cross-hairs presented. The corresponding eigenmode and eigenvalue condition number will then be displayed in a separate plot. Note that subsequent use of this button will overwrite the same figure; if you wish to keep an eigenmode for comparison, you should select `Keep this eigenmode' from the `Eigenmode controls' menu of that figure.
Pmode+epsilonClicking this button allows you to select any point in the plot using the cross-hairs presented. The corresponding pseudoeigenmode and epsilon (1/resolvent norm) will then be displayed in a separate plot. Note that subsequent use of this button will overwrite the same figure; if you wish to keep an pseudoeigenmode for comparison, you should select `Keep this pseudomode' from the `Pseudomode controls' menu of that figure.
Printable PlotCreates a figure containing the pseudospectra but none of the buttons or other controls. In black and white the colour bar is not drawn.
QuitExit the GUI

Figure Axes

This panel allows you to change the axis limits.
The `Scale Equal' checkbox keeps the axes in proportion.

Mesh

This box shows the number of grid points used in the current pseudospectra computation. If you are not using `Scale Equal' (see Figure Axes), this is the number of gridpoints used in each direction. However, if you are using `Scale Equal', this is the number of points used in the longer direction; the number in the shorter direction is determined by the ratio of the axis limits. There will always be at least 5 gridpoints in either direction. To change the number of gridpoints used, enter a new number here then click on the 'Go!' button.

Lines

These two checkboxes give you control over the look of the lines in the plot. 'Colour' toggles between colour and black and white lines, and 'Thick' switches between thick and thin lines.

Contour Levels

Control of the contour levels plotted is achieved by entering log10(.) of a smallest and largest level desired along with the step size (spacing between the contours) to use.

A `smart' guess at the contour levels to plot can be obtained by clicking on the button "`Smart' levels". This chooses the levels based on the maximum and minimum singular values visible in the current plot, as well as how close to normal the matrix is in this region. Fewer contour lines are plotted for more normal matrices.

Projection

See the Projection Tutorial for a worked example of the use of projection.

Projection is only available when the GUI is used for dense matrices. For efficiency, the dense algorithm can project the matrix onto an invariant subspace spanned by part of the spectrum. In some cases this may be undesirable (it may alter the level curves of the pseudospectra plotted) and can be removed by setting the projection level to Inf. Any value from 0 to Inf is allowed, 0 being projection onto just those eigenvalues visible within the current axes, b being projection onto a rectangle (1+2b) times as wide and (1+2b) times as tall as the current axes. Projection can dramatically decrease the computation time, but it should be used carefully to avoid getting misleading pictures.

To ensure that the choice of projection parameter has not caused problems in a particular case, the parameter should be increased and the pseudospectra recomputed. If there is a change to the picture, the projection is affecting the result and the parameter should be increased further.

This parameter is most useful for creating high-quality plots (see the Projection Tutorial). First the area of the pseudospectra to plot is determined on a coarse grid with no projection. After that, projection is introduced ('Safety' reduced) to a level which does not cause a change to the plot. Only then are the pseudospectra computed on a fine grid.

For a more detailed discussion of projection, see Trefethen's paper, Computation of Pseudospectra (Acta Numerica, 1999).

Menus

There are four menus available in the GUI:


FileSave Current StateThis option allows you to save the current state of the GUI as a MATLAB figure. You can then return to this by using the MATLAB open command.
Save Current State AsThis allows you to save the GUI session under another name.
Printable PlotCreate a figure without any of the GUI buttons or controls. This brings up a dialog box prompting for a figure number: leave blank to create a new figure, or enter a number to use an existing figure.
QuitExits the GUI.

ExtrasOptions Code for PrintingSelecting this item outputs text to the MATLAB window which can then be cut and pasted into a script. The text contains commands which set up the necessary options to compute this particular pseudospectra (on the current axis with the current settings) and then create a printable plot. The GUI is then closed. Note that this option requires the re-computation of the pseudospectra.
Save for Quick Print CreationThis option is similar to above, except that it saves the necessary data for re-creating the current pseudospectra in a .mat file. A printable plot can then be created almost instantly by calling the function PSA with a single argument, the name of the file the data was saved in.
Show DimensionThis option displays the dimension of the matrix in the bottom left hand corner of the axes. This is useful for determining the size of the projected matrix if projection is being used.
Show GridThis option displays the grid used for the pseudospectra computation.
Display EigenvaluesThis option toggles the display of eigenvalues on the pseudospectra plot.
Arbitrary LevelsThis option allows the use of epsilon levels which are not equally spaced, and hence can't be entered using the GUI's standard `Contour Levels' pane.
DocumentationThis option lanches your default web browser and links to the online documentation page for the GUI.
Pseudospectra GatewayThis option lanches your default web browser and links to the Pseudospectra Gateway, a site which contains a wealth of information about pseudospectra.

DemosFiner grid (slower)When selected, this causes all subsequent demos to be comptued on a finer grid.
The demosEach demo has a sub-menu that allows one to either compute the pseudospectra for this matrix, or display the code used to create the matrix. In some cases two computation items are offered, one on a smaller dimension matrix that will be faster, and one on a larger matrix that will represent the problem more fully.

WindowDefaultThis menu contains the standard contents of the Window menu in all MATLAB figures.


Pseudospectra GUI home page.


[Oxford Spires]



Oxford University Computing Laboratory Courses Research People About us News