R 编程中的特征函数

Eigen function in R programming

使用 R 中的 eigen() 函数考虑 A 的平方。

我们知道,对于 A = V x D x V^(-1) 那么 A^n = V x D^n x V^(-1),其中 V 的列包含 A 和 D 的特征向量是一个对角矩阵,A 的特征值在对角线上。

`                [,1] [,2] [,3] [,4]
           [1,]    1    5    9   13
           [2,]    2    6   10   14
A =        [3,]    3    7   11   15
           [4,]    4    8   12   16    `            

结果应该和A*A一样

`     [,1] [,2] [,3] [,4]
 [1,]   90  202  314  426
 [2,]  100  228  356  484
 [3,]  110  254  398  542
 [4,]  120  280  440  600    `      

我试过了

V <- eigen(A)$vectors
square_dia <- diag(eigen(A)$values,4,4)
D <- diag(A)*diag(A)

但是我得不到我想要的结果。

我确实得到了这些匹配的结果。也许您在某处混淆了 %*%(矩阵乘积)和 *(elementwise/Hadamard 乘积)?

V <- eigen(A)$vectors
D <- diag(eigen(A)$values)
M1 <- V %*% D^2 %*% solve(V)
M2 <- A %*% A
all.equal(M1, M2) ## TRUE

您可能对 expm 包中的 %^%(矩阵幂)运算符感兴趣 ...