Dalam artikel ini, kita akan membahas Graphical Iteration. Oleh karena itu, istilah “Graphical Iteration” atau “iterasi grafis” mengacu pada gagasan yang menggambarkan proses iteratif dengan menggunakan representasi visual atau grafis. Ini membantu Anda memahami cara kerja iterasi atau pengulangan secara geometris. Konsep ini bermanfaat untuk melihat bagaimana nilai-nilai berulang berubah selama proses dan bagaimana mereka bergerak menuju nilai yang diinginkan.W

Untuk memulai, kita menggunakan metode Newton-Raphson untuk membuat fungsi untuk menghitung akar kuadrat dari suatu bilangan. Fungsi menerima parameter berikut: x (bilangan yang akan dicari akar kuadratnya), guess (tebakan awal), tolerance (toleransi untuk penghentian iterasi), dan max_iter.Selain itu, fungsi ini mengumpulkan langkah-langkah iterasi dalam sebuah frame data yang disebut result.

library(ggplot2)

# Langkah Pertama - Fungsi untuk menghitung akar kuadrat dengan metode Newton-Raphson
sqrt_newton_raphson <- function(x, guess, tolerance = 1e-6, max_iter = 100) {
  results <- data.frame(iteration = numeric(), guess = numeric())
  
  for (iteration in 1:max_iter) {
    new_guess <- (guess + x / guess) / 2
    
    results <- rbind(results, data.frame(iteration = iteration, guess = guess))
    
    if (abs(new_guess - guess) < tolerance) {
      return(list(result = new_guess, steps = results))
    }
    
    guess <- new_guess
  }
  
  cat("Iterasi maksimum tercapai.")
  return(list(result = guess, steps = results))
}

Dalam langkah kedua, kita menentukan bilangan x yang akan dicari akar kuadratnya, dan menginisialisasi initial_guess sebagai setengah dari x. Selanjutnya, kita menghitung akar kuadrat dengan menggunakan fungsi sqrt_newton_raphson dan mendapatkan hasil akhir dalam variabel result.

# Langkah kedua - Contoh penggunaan fungsi untuk menghitung akar kuadrat dari 55
x <- 55
initial_guess <- x / 2  # Tebakan awal: setengah dari x
result <- sqrt_newton_raphson(x, initial_guess)

Pada langkah ketiga, kita menggunakan ggplot2 untuk membuat visualisasi. Ini dimulai dengan memplot langkah-langkah iterasi sebagai garis hitam dengan geom_line. Kemudian, untuk mewakili akar kuadrat yang sebenarnya, kita menambahkan garis putus-putus merah muda dengan geom_hline.

# Langkah ketiga - Visualisasi iterasi
ggplot(result$steps, aes(x = iteration, y = guess)) +
  geom_line() +
  geom_hline(yintercept = sqrt(x), linetype = "dashed", color = "deeppink") +
  labs(title = "Graphical Iteration dengan Metode Newton-Raphson",
       x = "Iterasi", y = "Tebakan") +
  theme_minimal()