Find the eigenvalues, eigenspaces, algebraic and geometric multiplicities for \[A = \begin{bmatrix} 1&−1&1\\ −1&1&−1\\ 1&−1&1 \end{bmatrix} \]
A <- matrix(c(1, -1, 1, -1, 1, -1, 1, -1, 1), nrow = 3, byrow = TRUE)
# Find the eigenvalues
eigenvalues<-eigen(A)$value
print(eigenvalues)
## [1] 3.000000e+00 8.881784e-16 0.000000e+00
# Find eigenvectors
eigenvectors<-eigen(A)$vectors
print(eigenvectors)
## [,1] [,2] [,3]
## [1,] 0.5773503 -0.8164966 0.0000000
## [2,] -0.5773503 -0.4082483 0.7071068
## [3,] 0.5773503 0.4082483 0.7071068
# Find eigenspaces
eigenspaces <-lapply(seq_along(eigenvalues), function(i) {
eigenvectors[, i]
})
print(eigenspaces)
## [[1]]
## [1] 0.5773503 -0.5773503 0.5773503
##
## [[2]]
## [1] -0.8164966 -0.4082483 0.4082483
##
## [[3]]
## [1] 0.0000000 0.7071068 0.7071068
# Calculate algebraic multiplicities (the multiplicity of each eigenvalue)
algebraic_multiplicities<-table(round(eigenvalues, digits = 10))
print(algebraic_multiplicities)
##
## 0 3
## 2 1
# Calculate geometric multiplicities (the dimension of each eigenspace)
geometric_multiplicities<-sapply(eigenvalues, function(lambda) {
sum(abs(eigenvalues - lambda) < 1e-10)
})
print(geometric_multiplicities)
## [1] 1 2 2