CONDITION
Matrix Condition Number Estimation
CONDITION
is a Python 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;
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 FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
TEST_MAT,
a Python 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:
-
combin.py
returns the COMBIN matrix.
-
cond_test.py,
tests numpy's cond() function.
-
condition_hager.py,
estimates the matrix L1 condition number using Hager's method.
-
condition_linpack.py,
estimates the matrix L1 condition number using a method from LINPACK.
-
condition_sample1.py,
estimates the matrix L1 condition number using sampling.
-
conex1.py
returns a 4 by 4 LINPACK condition number counterexample matrix.
-
conex2.py
returns a 3 by 3 LINPACK condition number counterexample matrix.
-
conex3.py
returns a LINPACK condition number counterexample matrix.
-
conex4.py
returns a 4 by 4 condition number matrix.
-
i4vec_print.py,
prints an I4VEC.
-
kahan.py
returns the KAHAN matrix.
-
r8_normal_01.py,
returns a unit pseudonormal R8;
-
r8_sign.py,
returns the sign of an R8.
-
r8_uniform_01.py,
returns a unit pseudorandom R8.
-
r8_uniform_ab.py,
returns a scaled pseudorandom R8.
-
r8ge.py,
functions to apply to a matrix stored in R8GE format.
-
r8mat_norm_l1.py,
returns the L1 norm of an R8MAT.
-
r8mat_print.py,
prints an R8MAT.
-
r8mat_print_some.py,
prints some of an R8MAT.
-
r8mat_uniform_01.py,
returns a unit pseudorandom R8MAT;
-
r8vec_max_abs_index.py,
returns the index of the maximum absolute value entry in an R8VEC;
-
r8vec_norm.py,
computes the L2 norm of an R8VEC.
-
r8vec_norm_l1.py,
computes the L1 norm of an R8VEC.
-
r8vec_normal_01.py,
returns an R8VEC of unit pseudonormal values;
-
r8vec_print.py,
prints an R8VEC.
-
r8vec_uniform_01.py,
returns an R8VEC of unit pseudouniform values;
-
r8vec_uniform_ab.py,
returns a scaled pseudorandom R8VEC.
-
r8vec_uniform_unit.py,
returns a random unit vector.
-
timestamp.py
returns the YMDHMS date as a timestamp.
Examples and Tests:
You can go up one level to
the Python source codes.
Last revised on 06 July 2015.