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
包中的 %^%
(矩阵幂)运算符感兴趣 ...
使用 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
包中的 %^%
(矩阵幂)运算符感兴趣 ...