numpy.linalg.cond

linalg.cond(x, p=None)[源代码]

计算矩阵的条件数。

此函数能够使用七种不同规范之一返回条件编号,具体取决于 p (见以下参数)。

参数
x(…,m,n)数组类

求条件号的矩阵。

p无,1,-1,2,-2,inf,-inf,'fro',可选

规范顺序:

矩阵范数

没有

2-范数,直接使用 SVD

“弗罗”

弗罗宾纽斯范数

因弗

最大值(总和(abs(x),轴=1)

-INF

最小值(总和(abs(x),轴=1)

1

最大值(总和(abs(x),轴=0)

-1

最小值(总和(abs(x),轴=0))

2

2-norm(最大单曲价值)

-2

最小奇异值

inf是numpy.inf对象,frobinius范数是平方和范数的根。

返回
c{浮动,INF}

矩阵的条件号。可能是无限的。

笔记

条件编号 x 被定义为 x 乘以倒数的范数 x [1]; 范数可以是通常的l2范数(平方和的根)或其他一些矩阵范数之一。

工具书类

1

斯特朗 线性代数及其应用 ,佛罗里达州奥兰多,学术出版社,1980年,第285页。

实例

>>> 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