Compute the condition number of a matrix.
This function is capable of returning the condition number using one of seven different norms, depending on the value of p (see Parameters below).
Parameters: | x : array_like, shape (M, N)
p : {None, 1, -1, 2, -2, inf, -inf, ‘fro’}, optional
|
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns: | c : {float, inf}
|
See also
numpy.linalg.linalg.norm
Notes
The condition number of x is defined as the norm of x times the norm of the inverse of x [R46]; the norm can be the usual L2-norm (root-of-sum-of-squares) or one of a number of other matrix norms.
References
[R46] | (1, 2) G. Strang, Linear Algebra and Its Applications, Orlando, FL, Academic Press, Inc., 1980, pg. 285. |
Examples
>>> from numpy import linalg as LA
>>> a = np.array([[1, 0, -1], [0, 1, 0], [1, 0, 1]])
>>> a
array([[ 1, 0, -1],
[ 0, 1, 0],
[ 1, 0, 1]])
>>> LA.cond(a)
1.4142135623730951
>>> LA.cond(a, 'fro')
3.1622776601683795
>>> LA.cond(a, np.inf)
2.0
>>> LA.cond(a, -np.inf)
1.0
>>> LA.cond(a, 1)
2.0
>>> LA.cond(a, -1)
1.0
>>> LA.cond(a, 2)
1.4142135623730951
>>> LA.cond(a, -2)
0.70710678118654746
>>> min(LA.svd(a, compute_uv=0))*min(LA.svd(LA.inv(a), compute_uv=0))
0.70710678118654746