numpy.linalg.cond #
- 利纳尔格。cond ( x , p = None ) [来源] #
计算矩阵的条件数。
该函数能够使用七个不同范数之一返回条件数,具体取决于p的值(请参阅下面的参数)。
- 参数:
- x (…, M, N) 类似数组
求其条件数的矩阵。
- p {无, 1, -1, 2, -2, inf, -inf, 'fro'}, 可选
条件数计算中使用的范数的阶数:
p
矩阵范数
没有任何
2-范数,直接使用
SVD
‘来回’
弗罗贝尼乌斯范数
信息
最大值(总和(abs(x),轴= 1))
-inf
分钟(总和(abs(x),轴= 1))
1
最大值(总和(abs(x),轴= 0))
-1
分钟(总和(abs(x),轴= 0))
2
2-范数(最大单值)
-2
最小奇异值
inf 表示
numpy.inf
对象,Frobenius 范数是平方和范数。
- 返回:
- c {浮点数,inf}
矩阵的条件数。可能是无限的。
也可以看看
笔记
x的条件数定义为x的范数乘以x [1]的倒数范数;范数可以是通常的 L2 范数(平方和根)或许多其他矩阵范数之一。
参考
[ 1 ]G. Strang,《线性代数及其应用》,佛罗里达州奥兰多,学术出版社,1980 年,第 17 页。 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