Membuat Matriks dengan Fungsi matrix( )
Norman Matloff (2009) menyatakan sebagai berikut.
“Matrix is a vector with two additional attributes, the number of rows and number of columns.
Multidimensional vectors in R are called arrays. A two-dimensional array is also called a matrix, and is eligible for the usual matrix mathematical operations.
Matrix row and column subscripts begin with 1, so for instance the upper-left corner of the matrix a is denoted a[1,1]. The internal linear storage of a matrix is in column-major-order, meaning that first all of column 1 is stored, then all of column 2, etc.”
Berdasarkan uraian di atas dapat ditarik informasi bahwa suatu matriks merupakan suatu vektor dengan dua atribut tambahan (two additional attributes), yakni jumlah baris dan jumlah kolom. Vektor multidimensi (multidimensional vectors) dalam R disebut arrays. Array dua dimensi (two-dimensional array) juga disebut matriks. Perhatikan Gambar 1.
Pada Gambar 1 digunakan fungsi matrix( ) untuk membuat matriks. Perintah R y <- matrix(c(1,2,3,4), nrow=2, ncol=2) dapat diartikan membuat suatu matriks dengan nama “y”, jumlah baris sebanyak 2, dan jumlah kolom sebanyak 2. Elemen-elemen pada matriks y adalah 1, 3, 2, dan 4. Diketahui:
- Nilai 1 menempati posisi baris ke-1 dan kolom ke-1.
- Nilai 2 menempati posisi baris ke-2 dan kolom ke-1.
- Nilai 3 menempati posisi baris ke-1 dan kolom ke-2.
- Nilai 4 menempati posisi baris ke-2 dan kolom ke-2.
Perintah R y[1,1] berarti menampilkan nilai pada matriks y, pada posisi baris ke-1 dan kolom ke-1, yakni 1. Perintah R y[1,2] berarti menampilkan nilai pada matriks y, pada posisi baris ke-1 dan kolom ke-2, yakni 3, dan seterusnya. Perhatikan Gambar 2.
Pada Gambar 3, perintah R z <- matrix(c(1,2,3,4,5,6), nrow=2) dapat diartikan membuat suatu matriks bernama z, yang jumlah barisnya sebanyak 2. Elemen-elemen pada matriks z adalah 1, 2, 3, 4, 5, dan 6. Perhatikan bahwa:
- Nilai 1 menempati posisi baris ke-1 dan kolom ke-1.
- Nilai 2 menempati posisi baris ke-2 dan kolom ke-1
- Nilai 3 menempati posisi baris ke-1 dan kolom ke-2.
- Nilai 4 menempati posisi baris ke-2 dan kolom ke-2.
- Nilai 5 menempati posisi baris ke-1 dan kolom ke-3.
- Nilai 6 menempati posisi baris ke-2 dan kolom ke-3.
Pada Gambar 5.4, perintah R z <- matrix(c(1,2,3,4,5,6), ncol=2) dapat diartikan membentuk suatu matriks bernama z, yang jumlah kolomnya sebanyak 2. Elemen-elemen pada matriks z adalah 1, 2, 3, 4, 5, dan 6. Perhatikan bahwa:
- Nilai 1 menempati posisi baris ke-1 dan kolom ke-1.
- Nilai 2 menempati posisi baris ke-2 dan kolom ke-1.
- Nilai 3 menempati posisi baris ke-3 dan kolom ke-1.
- Nilai 4 menempati posisi baris ke-1 dan kolom ke-2.
- Nilai 5 menempati posisi baris ke-2 dan kolom ke-2.
- Nilai 6 menempati posisi baris ke-2 dan kolom ke-2.
Namun perhatikan Gambar 5 dan Gambar 6.
Berdasarkan Gambar 6, pada perintah R z <- matrix(x(1,2,3,4,5,6), ncol=2, byrow=TRUE) berarti membuat matriks bernama z dengan jumlah kolom sebanyak 2. Perhatikan bahwa:
- Nilai 1 menempati posisi baris ke-1 dan kolom ke-1.
- Nilai 2 menempati posisi baris ke-1 dan kolom ke-2.
- Nilai 3 menempati posisi baris ke-2 dan kolom ke-1.
- Nilai 4 menempati posisi baris ke-2 dan kolom ke-2.
- Nilai 5 menempati posisi baris ke-3 dan kolom ke-1.
- Nilai 6 menempati posisi baris ke-3 dan kolom ke-2.
Pada Gambar 6, perintah R z[1,]berarti menampilkan elemen-elemen dari matriks z pada baris ke-1, yakni 1 dan 2. Perintah R z[2,] berarti menampilkan elemen-elemen dari matriks z pada baris ke-2, yakni 3 dan 4. Perintah Rz[,1] berarti menampilkan elemen-elemen dari matriks z pada kolom ke-1, yakni 1, 3, dan 5.
Menugaskan Bilangan ke Matriks
Perhatikan Gambar 7 perintah R a <- matrix(nrow=3, ncol=2) berarti membentuk matriks bernama a, dengan jumlah baris sebanyak 3 dan jumlah kolom sebanyak 2. Pada awalnya, elemen dari matriks a adalah NA (not available).
Perhatikan bahwa:
- Perintah R a[1,1] <- 1 berarti menugaskan bilangan 1 ke matriks a pada baris ke-1, kolom ke-1.
- Perintah R a[2,1] <- 2 berarti menugaskan bilangan 2 ke matriks a pada baris ke-2, kolom ke-1.
- Perintah R a[3,1] <- 3 berarti menugaskan bilangan 3 ke matriks a pada baris ke-3, kolom ke-1.
- Perintah R a[1,2] <- 4 berarti menugaskan bilangan 4 ke matriks a pada baris ke-1, kolom ke-2.
- Perintah R a[2,2] <- 5 berarti menugaskan bilangan 5 ke matriks a pada baris ke-2, kolom ke-2.
- Perintah R a[3,2] <- 6 berarti menugaskan bilangan 6 ke matriks a pada baris ke-3, kolom ke-2.
Mengganti Elemen Matriks
Pada Gambar 8, misalkan elemen matriks a pada baris ke-2 dan kolom ke-2, yakni nilai 5, ingin diganti menjadi 1000. Perintah R untuk mengganti elemen matriks a pada baris ke-2 dan kolom ke-2, yakni nilai 5, menjadi 1000 adalah a[2,2] <- 1000.
Berbagai Cara Menampilkan Elemen Matriks
Gambar 9 menampilkan berbagai cara untuk menampilkan elemen matriks. Berdasarkan Gambar 9, perintah R A[,c(1)] berarti menampilkan elemen-elemen matriks A pada kolom ke-1, yakni 1, 2, dan 3. Perintah R A[,-c(2:4)] berarti menampilkan elemen-elemen matriks A, selain dari pada kolom ke-2 sampai ke-4. Dengan kata lain, berarti menampilkan elemen-elemen matriks A pada kolom ke-1, yakni 1, 2, dan 3. Perintah R A[,c(1,4)] berarti menampilkan elemen-elemen matriks A pada kolom ke-1 dan ke-4. Perintah R A[,c(2:4)] berarti menampilkan elemen-elemen matriks A pada kolom ke-2 sampai ke-4. Perintah R A[c(1,3),] berarti menampilkan elemen-elemen matriks A pada baris ke-1 dan ke-3.
Menghapus Baris dan Kolom pada Matriks
Pada perintah R A <- A[-c(2), ] bertujuan untuk menghapus baris ke-2 dari matriks A. Sementara perintah R A <- A[, -c(4)] bertujuan menghapus kolom ke-4 dari matriks A.
Mengganti Elemen Matriks (Bagian 2)
Pada Gambar 11 dan Gambar 12 diberikan berbagai contoh perintah R untuk mengganti elemen matriks. Berdasarkan Gambar 11, diberikan matriks B, C, dan D. Diketahui digunakan fungsi rbind(58) untuk membuat matriks C, sementara fungsi cbind( ) digunakan untuk membuat matriks D. Berdasarkan Gambar 11, Perintah R B[,1] <- C[,2] berarti mengganti elemen-elemen matriks B pada kolom ke-1, dengan elemen-elemen matriks C pada kolom ke-2.Perintah R B[,1] <- D[,1] berarti mengganti elemen-elemen matriks B pada kolom ke-1, dengan elemen-elemen matriks D pada kolom ke-1. Perintah R B[,c(2,3)] <- C berarti mengganti elemen-elemen matriks B pada kolom ke-2 dan ke3, dengan elemen-elemen pada matriks C. Perintah R B[c(1),] <- D[c(2),] mengganti elemen-elemen matriks B pada baris ke-1, dengan elemen-elemen pada matriks D, baris ke-2. Namun memberikan informasi kesalahan
Error in B[c(1), ] = D[c(2), ] :
number of items to replace is not a multiple of replacement length
Hal ini karena jumlah elemen dari matriks B pada baris ke-1 sebanyak 3, sementara jumlah elemen dari matriks D pada baris ke-2 sebanyak 2. Selanjutnya, perintah R C[c(1),] <- D[c(2),] berarti mengganti elemen-elemen matriks C pada baris ke-1, dengan elemen-elemen pada matriks D, baris ke-2.
Operasi Matematika pada Matriks (Bagian 1)
Perhatikan Gambar 13. Perintah R B+C berarti
Perintah R A+B pada Gambar 14 memberi pesan kesalahan dikarenakan matriks A terdiri dari 2 baris dan 3 kolom, sementara matriks B terdiri dari 2 baris dan 2 kolom.
Perintah R B/C pada Gambar 15 berarti
Perintah R B%%C pada Gambar 16 berarti
Perintah R B^C pada Gambar 17 berarti
Fungsi rowMeans( ), colMeans(), rowSums( ), dan colSums( )
Perhatikan Gambar 19. Perintah R rowMeans(A) berarti
Perintah R colMeans(A) berarti
Perintah R rowSums(A) berarti
Perintah R colSums(A) berarti
Transpose Matriks
Gambar 21 mempelihatkan penggunaan fungsi det( ) untuk menentukan determinan suatu matriks.
Invers Matriks
Gambar 22 mempelihatkan penggunaan fungsi solve( ) untuk menentukan invers suatu matriks.
Fungsi eigen( ) untuk Menentukan Nilai Eigen dan Vektor Eigen dari Matriks
Matriks persegi (square matrix) A dikatakan memiliki nilai eigen 𝜆, dengan vektor eigen-nya yang bersesuaian (eigenvector) 𝑥 ≠ 0, jika
A𝑥 = 𝜆𝑥
Misalkan diberikan matriks
Gambar 23 memperlihatkan nilai eigen dan vektor eigen dari matriks A. Perhatikan bahwa
Sehingga matriks A memiliki 2 pasang nilai eigen dan vektor eigen, yakni
Eliminasi Gauss-Jordan untuk Menentukan Solusi dari Sistem Persamaan Linear
Misalkan diberikan sistem persamaan linear sebagai berikut.
Gambar 25 dan Gambar 26 diberikan ilustrasi dalam R terkait eliminasi Gauss-Jordan, untuk memperoleh solusi dari sistem persamaan linear di atas.
Berdasarkan Gambar 26, diperoleh solusi 𝑥 = 3, 𝑦 = 2, dan 𝑧 = 1. Perhatikan bahwa
Fungsi rref( ) untuk Menentukan Solusi dari Sistem Persamaan Linear
Misalkan diberikan sistem persamaan linear sebagai berikut.
Gambar 27 diperlihatkan ilustrasi dalam R penggunaan fungsi rref( ) untuk menentukan solusi dari sistem persamaan di atas. Diketahui solusi dari sistem persamaan linear tersebut adalah 𝑥 = 3, 𝑦 = 2, dan 𝑧 = 1.
Fungsi LUsplit( ) dan lu.decomposition( ) untuk Dekomposisi LU
Misalkan diberikan matriks A sebagai berikut.
Gambar 28 diberikan ilustrasi dalam R penggunaan fungsi LUsplit( ) untuk memperoleh matriks segitiga bawah 𝐿 dan matriks segitiga atas 𝑈, yang memenuhi 𝐿𝑈 = 𝐴.
Fungsi chol( ) untuk Dekomposisi Cholesky
Misalkan diberikan matriks simetri A dengan dimensi 3 × 3.
Karena A matriks simetri, maka berlaku
Sehingga
Sebagai contoh misalkan diberikan matriks simetri A sebagai berikut.
Perhatikan bahwa
Matriks simetri A dapat dinyatakan sebagai perkalian matriks segitiga bawah 𝐿 dan matriks segitiga atas 𝑈, di mana berlaku
Sehingga
Pada Gambar 29 diberikan ilustrasi dalam R penggunaan fungsi chol( ) untuk menentukan matriks
dan
sehingga memenuhi
Fungsi qr( ) untuk Dekomposisi QR
Misalkan diberikan matriks A sebagai berikut.
Gambar 30 diberikan ilustrasi dalam R penggunaan fungsi qr( ) terkait dekomposisi QR, untuk memperoleh matriks Q dan R, sehingga memenuhi 𝑄𝑅 = 𝐴. Berdasarkan Gambar 30, diperoleh
Memberi Nama Pada Kolom dan Baris dengan Fungsi colnames( ) dan rownames( )
Gambar 31 diberikan ilustrasi dalam R penggunaan fungsi colnames( ) dan rownames( ) untuk memberi nama pada kolom dan baris.
Fungsi apply( ) untuk Menampilkan Berbagai Ukuran Deskriptif berdasarkan Baris atau Kolom dari Matriks
Gambar 32 diberikan ilustrasi dalam R penggunaan apply( ) untuk menampilkan berbagai ukuran deskriptif berdasarkan baris atau kolom dari matriks. Berdasarkan Gambar 32, diketahui:
- Perintah R apply(A, 1, sum) #Jumlah dari masing-masing baris (nilai 1) berarti menjumlahkan bilangan-bilangan dari matriks A berdasarkan baris, yakni 1 + 2 + 3 = 6 dan4 + 5 + 6 = 15. Pada perintah R apply(A, 1, sum), angka “1” tersebut memerintahkan perhitungan berdasarkan baris.
- Perintah R apply(A, 2, sum) #Jumlah dari masing-masing kolom (nilai 2) berarti menjumlahkan bilangan-bilangan dari matriks A berdasarkan kolom, yakni 1 + 4 = 5, 2 + 5 = 7 dan3 + 6 = 9. Pada perintah R apply(A, 2, sum), angka “2” tersebut memerintahkan perhitungan berdasarkan kolom.
- Perintah R apply(A, sum) memberikan pesan kesalahan, begitu juga dengan perintah R apply(A, 3, sum).
Perhatikan Gambar 33. Perintah R A <- matrix(nrow = 4, ncol = 5) berarti membuat matriks bernama A dengan jumlah baris sebanyak 4 dan jumlah kolom sebanyak 5. Selanjutnya menampilkan elemen dari matriks A, yang ternyata seluruhnya adalah “NA” atau “not available (tidak tersedia)”. Selanjutnya:
- Perintah R A[1,1] <- 2 berarti menugaskan bilangan 2 ke matriks A pada posisi baris ke-1 dan kolom ke-1.
- Perintah R A[1,3] <- 5 berarti menugaskan bilangan 5 ke matriks A pada posisi baris ke-1 dan kolom ke-3, dan seterusnya.
- Perintah R rowSums(A) bertujuan untuk menjumlahkan bilangan-bilangan berdasarkan baris. Namun hasil dari perintah rowSums(A) adalah NA NA NA NA.
- Selanjutnya perintah R yang sebelumnya rowSums(A) diganti menjadi rowSums(A, na.rm=TRUE). Perintah R rowSums(A, na.rm=TRUE) memberikan hasil 21 4 5 7.
- Perintah R apply(A, 1, function(x) length(which(!is.na(x)))) memberikan hasil 4 2 3 2. Nilai 4 berarti banyaknya bilangan pada baris pertama sebanyak 4, yakni 2, 5, 6, dan 8. Nilai 2 berarti banyaknya bilangan pada baris kedua sebanyak 2, yakni 3 dan 1.
- Pada Gambar 34 perintah R attributes(A) memberikan informasi dimensi dari matriks A, yakni terdiri dari 4 baris dan 5 kolom.