Pengantar Model Linear - Aljabar Matriks

Video Pembelajaran - P1

Video Pembelajaran dapat diakses melalui link berikut : https://ipb.link/materipml

Aljabar Matriks

Definisi Matriks

Matriks adalah array dua dimensi yang mengandung angka, yang disusun dalam baris dan kolom. Matriks sangat penting dalam banyak bidang matematika dan statistik.

# Membuat matriks 3x3
A <- matrix(c(2, 4, 6, 1, 3, 5, 7, 9, 11), nrow = 3, ncol = 3, byrow = TRUE)
print(A)
##      [,1] [,2] [,3]
## [1,]    2    4    6
## [2,]    1    3    5
## [3,]    7    9   11
# Menambahkan kolom baru ke matriks
B <- cbind(A, c(8, 10, 12))
print(B)
##      [,1] [,2] [,3] [,4]
## [1,]    2    4    6    8
## [2,]    1    3    5   10
## [3,]    7    9   11   12
# Menambahkan baris baru ke matriks
C <- rbind(B, c(13, 14, 15, 16))
print(C)
##      [,1] [,2] [,3] [,4]
## [1,]    2    4    6    8
## [2,]    1    3    5   10
## [3,]    7    9   11   12
## [4,]   13   14   15   16

Operasi Dasar Matriks

Operasi dasar pada matriks mencakup penjumlahan, pengurangan, perkalian, dan komputasi determinan. Operasi-operasi ini sering digunakan dalam analisis data dan pemodelan statistik.

# Penjumlahan dan pengurangan matriks
A <- matrix(c(1, 2, 3, 4), nrow = 2, ncol = 2)
B <- matrix(c(5, 6, 7, 8), nrow = 2, ncol = 2)
C <- A + B  # Penjumlahan
D <- A - B  # Pengurangan
print(C)
##      [,1] [,2]
## [1,]    6   10
## [2,]    8   12
print(D)
##      [,1] [,2]
## [1,]   -4   -4
## [2,]   -4   -4
# Perkalian dua matriks (dot product)
E <- A %*% B
print(E)
##      [,1] [,2]
## [1,]   23   31
## [2,]   34   46
# Perkalian elemenwise (Hadamard product)
F <- A * B
print(F)
##      [,1] [,2]
## [1,]    5   21
## [2,]   12   32
# Determinan matriks
det_A <- det(A)
det_B <- det(B)
print(det_A)
## [1] -2
print(det_B)
## [1] -2
# Invers matriks (jika determinan tidak nol)
if(det_A != 0) {
  inv_A <- solve(A)
  print(inv_A)
}
##      [,1] [,2]
## [1,]   -2  1.5
## [2,]    1 -0.5

Putaran (Transpose) Matriks

Transpose matriks adalah operasi yang mengubah baris menjadi kolom dan sebaliknya. Transpose sering digunakan dalam berbagai manipulasi data dan pemodelan matematis.

# Membuat matriks
A <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3)

# Melakukan transpose
A_transpose <- t(A)
print(A_transpose)
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4
## [3,]    5    6
# Periksa apakah transpose dari transpose matriks sama dengan matriks awal
A_double_transpose <- t(A_transpose)
print(all(A == A_double_transpose))  # Harusnya TRUE
## [1] TRUE

Matriks Simetrik

Matriks disebut simetrik jika A’ = A. Matriks simetrik sering muncul dalam konteks analisis data, seperti dalam komputasi matriks kovarians.

# Membuat matriks simetrik
A <- matrix(c(4, 2, 2, 3), nrow = 2, ncol = 2)

# Memeriksa apakah matriks simetrik
is_symmetric <- all(A == t(A))
print(is_symmetric)  # Harusnya TRUE
## [1] TRUE
# Membuat matriks non-simetrik
B <- matrix(c(4, 2, 3, 5), nrow = 2, ncol = 2)

# Memeriksa apakah matriks non-simetrik
is_symmetric_B <- all(B == t(B))
print(is_symmetric_B)  # Harusnya FALSE
## [1] FALSE

Matriks Identitas

Matriks identitas adalah matriks diagonal persegi dengan elemen 1 pada diagonal utamanya dan 0 pada elemen lainnya. Matriks ini memainkan peran penting dalam banyak operasi matriks.

# Membuat matriks identitas 4x4
I <- diag(4)
print(I)
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    0    1    0    0
## [3,]    0    0    1    0
## [4,]    0    0    0    1
# Menggunakan matriks identitas dalam operasi matriks
A <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3)
A_identity <- A %*% diag(3)
print(A_identity)  # Harusnya sama dengan A
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9

Kebalikan (Inverse) Matriks

Kebalikan dari matriks A adalah matriks A^{-1} yang jika dikalikan dengan A akan menghasilkan matriks identitas. Invers matriks sangat penting dalam pemecahan sistem persamaan linear.

# Membuat matriks 3x3
A <- matrix(c(1, 2, 3, 0, 1, 4, 5, 6, 0), nrow = 3, ncol = 3)

# Menghitung kebalikan matriks
A_inv <- solve(A)
print(A_inv)
##      [,1] [,2] [,3]
## [1,]  -24   20   -5
## [2,]   18  -15    4
## [3,]    5   -4    1
# Verifikasi bahwa perkalian antara matriks dan inversnya menghasilkan identitas
I <- A %*% A_inv
print(round(I, 2))  # Membulatkan hasil untuk mendapatkan nilai yang lebih rapi
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1

Matriks Ortogonal

Matriks ortogonal adalah matriks dimana kolom-kolomnya adalah vektor-vektor ortogonal satu sama lain, dan norma setiap kolomnya adalah 1. Matriks ortogonal memiliki sifat Q×Q′=I. Matriks disebut ortogonal jika perkalian matriks tersebut dengan transpose-nya menghasilkan matriks identitas.

# Membuat matriks ortogonal 2x2
Q <- matrix(c(1/sqrt(2), 1/sqrt(2), -1/sqrt(2), 1/sqrt(2)), nrow = 2, ncol = 2)

# Verifikasi ortogonalitas
I <- Q %*% t(Q)
print(round(I, 2))  # Harus menghasilkan matriks identitas
##      [,1] [,2]
## [1,]    1    0
## [2,]    0    1

Akar Ciri (Eigen Value) Matriks

Eigen value dan eigen vector adalah konsep penting dalam banyak bidang, termasuk pengenalan pola, kompresi data, dan pemodelan statistik. Eigen value adalah skalar yang mengukur seberapa banyak eigen vector meregang atau menyusut di bawah transformasi linear.

# Membuat matriks 3x3
A <- matrix(c(6, 2, 1, 2, 3, 1, 1, 1, 1), nrow = 3, ncol = 3)

# Menghitung eigen values dan eigen vectors
eigen_result <- eigen(A)
eigen_values <- eigen_result$values
eigen_vectors <- eigen_result$vectors

print(eigen_values)
## [1] 7.2879921 2.1330745 0.5789334
print(eigen_vectors)
##           [,1]       [,2]       [,3]
## [1,] 0.8664322  0.4974250 -0.0431682
## [2,] 0.4530576 -0.8195891 -0.3507314
## [3,] 0.2098428 -0.2843274  0.9354806

Pangkat (Rank) Matriks

Pangkat atau rank dari matriks adalah jumlah dari baris atau kolom yang tidak nol, yang juga menunjukkan jumlah dimensi dalam ruang vektor yang dapat dihasilkan oleh kolom matriks tersebut.

# Membuat matriks 4x3
A <- matrix(c(1, 2, 3, 4, 2, 4, 6, 8, 1, 3, 5, 7), nrow = 3, ncol = 4)

# Menghitung rank matriks
rank_A <- qr(A)$rank
print(rank_A)
## [1] 3

Matriks Idempoten

Matriks idempoten adalah matriks yang apabila dikalikan dengan dirinya sendiri akan menghasilkan matriks itu sendiri. Matriks idempoten sering muncul dalam konteks proyeksi.

# Membuat matriks idempoten
M <- matrix(c(1, 0, 0, 0), nrow = 2, byrow = TRUE)

# Menghitung hasil perkalian matriks M dengan dirinya sendiri
M_squared <- M %*% M

# Memeriksa apakah M idempoten
is_idempotent <- all.equal(M, M_squared) == TRUE

# Output hasil
if (is_idempotent) {
  cat("Matriks ini idempoten.\n")
} else {
  cat("Matriks ini tidak idempoten.\n")
}
## Matriks ini idempoten.

Teras (Trace) Matriks

Teras atau trace dari matriks adalah jumlah elemen-elemen diagonal utama dari matriks tersebut. Trace sering digunakan dalam berbagai komputasi matematis, termasuk dalam penentuan eigen value.

# Membuat matriks 3x3
A <- matrix(c(5, 2, 3, 4, 9, 6, 7, 8, 10), nrow = 3, ncol = 3)
A
##      [,1] [,2] [,3]
## [1,]    5    4    7
## [2,]    2    9    8
## [3,]    3    6   10
# Menghitung trace
trace_A <- sum(diag(A))
print(trace_A)
## [1] 24