CONDITION
Matrix Condition Number Estimation
CONDITION
is a C++ library which
implements methods for computing or estimating the condition number of a matrix.
Let ||*|| be a matrix norm, let A be an invertible matrix, and inv(A) the inverse of A.
The condition number of A with respect to the norm ||*|| is defined to be
kappa(A) = ||A|| * ||inv(A)||
If A is not invertible, the condition number is taken to be infinity.
Facts about the condition number include:
-
1 <= kappa(A) for all matrices A.
-
1 = kappa(I), where I is the identity matrix.
-
for the L2 matrix norm, the condition number of any orthogonal matrix is 1.
-
for the L2 matrix norm, the condition number is the ratio of the maximum
to minimum singular values;
The CONDITION library needs access to a copy of the R8LIB library.
Licensing:
The computer code and data files described and made available on this
web page are distributed under
the GNU LGPL license.
Languages:
CONDITION is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
LINPACK_D,
a C++ library which
solves linear systems using double precision real arithmetic;
NAPACK,
a FORTRAN77 library which
includes many routines for applied numerical linear algebra tasks,
including the matrix condition number,
by William Hager.
R8LIB,
a C++ library which
contains many utility routines using double precision real (R8) arithmetic.
TEST_MAT,
a C++ library which
defines test matrices for which some of the determinant, eigenvalues, inverse,
null vectors, P*L*U factorization or linear system solution are already known.
Reference:
-
Alan Cline, Cleve Moler, Pete Stewart, James Wilkinson,
An estimate for the Condition Number of a Matrix,
Technical Report TM-310,
Argonne National Laboratory, 1977.
-
Alan Cline, Russell Rew,
A set of counterexamples to three condition number estimators,
SIAM Journal on Scientific and Statistical Computing,
Volume 4, Number 4, December 1983, pages 602-611.
-
William Hager,
Condition Estimates,
SIAM Journal on Scientific and Statistical Computing,
Volume 5, Number 2, June 1984, pages 311-316.
-
Nicholas Higham,
A survey of condition number estimation for triangular matrices,
SIAM Review,
Volume 9, Number 4, December 1987, pages 575-596.
-
Diane OLeary,
Estimating matrix condition numbers,
SIAM Journal on Scientific and Statistical Computing,
Volume 1, Number 2, June 1980, pages 205-209.
-
Pete Stewart,
Efficient Generation of Random Orthogonal Matrices With an Application
to Condition Estimators,
SIAM Journal on Numerical Analysis,
Volume 17, Number 3, June 1980, pages 403-409.
Source Code:
Examples and Tests:
List of Routines:
-
COMBIN returns the COMBIN matrix.
-
COMBIN_INVERSE returns the inverse of the COMBIN matrix.
-
CONDITION_HAGER estimates the L1 condition number of a matrix.
-
CONDITION_LINPACK estimates the L1 condition number.
-
CONDITION_SAMPLE1 estimates the L1 condition number of a matrix.
-
CONEX1 returns the CONEX1 matrix.
-
CONEX1_INVERSE returns the inverse of the CONEX1 matrix.
-
CONEX2 returns the CONEX2 matrix.
-
CONEX2_INVERSE returns the inverse of the CONEX2 matrix.
-
CONEX3 returns the CONEX3 matrix.
-
CONEX3_INVERSE returns the inverse of the CONEX3 matrix.
-
CONEX4 returns the CONEX4 matrix.
-
CONEX4_INVERSE returns the inverse of the CONEX4 matrix.
-
KAHAN returns the KAHAN matrix.
-
KAHAN_INVERSE returns the inverse of the KAHAN matrix.
-
R8GE_FA performs a LINPACK-style PLU factorization of a R8GE matrix.
-
R8GE_INVERSE computes the inverse of a R8GE matrix factored by R8GE_FA.
-
R8GE_SL solves a R8GE system factored by R8GE_FA.
You can go up one level to
the C++ source codes.
Last revised on 04 October 2012.