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.