首页 > 解决方案 > R编程中的特征函数

问题描述

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

我们知道,对于 A = V x D x V^(-1) 则 A^n = V x D^nx 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)

但我无法得到我想要的结果。

标签: rmatrixeigenvalueeigenvector

解决方案


我确实得到了这些结果匹配。也许您在某处将%*%(矩阵乘积)与*(元素/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...


推荐阅读