Membangun Matriks Tridiagonal dengan RStudio
Matriks tridiagonal adalah jenis matriks yang memiliki elemen non-nol hanya pada diagonal utama, diagonal di atasnya, dan diagonal di bawahnya. Dengan kata lain, hampir semua elemen di luar tiga diagonal ini adalah nol. Keunikan ini memberikan struktur matriks yang efisien dan bermanfaat dalam berbagai aplikasi komputasi.
Kegunaan utama dari matriks tridiagonal terletak pada efisiensi penyimpanan dan operasi matematika yang dilakukan terhadapnya. Karena sebagian besar elemennya adalah nol, matriks tridiagonal membutuhkan penyimpanan yang lebih sedikit dibandingkan dengan matriks umum. Hal ini sangat penting dalam mengelola dan memproses data besar, karena dapat menghemat ruang penyimpanan dan mempercepat operasi komputasi.
Berikut untuk membuat Matriks Tridiagonal
n <- 5
m <- matrix(0, n, n)
for (i in 1:n) {
m[i, i] <- 2
if (i > 1) {
m[i, i-1] <- -1
}
if (i < n) {
m[i, i+1] <- -1
}
}
Kode di atas akan membuat sebuah matriks tridiagonal dengan ukuran 5 x 5. Anda dapat mengganti nilai n sesuai dengan ukuran matriks yang diinginkan. Matriks tridiagonal adalah matriks yang memiliki nilai nol di luar tiga diagonal utama. Diagonal utama memiliki nilai yang sama, sedangkan diagonal di atas dan di bawah diagonal utama memiliki nilai yang sama dan tidak nol. Pada kode di atas, diagonal utama memiliki nilai 2, sedangkan diagonal di atas dan di bawah diagonal utama memiliki nilai -1.
print(m)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 2 -1 0 0 0
## [2,] -1 2 -1 0 0
## [3,] 0 -1 2 -1 0
## [4,] 0 0 -1 2 -1
## [5,] 0 0 0 -1 2
Diatas ini adalah hasil cetak Matriks sebelumnya
n <- 5
a <- rep(-1, n-1)
b <- rep(2, n)
c <- rep(-1, n-1)
d <- rnorm(n)
for (i in 2:n) {
m <- a[i-1]/b[i-1]
b[i] <- b[i] - m*c[i-1]
d[i] <- d[i] - m*d[i-1]
}
x <- numeric(n)
x[n] <- d[n]/b[n]
for (i in (n-1):1) {
x[i] <- (d[i] - c[i]*x[i+1])/b[i]
}
Kode di atas akan menyelesaikan proses eliminasi pada matriks tridiagonal dengan ukuran 5 x 5. Anda dapat mengganti nilai n sesuai dengan ukuran matriks yang diinginkan. Proses eliminasi pada matriks tridiagonal dapat diselesaikan dengan menggunakan algoritma Thomas. Algoritma ini memanfaatkan sifat tridiagonal dari matriks untuk mengurangi kompleksitas perhitungan. Pada kode di atas, vektor a, b, dan c merepresentasikan diagonal di atas, diagonal utama, dan diagonal di bawah diagonal utama dari matriks tridiagonal, sedangkan vektor d merepresentasikan vektor hasil. Proses eliminasi dilakukan dengan mengurangi diagonal di atas dan diagonal di bawah diagonal utama dengan faktor skalar yang sesuai, sehingga matriks menjadi matriks segitiga atas. Setelah itu, solusi dapat dicari dengan melakukan substitusi mundur. Solusi disimpan dalam vektor x.