【发布时间】:2013-05-17 19:59:30
【问题描述】:
我是 R 的新手,我有一个 100x100 的方阵。 我想找到这个矩阵的最大特征值。我试过了
is.indefinite(x)
但它会写
is.indefinite(x) : argument x is not a symmetric matrix
有谁知道找到特征值的函数,或者更好的是 R 中的最大特征值?
【问题讨论】:
标签: r eigenvalue
我是 R 的新手,我有一个 100x100 的方阵。 我想找到这个矩阵的最大特征值。我试过了
is.indefinite(x)
但它会写
is.indefinite(x) : argument x is not a symmetric matrix
有谁知道找到特征值的函数,或者更好的是 R 中的最大特征值?
【问题讨论】:
标签: r eigenvalue
要选择不复杂的最大特征值,您可以这样做:
eigenvalues = eigen(x)$values
max(Re(eigenvalues[abs(Im(eigenvalues)) < 1e-6])) # you have to choose the precision you like here
【讨论】:
显然没有人阅读文档:
x的谱分解作为带有组件的列表的组件返回
values
- 包含
x的p特征值的向量,按照Mod(values)在可能很复杂的不对称情况下按递减 顺序排序(即使对于实矩阵)。对于实数非对称矩阵,仅当检测到特征值的复共轭对时,该向量才会是复数。
所以解(忽略复特征值)是
eigen(x)$values[1]
【讨论】:
看看eigen 函数。如果您的矩阵是x,您可以这样做:
max(eigen(x)$values)
【讨论】:
max 失败
eigen(·) 函数仅适用于对称矩阵。如果你给eigen(·) 输入一个非对称矩阵,你会得到一个错误。
处理所有复杂的特征值,然后计算到原点的距离将有助于找到最大的。
【讨论】:
你可以的,
eigenvalues = eigen(x)
max(abs(eigenvalues$values))
如果您想获取最大特征值的特征向量,请查看https://stat.ethz.ch/pipermail/r-help/2012-April/311192.html
【讨论】: