xorbits.numpy.linalg.cond#

xorbits.numpy.linalg.cond(x, p=None)#

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 ((..., M, N) array_like) – The matrix whose condition number is sought.

  • p ({None, 1, -1, 2, -2, inf, -inf, 'fro'}, optional) –

    Order of the norm used in the condition number computation:

    p

    norm for matrices

    None

    2-norm, computed directly using the SVD

    ’fro’

    Frobenius norm

    inf

    max(sum(abs(x), axis=1))

    -inf

    min(sum(abs(x), axis=1))

    1

    max(sum(abs(x), axis=0))

    -1

    min(sum(abs(x), axis=0))

    2

    2-norm (largest sing. value)

    -2

    smallest singular value

    inf means the numpy.inf object, and the Frobenius norm is the root-of-sum-of-squares norm.

Returns

c – The condition number of the matrix. May be infinite.

Return type

{float, inf}

See also

numpy.linalg.norm

Notes

The condition number of x is defined as the norm of x times the norm of the inverse of x 1; the norm can be the usual L2-norm (root-of-sum-of-squares) or one of a number of other matrix norms.

References

1

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 # may vary
>>> min(LA.svd(a, compute_uv=False))*min(LA.svd(LA.inv(a), compute_uv=False))  
0.70710678118654746 # may vary

Warning

This method has not been implemented yet. Xorbits will try to execute it with numpy.linalg.

This docstring was copied from numpy.linalg.