Я использовал функцию linshrink пакета nlshrink , чтобы получить оценку усадки собственных значений симметричной матрицы M .К сожалению функция не возвращает собственные векторы, которые мне тоже нужны.Как я могу их вручную вычислить?Я думал о применении определения и использования ( M - λ I ) x = 0 для каждого собственного значения λ, но яне уверен, как правильно это сделать, так как вычислил матрицу A = M - λ I и использовал ее как вход в solve(A,b)
с b=rep(0,nrow(M))
очевидно, возвращает вектор ноль.Кто-нибудь может мне помочь?Вот несколько строк для предоставления рабочего примера:
library(nlshrink)
M <- matrix(1:16,4)
M[lower.tri(M)] = t(M)[lower.tri(M)]
M <- M/16.1
shrinkval <- linshrink(M) #eigenvalues