linalg.
cond
计算矩阵的条件数。
此函数能够使用七种不同规范之一返回条件编号,具体取决于 p (见以下参数)。
求条件号的矩阵。
规范顺序:
磷
矩阵范数
没有
2-范数,直接使用 SVD
SVD
“弗罗”
弗罗宾纽斯范数
因弗
最大值(总和(abs(x),轴=1)
-INF
最小值(总和(abs(x),轴=1)
1
最大值(总和(abs(x),轴=0)
-1
最小值(总和(abs(x),轴=0))
2
2-norm(最大单曲价值)
-2
最小奇异值
inf是numpy.inf对象,frobinius范数是平方和范数的根。
矩阵的条件号。可能是无限的。
参见
numpy.linalg.norm
笔记
条件编号 x 被定义为 x 乘以倒数的范数 x [1]; 范数可以是通常的l2范数(平方和的根)或其他一些矩阵范数之一。
工具书类
斯特朗 线性代数及其应用 ,佛罗里达州奥兰多,学术出版社,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