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
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.