Пожалуйста, простите меня за этот простой вопрос, но как выполнить разложение по собственным значениям в 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]]))
1
cliu 12 Фев 2021 в 20:05

1 ответ

Лучший ответ

Вы можете попробовать %*% + diag

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

Который дает

      [,1]  [,2]
[1,] 0.589 0.033
[2,] 0.202 0.869
1
ThomasIsCoding 12 Фев 2021 в 17:25