ERRORS
Failures of Numerical Algorithms
ERRORS
is a FORTRAN90 program which
demonstrates how reasonable computations
can produce numerical nonsense. This illustrates that the programmer
must not assume that a numerical algorithm that seems reasonable will
always produce correct and reliable results.
The computations
include polynomial evaluation and root finding, linear system solution,
minimization, and Taylor series approximation.
Licensing:
The computer code and data files described and made available on this
web page are distributed under
the GNU LGPL license.
Languages:
ERRORS is available in
a FORTRAN90 version and
a MATLAB version.
Reference:
-
U Kulisch, C Ullrich, Editors,
Wissenschaftliches Rechnen und Programmiersprachen,
(Scientific Computing and Programming Languages),
Berichte des German Chapter of the ACM,
(Reports of the German Chapter of the ACM),
Volume 10, Teubner Verlag, 1982.
-
Cleve Moler, Charles Van Loan,
19 Dubious Ways to Compute the Exponential of a Matrix,
25 Years Later,
SIAM Review,
Volume 45, Number 1, pages 3-49, March 2003.
-
Yves Nievergelt,
Numerical Linear Algebra on the HP-28, or How to Lie with
Supercalculators,
The American Mathematical Monthly,
Volume 98, Number 6, June-July 1991, pages 539-544.
-
Siegfried Rump,
Wie Zuverlaessig Sind die Ergebnisse Unserer Rechenanlagen?
(How Reliable are the Results of our Computations?)
Jahrbuch Ueberblicke Mathematik 1983, pages 163-168.
Source Code:
Examples and Tests:
List of Routines:
-
DPOLY_VAL evaluates a double precision polynomial.
-
DPOLY_VAL_HORNER evaluates a double precision polynomial using Horner's method.
-
DPOLY2_ROOTS finds the roots of a quadratic polynomial.
-
DPOLY2_ROOTS2 finds the roots of a quadratic polynomial.
-
FMIN seeks a minimizer of a scalar function of a scalar variable.
-
ISAMAX finds the index of the vector element of maximum absolute value.
-
LCM_12N computes the least common multiple of the integers 1 through N.
-
MAXTRIX_EXPONENTIAL_TAYLOR uses a Taylor series for the matrix exponential.
-
RPOLY_VAL evaluates a real polynomial.
-
RPOLY_VAL_HORNER evaluates a real polynomial using Horner's method.
-
RPOLY2_ROOTS finds the roots of a quadratic polynomial.
-
RPOLY2_ROOTS2 finds the roots of a quadratic polynomial.
-
SAMAX returns the maximum absolute value of the entries in a vector.
-
SAXPY adds a constant times one vector to another.
-
SCOPY copies one real vector into another.
-
SDOT forms the dot product of two vectors.
-
SDSDOT forms the dot product of two vectors using higher precision.
-
SGEDI computes the determinant and inverse of a matrix factored by SGECO or SGEFA.
-
SGEFA factors a real matrix.
-
SGESL solves a real general linear system A * X = B.
-
RVEC_NORM2 computes the Euclidean norm of a vector.
-
SQRDC computes the QR factorization of a real rectangular matrix.
-
SQRSL computes transformations, projections, and least squares solutions.
-
SSCAL scales a vector by a constant.
-
SSWAP interchanges two vectors.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 01 January 2011.