MATH2070_1999
Numerical Methods in Scientific Computing I
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.
I will be conducting 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.
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 are many useful references for MATLAB. The shortest and
smallest is
Kermit Sigmon,
MATLAB Primer,
CRC Press,
ISBN: 0-8493-1305-6.
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:
There are some reference notes that you may find useful:
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:
Algorithm files for polynomial rootfinding:
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 "beyond polynomial interpolation":
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);
-
LEGCOEF.M, compute the Legendre approximation coefficients;
-
LEGVAL.M, evaluate the Legendre approximation;
-
TRAP_INT.M, estimate an integral of given data
using the trapezoid rule;
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.
Last revised on 03 May 2011.