Original date: January 2, 2004 (Actually several of these were written
in 2002, but I began posting them as
of the given date.)
Updated: August 26, 2004
Updated: September 13, 2004
Updated: September 21, 2004
Updated: October 5, 2004
Updated: October 6, 2004
Updated: October 19, 2004
Updated: January 11, 2005
Updated: November 29, 2005
GRAPHICAL USER INTERFACES
FOR NUMERICAL ANALYSIS
We are developing GUIs for some of the basic problems of numerical analysis.
One of the frustrations we and others have faced is how to get students in
numerical analysis to do experimental computing. Typically we assign Matlab
programs, either to be used directly or to be modified. The students work to
make the programs perform properly, and then they want to stop. But it is at
this point that we want them to start doing experimental studies. Because of
this, we are developing GUIs to take away all of the programming effort,
allowing the students to experiment without needing to know how to program. I
still use regular Matlab programs, as stored in an accompanying directory. But
these GUIs allow the students to experiment with methods more easily.
To run the GUIs, store them into a directory and then call them from within
Matlab, running Matlab from the GUI directory. All GUIs have two files, one an
m-file and one a fig-file. Several of them, e.g. Rootfinding, call additional
GUIs, and these too must be loaded into the same subdirectory as the main GUI
being used. The GUIs have been developed using the Matlab program GUIDE (GUI
Development Environment).
The GUIs are available also in a single compressed file, as NA_GUIs.zip, for
more convenient distribution.
If you find errors in using any of these GUIs, please notify me, at the
email address
Kendall-Atkinson@uiowa.edu.
The Matlab coding in these programs can be improved; but they do work, at least
on the Windows and Linux machines we are using.
The output window for the tables in the GUIs does not format correctly under
Linux, although the version you save from the GUI is formatted correctly. I am
already specifying that the font in the table is to be fixed-width, but that is
not sufficient to fix the problem under Linux. There are also some problems
with color under Linux.
We have developed the following GUIs. We will continue to improve them, and
we are developing other GUIs for additional tasks.
1. Taylor_GUI. This creates Taylor approximations of orders 1, 2, and 3 from
functions chosen from a given pull-down menu. You can choose an interval
[a-r,a+r], and results are shown numerically and graphically.
2. Rootfinding. You can investigate the bisection, Newton, and secant
rootfinding methods for a variety of functions. Plotting of the function is
permitted, and there are various options in controlling the iteration.
3. Uniform_Interpolation. This does polynomial interpolation of selected
functions for evenly spaced nodes. The degree and the interval can be chosen.
Graphs of the interpolant and its error are shown, along with the maximum error.
4. Uniform_vs_Chebyshev_Interp. This computes polynomial interpolants using both
evenly spaced nodes and the Chebyshev nodes (of the first kind). The options are
the same as in the preceding GUI.
5. Spline_GUI. You can experiment with constructing cubic interpolating spline
functions with a variety of boundary conditions and for a variety of given
functions.
6. Integrate_GUI. You can experiment with the trapezoidal, midpoint, Simpson,
and Boole rules. An integrand can be selected, along with an interval [a,b] and
other parameters. Various kinds of output are given, including Richardson error
estimates and asymptotic error estimates, to better study the convergence.
7. Gaussian_Quad. You can experiment with Gauss-Legendre quadrature, using
either an incremental increasing of n or a doubling of n, where n denotes the
number of quadrature node points.
8. Euler_ODE_GUI. This uses Euler?s method to solve a selection of ODE initial
value problems. There are parameters in a number of the ODEs in order to allow
experimentation with stable and unstable problems. The program solves the ODE
on a given interval [0,b] with given a given stepsize h. It also solves with a
stepsize 2h and then calculates the Richardson error estimate, comparing it with
the true error.
9. Euler_Back_GUI. This uses the backward Euler method to solve a selection of
ODE initial value problems, the same problems as are used in Euler_ODE_GUI. The
same options are available, as well. An additional option lets the user decide
the method of solving the implicit equation that results at each step of the
backward Euler method. The user can specify (1) fixed point iteration, (2)
Newton?s method, and (3) the true solution of the implicit equation defining the
backward Euler?s method.
Future Projects:
1. Differentiate. This will allow study of various numerical
differentiation formulas.
2. Linear_Iteration. This will be used to study standard iteration
methods for solving some standard linear systems.
3. Solve_ODE. This will allow comparison of some numerical methods for
solving the initial value problem for ordinary differential equations.