
我在R中对给定的矩阵P进行本征分析。我的MWE是
最小工作实例
P <-
matrix(
data=
c(
1, 0, 0, 0
, 0.4, 0, 0.6, 0
, 0.2, 0, 0.1, 0.7
, 0, 0, 0, 1
)
, nrow=4
, ncol=4
, byrow=TRUE
)
SPD <- eigen(P)
round(SPD$values, 3)
round(SPD$vectors, 3)
SVD <- svd(P)
round(SVD$d, 3)
round(SVD$u, 3)
round(SVD$v, 3)输出
[1] 1.0 1.0 0.1 0.0
[,1] [,2] [,3] [,4]
[1,] 0.866 0.000 0.000 0
[2,] 0.462 0.346 0.986 1
[3,] 0.192 0.576 0.164 0
[4,] 0.000 0.741 0.000 0
[1] 1.253 1.093 0.543 0.000
[,1] [,2] [,3] [,4]
[1,] -0.349 0.784 -0.502 0.108
[2,] -0.210 0.440 0.863 0.134
[3,] -0.577 -0.117 0.045 -0.807
[4,] -0.708 -0.422 -0.045 0.565
[,1] [,2] [,3] [,4]
[1,] -0.438 0.857 -0.272 0
[2,] 0.000 0.000 0.000 1
[3,] -0.147 0.231 0.962 0
[4,] -0.887 -0.461 -0.024 0由于某些原因,我无法复制结果,给出了附图。我是不是漏掉了什么?
发布于 2014-08-22 14:43:14
你的作者似乎想要解左特征向量。由于P不对称,所以左特征向量的矩阵不只是右特征向量矩阵的转置。左特征向量为P.转置的特征向量参见Wolfram http://mathworld.wolfram.com/Eigenvector.html .可以通过以下方法复制作者的示例
v <- eigen(t(P))$vectors它给出了P的左特征向量作为v的转置,即
t(v)
[,1] [,2] [,3] [,4]
[1,] 1.0000000 0.000000 0.0000000 0.0000000
[2,] 0.0000000 0.000000 0.0000000 1.0000000
[3,] -0.1727737 0.000000 0.7774816 -0.6047079
[4,] 0.1075984 0.134498 -0.8069883 0.5648918在重命名t(v)的第3行和第4行之后,您将得到作者的结果。
https://stackoverflow.com/questions/25411982
复制相似问题