Редакция: проблема в моем вопросе была Я попытался найти матрицу S
от equation 8, но это уравнение имеет ошибку.Как получить правые собственные векторы матрицы в R?
Как получить прямые прямые векторы матрицы в R? «Собственные()» дает только левых собственных векторов
Действительно последнее издание, я сделал большой беспорядок здесь, но этот вопрос действительно важен для меня:
eigen()
обеспечивает некоторую матрицу собственных векторов, из функция справки:
"Если 'г < - собственное (а)', и 'V < - $ г векторов; лам < - значения $ R', затем
A = V Lmbd V^(-1)
(до численного пуха), где Lmbd =diag(lam)
"
что A V = V Lmbd
, где V является матрица теперь проверить это:
set.seed(1)
A<-matrix(rnorm(16),4,4)
Lmbd=diag(eigen(A)$values)
V=eigen(A)$vectors
A%*%V
> A%*%V
[,1] [,2] [,3] [,4]
[1,] 0.0479968+0.5065111i 0.0479968-0.5065111i 0.2000725+0i 0.30290103+0i
[2,] -0.2150354+1.1746298i -0.2150354-1.1746298i -0.4751152+0i -0.76691563+0i
[3,] -0.2536875-0.2877404i -0.2536875+0.2877404i 1.3564475+0i 0.27756026+0i
[4,] 0.9537141-0.0371259i 0.9537141+0.0371259i 0.3245555+0i -0.03050335+0i
> V%*%Lmbd
[,1] [,2] [,3] [,4]
[1,] 0.0479968+0.5065111i 0.0479968-0.5065111i 0.2000725+0i 0.30290103+0i
[2,] -0.2150354+1.1746298i -0.2150354-1.1746298i -0.4751152+0i -0.76691563+0i
[3,] -0.2536875-0.2877404i -0.2536875+0.2877404i 1.3564475+0i 0.27756026+0i
[4,] 0.9537141-0.0371259i 0.9537141+0.0371259i 0.3245555+0i -0.03050335+0i
, и я хотел бы найти матрицу правых собственных векторов R
,
уравнения, которое определяет матрицу левых собственных векторов L
является:
L A = LambdaM L
уравнение, определим матрицу правых собственных векторов R
является:
A R = LambdaM R
и собственный() обеспечивает только матрицу V
:
A V = V Lmbd
Я хотел бы получить мат rix R
и LambdaM
для реальной матрицы A
, которая может быть отрицательно-определенной.
но транспонировать дает правильные собственные векторы транспонированной матрицы, не так ли? – Qbik
'eigen()' мне кажется, что я возвращаю правильные собственные векторы, как и следовало ожидать. Попробуйте это, чтобы увидеть, что он делает: 'm <- matrix (1: 4, ncol = 2); e <- собственный (m); е $ значения [1]; (m% *% e $ vectors [, 1])/e $ vector [, 1] '. –
с помощью «собственной» помощи: «Если« r <- собственный (A) »и« V <- r $ векторы, значения lam <- r $ », то A = V Lmbd V^(- 1) (до числового пуха), где Lmbd = 'diag (lam)' ", поэтому AV = V Lmbd не AV = Lmbd V – Qbik