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 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 in this directory run under both Matlab Versions 7.0 and 6.5. The GUIs will give warning messages when run under Version 6.5 of Matlab. There are also some changes in the objects in the GUI, e.g. the size of some windows and some color changes. 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. In addition, 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. 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.