Python numpy.linalg.cond是否返回最大和最小特征值的比率?

Python numpy.linalg.cond是否返回最大和最小特征值的比率?,python,numpy,matrix,eigenvalue,Python,Numpy,Matrix,Eigenvalue,我需要计算矩阵的最大和最小特征值之比,据我所知,这就是所谓的“条件数”。我找到了计算矩阵条件数的numpy.linalg.cond,但我想知道这是否真的对应于最大和最小特征值之间的比率。有人能给我一些提示吗?根据文档,np.linalg.cond被定义为数组的范数乘以数组范数的倒数,这不是您要寻找的。但你想要的很容易做到: import numpy as np Eigs = np.linalg.eigvals(yourarrayhere) cond = np.max(E

我需要计算矩阵的最大和最小特征值之比,据我所知,这就是所谓的“条件数”。我找到了计算矩阵条件数的
numpy.linalg.cond
,但我想知道这是否真的对应于最大和最小特征值之间的比率。有人能给我一些提示吗?

根据文档,np.linalg.cond被定义为数组的范数乘以数组范数的倒数,这不是您要寻找的。但你想要的很容易做到:

    import numpy as np

    Eigs = np.linalg.eigvals(yourarrayhere)
    cond = np.max(Eigs)/np.min(Eigs)

条件数是最大奇异值与最小奇异值之比,而不是特征值之比。对于一般的矩阵,它们不是一回事。对于所谓的奇异值,则是特征值的绝对值。我认为有些人对条件数有不同的定义。例如,在Bertsekas的《非线性规划》第二版和第三版中,他特别将最大特征值与最小特征值之比称为第67页的条件数。如果条件数较大,则称矩阵为病态矩阵。标准线性代数定义为上述2-范数之比,即奇异值之比。这只等于(正定)正规矩阵的特征值之比。你上面写的是不正确的,因为numpy.linalg.cond使用标准定义。好的,对不起,我误解了你的答案,现在的文本是正确的。