Iteration Berdasarkan Mosaic Calculus

Nama: Ahmad Bazli Naufal
NIM: 230605110119
Prodi: Teknik Informatika
Matakuliah: Kalkulus
Dosen Pengampu: Prof. Dr. Suhartono, M.Kom

Di artikel ini kita akan membahas apa itu Iteration. Iteration adalah proses mengulang suatu tindakan atau perhitungan dengan tujuan mendekati hasil yang diinginkan. Jika melihat pada mosaic calculus, iterasi (Iteration) digunakan untuk menyelesaikan berbagai masalah, seperti mencari akar dari suatu fungsi, menemukan nilai optimal dari suatu fungsi, atau menyelesaikan persamaan diferensial.

Untuk mencari akar dari fungsi f(x) = x^2 - 2, kita bisa menggunakan metode Newton-Raphson yang merupakan salah satu metode iterasi. Metode ini menggunakan turunan dari fungsi untuk memperkirakan akar dengan cara mengurangi selisih antara nilai tebakan dan nilai sebenarnya. Metode ini membutuhkan nilai awal, fungsi, dan toleransi sebagai masukan, dan menghasilkan nilai akar sebagai keluaran. Paket mosaicCalc menyediakan fungsi argM untuk melakukan metode Newton-Raphson.

Untuk menemukan nilai optimal dari suatu fungsi, kita bisa menggunakan metode gradien turun yang merupakan metode iterasi untuk optimisasi. Metode ini menggunakan gradien dari fungsi untuk mencari arah terbaik untuk menuju titik minimum atau maksimum. Metode ini membutuhkan nilai awal, fungsi, dan laju pembelajaran sebagai masukan, dan menghasilkan nilai optimal sebagai keluaran. Paket mosaicCalc menyediakan fungsi gradientDescent untuk melakukan metode gradien turun.

Untuk menyelesaikan persamaan diferensial, kita bisa menggunakan metode Euler yang merupakan metode iterasi untuk dinamika. Metode ini menggunakan laju perubahan dari suatu variabel untuk memperkirakan nilai variabel tersebut pada waktu berikutnya. Metode ini membutuhkan nilai awal, fungsi laju perubahan, dan selang waktu sebagai masukan, dan menghasilkan nilai variabel pada waktu tertentu sebagai keluaran. Paket mosaicCalc menyediakan fungsi euler untuk melakukan metode Euler.

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

# 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)
cat("Akar kuadrat dari", x, "adalah", result, "\n")
## Akar kuadrat dari 55 adalah 7.416198
## Akar kuadrat dari 55 adalah 7.416198

Dalam program ini, kami membuat fungsi sqrt_newton_raphson yang menghitung akar kuadrat dari suatu bilangan menggunakan metode Newton-Raphson. Fungsi ini mengambil tiga argumen: x (bilangan yang akan dicari akar kuadratnya), guess (tebakan awal), tolerance (toleransi untuk penghentian iterasi), dan max_iter (jumlah maksimum iterasi sebelum penghentian).

Kemudian, kami menginisialisasi tebakan awal dengan setengah dari x (Kita dapat mengganti tebakan awal sesuai kebutuhan). Selanjutnya, kami menggunakan loop for untuk melakukan iterasi hingga nilai akar kuadrat mendekati nilai sebenarnya dengan tingkat toleransi yang telah ditetapkan atau hingga mencapai jumlah iterasi maksimum.

Setelah iterasi selesai, program mencetak hasil akar kuadrat ke layar.