r - 如何在R中获得矩阵的正确特征向量?

标签 r function eigenvector eigenvalue

版本:我的问题中的问题是我试图找到矩阵 S来自 equation 8但这个方程有错误。

如何直接获得 R 中矩阵的右特征向量? 'eigen()' 只给出左特征向量

真的是上一版 ,我在这里弄得一团糟,但这个问题对我来说真的很重要:
eigen()提供一些 矩阵特征向量,来自函数帮助:

"如果‘r <- eigen(A)’,并且‘V <- r$vectors; lam <- r$values’,则

                      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


和 eigen() 仅提供矩阵 V :

A V = V Lmbd


我想获得矩阵 RLambdaM对于实矩阵 A这可能是负定的。

最佳答案

一个有效的例子。

默认(= 右特征向量):

m <- matrix(1:9,nrow=3)
e <- eigen(m)
e1 <- e$vectors
zapsmall((m %*% e1)/e1) ## right e'vec
##          [,1]      [,2] [,3]
## [1,] 16.11684 -1.116844    0
## [2,] 16.11684 -1.116844    0
## [3,] 16.11684 -1.116844    0

左特征向量:
eL <- eigen(t(m))    
eL1 <- eL$vectors

(我们必须多加努力,因为我们需要
乘以左边的行向量;如果
我们只提取了一个特征向量,R 的无知
行/列向量的区别将使它
“做正确的事”(即 (eL1[,1] %*% m)/eL1[,1]只是工作))
zapsmall(t(eL1) %*% m/(t(eL1)))
##          [,1]      [,2]      [,3]
## [1,] 16.116844 16.116844 16.116844
## [2,] -1.116844 -1.116844 -1.116844
## [3,]  0.000000  0.000000  0.000000

关于r - 如何在R中获得矩阵的正确特征向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912279/

相关文章:

python - PCA——使用 Numpy 计算减小尺寸的矩阵

r - 使用 R : Fama MacBeth Regression - Portfolio formation and Stock return ranking

r - 将R中的时间数据绘制为各种分辨率(分钟,小时,秒等)。

function - Fortran return 语句是否已过时?

header 中的 Javascript 函数显示为未定义

c++ - 使用 cuda 7.0 RC 中的 cusolver 进行特征值和特征向量计算

r - 如何使用 Tidyverse 在 R 中聚合凌乱的季度数据,搜索第一组连续的四个季度

r - 与 dplyr 中的 starts_with() 相反

javascript - 如何阻止变量在 JavaScript 中按 F5 时被破坏

machine-learning - 特征脸方法中的权重