【问题标题】:Find the biggest eigenvalue in R在R中找到最大的特征值
【发布时间】:2013-05-17 19:59:30
【问题描述】:

我是 R 的新手,我有一个 100x100 的方阵。 我想找到这个矩阵的最大特征值。我试过了

is.indefinite(x)

但它会写

is.indefinite(x) : argument x is not a symmetric matrix

有谁知道找到特征值的函数,或者更好的是 R 中的最大特征值?

【问题讨论】:

    标签: r eigenvalue


    【解决方案1】:

    要选择不复杂的最大特征值,您可以这样做:

    eigenvalues = eigen(x)$values
    
    max(Re(eigenvalues[abs(Im(eigenvalues)) < 1e-6])) # you have to choose the precision you like here
    

    【讨论】:

      【解决方案2】:

      显然没有人阅读文档:

      x 的谱分解作为带有组件的列表的组件返回

      values

      • 包含xp 特征值的向量,按照Mod(values) 在可能很复杂的不对称情况下按递减 顺序排序(即使对于实矩阵)。对于实数非对称矩阵,仅当检测到特征值的复共轭对时,该向量才会是复数。

      所以解(忽略复特征值)是

      eigen(x)$values[1]
      

      【讨论】:

        【解决方案3】:

        看看eigen 函数。如果您的矩阵是x,您可以这样做:

        max(eigen(x)$values)
        

        【讨论】:

        • 如果您的矩阵不对称,则期望复特征值,因此 max 失败
        • 似乎eigen(·) 函数仅适用于对称矩阵。如果你给eigen(·) 输入一个非对称矩阵,你会得到一个错误。
        • @eddi,我确实有复杂的特征值。如何选择最大的非复杂?
        【解决方案4】:

        处理所有复杂的特征值,然后计算到原点的距离将有助于找到最大的。

        【讨论】:

          【解决方案5】:

          你可以的,

          eigenvalues = eigen(x)
          max(abs(eigenvalues$values))
          

          如果您想获取最大特征值的特征向量,请查看https://stat.ethz.ch/pipermail/r-help/2012-April/311192.html

          【讨论】:

          • 这如何添加到现有答案中......?
          猜你喜欢
          • 1970-01-01
          • 2021-12-05
          • 2013-05-15
          • 2022-07-19
          • 1970-01-01
          • 2015-07-28
          • 1970-01-01
          • 2019-04-29
          • 1970-01-01
          相关资源
          最近更新 更多