R中的特征值分解

问题描述

请原谅这个简单的问题,但如何在 R 中进行特征值分解?公式为 A=VDV^(-1) 其中 A 是方阵,V 是包含 A 的特征向量的矩阵,D 是包含 A 的不同特征值的对角矩阵。感谢您的帮助。

下面是一个可重现的例子:

##create the matrix
matrixa <- cbind(c(0.589,0.202),c(0.033,0.869))
##This is what I tried but it doesn't seem right
(eigen(matrixa)[[2]])*(eigen(matrixa)$values)*(solve(eigen(matrixa)[[2]]))

解决方法

你可以试试%*% + diag

with(
  eigen(matrixa),vectors %*% diag(values) %*% solve(vectors)
)

给出

      [,1]  [,2]
[1,] 0.589 0.033
[2,] 0.202 0.869