【问题标题】:Is numpy.linalg.cond returning the ratio of the biggest and smallest eigenvalue?numpy.linalg.cond 是否返回最大和最小特征值的比率?
【发布时间】:2015-04-03 04:48:23
【问题描述】:

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

【问题讨论】:

    标签: python numpy matrix eigenvalue


    【解决方案1】:

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

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

    【讨论】:

    • 条件数是最大和最小奇异值之比,不是特征值之比。对于一般矩阵,这些不是一回事。然而对于所谓的normal matrices 奇异值是特征值的绝对值。
    • 我认为有些人对条件数的定义不同。例如,在 Bertsekas 的《非线性规划》的第二版和第三版中,他特别将最大与最小特征值之比称为第 67 页的条件数。如果条件数很大,他将矩阵称为病态矩阵
    • 标准的线性代数定义是上述2-范数之比,即奇异值之比。这仅等于(正定)正态矩阵的特征值比率。你上面写的不正确,因为 numpy.linalg.cond 使用标准定义。
    • 好的,对不起,我看错了你的答案,目前的文字是正确的。
    猜你喜欢
    • 2014-11-26
    • 2020-01-25
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多