Beberapa kasus mengharuskan kita untuk mengkoputasikan Misalkan A adalah sebuah matriks persegi dengan ukuran n x n, dan r adalah suatu variabel positif yang besar. Untuk menghitung A^r dengan efisien, kita dapat menggunakan metode diagonalisasi. Dalam metode ini, matriks A akan diubah menjadi matriks diagonal yang terdiri dari nilai eigen dan matriks transformasi. Dengan cara ini, perpangkatan matriks dapat dilakukan dengan mengangkat matriks diagonal ke pangkat r, yang jauh lebih efisien daripada mengalikan matriks A dengan dirinya sendiri sebanyak r kali secara langsung.
Contoh Matrix
Q <- matrix(c(1,1,-1,1),2,2)
D <- matrix(c(3,0,0,1),2,2)
Q %*% D %*% solve(Q)
## [,1] [,2]
## [1,] 2 1
## [2,] 1 2
Sebuah matriks dapat mengalami diagonalisasi jika matriks tersebut memiliki vektor-vektor eigennya sendiri. Hal ini berarti bahwa setiap vektor eigen memiliki nilai eigen yang terkait secara khusus dengan matriks tersebut. Dalam proses diagonalisasi, matriks akan diubah menjadi bentuk diagonal, di mana elemen-elemennya hanya ada pada diagonal utama dan sisanya nol. Proses ini memungkinkan untuk mengidentifikasi dan memanfaatkan hubungan antara matriks dan vektor-vektor eigen yang terkait untuk analisis dan perhitungan yang lebih efisien.
A <- matrix(c(2,-1,1,-1,-3,1,3,3,3),3,3)
eigen(A)
## eigen() decomposition
## $values
## [1] 4.397382 -3.824458 1.427076
##
## $vectors
## [,1] [,2] [,3]
## [1,] 0.7437078 0.2542122 0.8674476
## [2,] 0.1624484 0.9508909 -0.3981322
## [3,] 0.6484668 -0.1765859 -0.2983713
Sebuah matrix pun bisa diagonalisasi apabila matrix tersebut mempunyai banyak eigen dengan nilai yang berbeda.
A <- matrix(c(1, 0, 3, -2, 2, -3, 1, -3, -2), 3, 3)
eigen(A)
## eigen() decomposition
## $values
## [1] 4.50349224 -3.56576496 0.06227272
##
## $vectors
## [,1] [,2] [,3]
## [1,] 0.5276592 -0.01504018 -0.7715961
## [2,] -0.6521968 -0.47442002 -0.5343413
## [3,] 0.5442565 -0.88017012 -0.3451359
Jika kita ingin memiliki matriks D yang terdiri dari nilai eigen dan vektor eigen dari matriks A, kita dapat menulisnya sebagai berikut:
p <- eigen(A)$vectors
D <- diag(eigen(A)$values)
p %*% D %*% solve(p)
## [,1] [,2] [,3]
## [1,] 1.000000e+00 -2 1
## [2,] -7.008283e-16 2 -3
## [3,] 3.000000e+00 -3 -2