This site is presently (as of 12/4/2000) under construction - some of the exercises are in place and some are not.
MATH 2070 is a graduate level introduction to Numerical Analysis, which includes both lecture and laboratory sessions.
The instructor for this class is Professor Mihai Anitescu. He will present the regular lectures, from 3:00 to 3:50, Monday, Wednesday and Friday, in Thackeray, room 524.
Dr. Sussman has conducted the lab section of the class, from 4:00 to 5:15, Monday and Wednesday. The topics and assignments for each lab are listed in the online schedule. Dr. Sussman and Dr. Burkhart created all of these exercises and answers.
Room change: The lab was originally scheduled to be held in the Mathematics lab in Thackeray, room 707. It has been moved to GSCC 126, the Gardner Steele Conference Center.
The textbook for this course is
Kendall Atkinson
An Introduction to Numerical Analysis
Second Edition
ISBN: 0-471-62489-6
There is also a web site associated with the
text:
http://www.math.uiowa.edu/~atkinson/m170.html.
The labs are conducted primarily using Matlab, a program produced by The MathWorks. The Matlab language is, in fact, an object-oriented programming language with an extensive library of mathematical and scientific function calls entirely built-in. A student version of Matlab is available for $99.00, and this version is not a crippled version. The full set of manuals is on the web in html and also in Adobe PDF format! The "Getting Started" manual is a good place to begin. It is excellent, easy to read, provides a wonderful introduction, and is available both in html format and in Adobe PDF format. The full reference manual as well as manuals for each of the many toolboxes are all available.
Many programming exercises will be assigned. These naturally require that you know a programming language. Some instruction will be provided to you about MATLAB, FORTRAN and C. In some cases, you must carry out a programming assignment using a specified language. In most cases, you will be free to choose the programming language. Some exercises will be evaluated based on the program; in other cases, only the results will be judged. This will be discussed in each exercise.
There is a series of exercises to be done in the lab:
Here are some function files you may find useful:
ATAN5.M, atan(5*x), to approximate on [-1,1];
BUMPY.M, a bumpy function to interpolate;
COMB.M, comb(x) is 1/0/1/0/1/... for a vector input;
COSY.M, f(x) = cos(x) - x;
HUMPS.M, HUMPS(X) = 0 can be hard to solve;
NASTY.M, looks like a linear function ;
ONE.M, f(x) = 1 ;
RASP.M, comb(x) is 0/1/2/3/0/1/2/3/0... for a vector input;
RUNGE.M, f(x) = 1 / ( 1 + x^2 );
RUNGEP.M, returns derivative of the Runge function;
SLINKY.M, f(x) = sin(x)/x;
STEP.M, step(x) is 0/0/.../0/0/1/1/.../1/1 for a vector input;
TACK.M, tack(x) is 0/0/.../0/0/1/0/0...0/0 for a vector input;
Algorithm files for our second lab:
ROOT.C, approximates square root;
ROOT.F, approximates square root;
ROOT.M, approximates square root;
Algorithm files for rootfinding:
BISECT.M, simple bisection code;
BRENT.M, Brent's method;
FALSI.M, regula falsi;
MULLER.M, Muller's method;
CMULLER.M, Complex Muller's method;
NEWTON.M, Newton's method;
SECANT.M, secant method;
Algorithm files for polynomial rootfinding:
HORNER.M, Horner's method of evaluation;
HORNER_FACTOR.M, Horner's method of factoring out a root;
POLYNEW.M, Newton/Horner polynomial root finder;
MULPOLYNEW.M, multiple root version of POLYNEW;
Algorithm files for polynomial interpolation:
FITPOLY.M, interpolating polynomial coefficients by Vandermonde method;
LAG_POLY.M, define a Lagrange basis polynomial;
LAGVAL.M, evaluate a Lagrange-form interpolant;
DIVDIF.M, compute divided difference coefficients;
DIVVAL.M, evaluate a divided difference interpolant;
Algorithm files for "polynomial interpolation and beyond":
CHEBY_POINTS.M, returns the Chebyshev abscissas;
BRACKET.M, finds data brackets for an X value;
LINTVAL.M, evaluates the linear interpolant;
Algorithm files for "piecewise polynomial interpolation":
PARAVAL.M, evaluate the parabolic interpolant;
HERVAL.M, evaluate the Hermite interpolant;
CUBSET.M, set up a cubic spline interpolant;
CUBVAL.M, evaluate a cubic spline interpolant;
Algorithm files for "orthogonal polynomials":
LEGPOLY0.M, evaluate a Legendre polynomial P(X) (scalar);
LEGPOLY.M, evaluate a normalized Legendre polynomial P(X) (vector);
LEGVAL.M, evaluate the Legendre approximation;
Algorithm files for "quadrature":
MATSUM.M, "MATLAB SUM" quadrature.
MIDSUM.M, Midpoint rule quadrature.
TRAPSUM.M, Trapezoidal rule quadrature.
NC_WEIGHT.M, Newton-Cotes weights.
GL_WEIGHT.M, Gauss-Legendre weights.
GL_SPACE.M, Gauss-Legendre abscissas.
NCSUM.M, single interval Newton-Cotes rule.
GLSUM.M, single-interval Gauss-Legendre rule.
COMP_NCSUM.M, composite Newton-Cotes rule.
COMP_GLSUM.M, composite Gauss-Legendre rule.
Back to the home page.
Last revised on November 11, 2000.