6.3 Diagonalisasi Dalam banyak kasus kita harus menghitung Ar , dengan A adalah matriks bujur sangkar n × n dan r adalah bilangan bulat positif yang besar. Dalam hal ini, jika kita langsung menghitung Ar , itu waktu komputasi mahal dan juga kita mungkin memiliki numerik yang besar kesalahan dalam komputer. Oleh karena itu kami ingin menyederhanakan Ar agar kita bisa menghitungnya secara efisien. Satu ide kunci untuk menyederhanakan Ar adalah diagonalisasi. Di dalam bagian kita akan membahas diagonalisasi pada matriks persegi.

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
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

dalam contoh lain

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

misal matriks D, dengan nilai Q berasal dari nilai eigen dan vektor eigen dari A, kita dapat menuliskannya menjadi ;

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