Dalam artikel ini, kita akan membahas konsep Numerical Iteration. Ini berkaitan dengan melakukan perhitungan berulang kali dalam upaya menyelesaikan masalah atau persamaan matematika yang sulit. Dalam pemrograman, melakukan perulangan berarti menghitung nilai berdasarkan aturan tertentu sampai kita menemukan solusi yang tepat.

Kita biasanya memulai dengan tebakan awal dan kemudian melakukan perhitungan berulang kali berdasarkan aturan matematis atau algoritma dalam numerical iteration. Setiap upaya membawa kita lebih dekat ke solusi yang diharapkan. Proses iterasi dalam Mosaic Calculus digambarkan dengan notasi seperti Iterate.

Metode Newton-Raphson untuk mencari akar suatu fungsi matematika adalah contoh paling umum dari iterasi numerik. Metode ini memulai dengan tebakan awal dan kemudian menggunakan rumus untuk menghitung tebakan berikutnya; dengan berulang kali mengulangi proses ini, kita mencapai akar atau solusi yang diinginkan.

Langkah Pertama: Kita mendefinisikan fungsi Newton-Raphson yang menerima argumen X. Fungsi ini menggunakan metode Newton-Raphson, yang merupakan teknik untuk menemukan akar dari sebuah persamaan non-linear. Metode ini membutuhkan fungsi f dan turunannya, f_prime, yang didefinisikan dalam fungsi newton_raphson. Fungsi f adalah fungsi yang ingin kita cari akarnya, yaitu x_3 - 2x - 5 = 0, dan turunannya adalah f_prime, yang kita simpan di variabel x_new. Fungsi newton_raphson akan mengembalikan nilai baru dari x, yaitu x_new.

# LANGKAH PERTAMA:
newton_raphson <- function(x) {
  
  # Fungsi dan turunannya
  f <- function(x) x^3 - 2*x - 5
  f_prime <- function(x) 3*x^2 - 2
  
  # Rumus iterasi
  x_new <- x - f(x) / f_prime(x)
  
  # Mengembalikan nilai baru dari x
  return(x_new)
}

Pada langkah kedua, kita menentukan nilai tebakan awal dan jumlah iterasi yang ingin kita lakukan. Nilai x yang kita asumsikan sebagai akar fungsi f adalah tebakan awal, dan jumlah iterasi adalah berapa kali kita ingin mengulangi proses iterasi untuk mendapatkan nilai x yang lebih akurat. Kita menentukan tebakan awal x0, yang adalah 2, dan jumlah iterasi n, yang adalah 5.

# LANGKAH KEDUA - Tebakan awal dan jumlah iterasi
x0 <- 2
n <- 5

Pada langkah ketiga, kita menggunakan fungsi Iterate pustaka mosaic. Fungsi ini menerima tiga argumen: sebuah formula, nilai awal, dan jumlah iterasi. Untuk menentukan fungsi dan variabel yang ingin kita iterasikan, Anda dapat menggunakan formula. Untuk menunjukkan bahwa nama fungsi newton_raphson adalah sebuah formula, kita menambahkan tanda “~”. Karena variabel ini akan diubah oleh fungsi newton_raphson, kita juga menuliskan nama variabel x di dalam kurung. Nilai awal adalah nilai tebakan awal sebelumnya, yaitu x0. Jumlah iterasi adalah jumlah kali kita ingin mengulangi proses iterasi, yaitu n. Setelah fungsi newton_raphson diiterasi, fungsi iterasi akan mengembalikan sebuah vektor yang berisi nilai-nilai x. Kami memasukkan hasilnya ke dalam variabel result.

result <- Iterate(~ newton_raphson(x), x0 = x0, n = n)

Pada langkah terakhir, kita menampilkan hasil iterasi yang tersimpan di dalam variabel result. Untuk melakukan ini, kita menggunakan fungsi print untuk mencetak isi variabel ke layar. Nilai-nilai x semakin mendekati akar persamaan sebenarnya, yaitu sekitar 2.0946.

print(result)
##   n        x
## 1 0 2.000000
## 2 1 2.100000
## 3 2 2.094568
## 4 3 2.094551
## 5 4 2.094551
## 6 5 2.094551