Sekarang kami menyelesaikan sistem persamaan linier dari kumpulan data Guinness menggunakan Aturan Cramer dan kemudian bandingkan solusinya dengan fungsi solve() untuk melihat bagaimana mereka berbeda.

Menerapkan Cramer’s Rule secara langsung pada sistem persamaan linear dengan matriks 18x18, berikut adalah contoh implementasinya:

# Fungsi untuk menerapkan Cramer's Rule
cramers_rule <- function(A, b) {
  n <- ncol(A)  # Jumlah variabel
  det_A <- det(A)  # Determinan matriks koefisien
  
  # Inisialisasi array untuk menyimpan solusi
  x <- numeric(n)
  
  # Solusi menggunakan Cramer's Rule
  for (i in 1:n) {
    A_i <- A  # Duplikat matriks koefisien
    A_i[, i] <- b  # Mengganti kolom ke-i dengan vektor konstanta
    
    det_A_i <- det(A_i)  # Determinan matriks A_i
    
    if (det_A != 0) {
      x[i] <- det_A_i / det_A  # Solusi untuk variabel ke-i
    } else {
      stop("Sistem tidak memiliki solusi unik.")
    }
  }
  
  return(x)
}

# Contoh sistem persamaan linear dengan matriks 18x18
A <- matrix(rnorm(18*18), nrow = 18)  # Matriks koefisien acak
b <- rnorm(18)  # Vektor konstanta acak

# Solusi menggunakan Cramer's Rule
solution <- cramers_rule(A, b)
print(solution)
##  [1] -3.521470269 -3.971135806 -1.903008326  1.910279080 -1.220192564
##  [6]  1.281301938  0.252581742  0.990610566  1.969547633  2.054475843
## [11] -0.404486379 -2.689669940  0.002290753  2.454039285  3.516442898
## [16]  0.705675030  0.986792972 -2.262442085

Pada contoh di atas, kita menggunakan fungsi rnorm() untuk menghasilkan matriks koefisien acak dengan ukuran 18x18 dan vektor konstanta acak dengan panjang 18. Kemudian, kita memanggil fungsi cramers_rule() dengan matriks koefisien A dan vektor konstanta b sebagai argumen. Fungsi ini menghitung determinan matriks koefisien det_A dan menggunakan loop untuk menghitung solusi menggunakan Cramer’s Rule.

contoh lain yang menggunakan Cramer’s Rule dengan matriks 4x4 dalam R:

# Fungsi untuk menerapkan Cramer's Rule
cramers_rule <- function(A, b) {
  n <- ncol(A)  # Jumlah variabel
  det_A <- det(A)  # Determinan matriks koefisien
  
  # Inisialisasi array untuk menyimpan solusi
  x <- numeric(n)
  
  # Solusi menggunakan Cramer's Rule
  for (i in 1:n) {
    A_i <- A  # Duplikat matriks koefisien
    A_i[, i] <- b  # Mengganti kolom ke-i dengan vektor konstanta
    
    det_A_i <- det(A_i)  # Determinan matriks A_i
    
    if (det_A != 0) {
      x[i] <- det_A_i / det_A  # Solusi untuk variabel ke-i
    } else {
      stop("Sistem tidak memiliki solusi unik.")
    }
  }
  
  return(x)
}

# Contoh sistem persamaan linear dengan matriks 4x4
A <- matrix(c(2, 1, 1, -1,
              3, 2, -1, 2,
              -2, 3, 2, -1,
              1, -1, 3, -2), nrow = 4, byrow = TRUE)  # Matriks koefisien
b <- c(4, 1, 3, -1)  # Vektor konstanta

# Solusi menggunakan Cramer's Rule
solution <- cramers_rule(A, b)
print(solution)
## [1]  0.5964912  1.7192982 -2.0526316 -3.1403509

Pada contoh di atas, kita menggunakan matriks koefisien 4x4 dengan vektor konstanta yang sesuai. Kemudian, kita memanggil fungsi cramers_rule() dengan matriks koefisien A dan vektor konstanta b sebagai argumen. Fungsi ini menghitung determinan matriks koefisien det_A dan menggunakan loop untuk menghitung solusi menggunakan Cramer’s Rule.

sumber : Yoshida, Ruriko. Linear algebra and its applications with R. CRC Press, 2021.