Pembahasan Numerical Iteration sesuai Mosaic Calculus


Nama : Rifqi Azhar Raditya

NIM : 230605110145

Program Studi: Teknik Informatika

Numerical Iteration adalah sebuah konsep yang berkaitan dengan melakukan perhitungan berulang kali untuk mendekati atau mencari solusi dari masalah matematika atau persamaan yang sulit. Ini mirip dengan melakukan perulangan dalam pemrograman, di mana kita secara berulang menghitung nilai berdasarkan aturan tertentu sampai kita mendapatkan solusi yang mendekati yang kita cari.

Dalam numerical iteration, kita biasanya memulai dengan tebakan awal dan kemudian melakukan perhitungan berulang kali berdasarkan suatu aturan matematis atau algoritma. Setiap iterasi mendekatkan Kita lebih dekat ke solusi yang diinginkan. Dalam Mosaic Calculus, notasi seperti Iterate digunakan untuk menggambarkan proses iterasi ini.

Contoh paling umum dari numerical iteration adalah Metode Newton-Raphson untuk mencari akar suatu fungsi matematika. Dalam metode ini, kita memulai dengan tebakan awal dan kemudian menggunakan rumus untuk menghitung tebakan berikutnya. Dengan berulang kali mengulangi proses ini, kita mendekati akar atau solusi yang diinginkan.

# Fungsi untuk iterasi dengan metode Newton-Raphson
# Fungsi ini mencari akar dari persamaan x^3 - 2x - 5 = 0

# 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)
}

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

# LANGKAH KETIGA - Contoh penggunaan iterasi numerik
result <- Iterate(~ newton_raphson(x), x0 = x0, n = n)

# LANGKAH KEEMPAT - Menampilkan hasil iterasi
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

Langkah Pertama, pada langkah ini kita mendefinisikan sebuah fungsi bernama newton_raphson, yang menerima sebuah argumen \(x\). Fungsi ini menggunakan metode Newton-Raphson, yaitu sebuah metode untuk mencari akar dari sebuah persamaan non-linear. Metode ini membutuhkan sebuah fungsi \(f\) dan turunannya \(f\)_prime, yang kita definisikan di dalam fungsi newton_raphson. Fungsi \(f\) adalah fungsi yang ingin kita cari akarnya, yaitu \(x^3 - 2x - 5 = 0\). Turunan dari fungsi \(f\) adalah \(f\)_prime, yaitu \(3x^2 - 2\). Rumus iterasi yang digunakan oleh metode Newton-Raphson adalah \(x\)new \(= x - f(x)\) / \(f\)\(prime(x)\), yang kita simpan di dalam variabel \(x\)_new. Fungsi newton_raphson akan mengembalikan nilai baru dari \(x\), yaitu \(x\)_new.

Langkah kedua, pada langkah ini kita menentukan nilai tebakan awal dan jumlah iterasi yang ingin kita lakukan. Tebakan awal adalah nilai \(x\) yang kita asumsikan sebagai akar dari fungsi \(f\). Jumlah iterasi adalah berapa kali kita ingin mengulangi proses iterasi untuk mendapatkan nilai \(x\) yang lebih akurat. Kita menentukan tebakan awal sebagai \(x0\), yaitu \(2\), dan jumlah iterasi sebagai \(n\), yaitu \(5\).

Langkah ketiga, pada langkah ini kita menjalankan fungsi Iterate dari pustaka mosaic, yang menerima tiga argumen: sebuah formula, sebuah nilai awal, dan sebuah jumlah iterasi. Formula adalah cara untuk menentukan fungsi yang ingin kita iterasikan dan variabel yang ingin kita ubah. Kita menggunakan tanda ~ sebelum nama fungsi newton_raphson untuk menunjukkan bahwa itu adalah sebuah formula. Kita juga menuliskan nama variabel \(x\) di dalam kurung, karena itu adalah variabel yang akan diubah oleh fungsi newton_raphson. Nilai awal adalah nilai tebakan awal yang kita tentukan sebelumnya, yaitu \(x0\). Jumlah iterasi adalah berapa kali kita ingin mengulangi proses iterasi, yaitu \(n\). Fungsi Iterate akan mengembalikan sebuah vektor yang berisi nilai-nilai x setelah diiterasi oleh fungsi newton_raphson. Kita menyimpan hasilnya di dalam variabel result.

Langkah keempat, pada langkah terakhir ini, kita menampilkan hasil iterasi yang tersimpan di dalam variabel result. Kita menggunakan fungsi print untuk mencetak isi dari variabel tersebut ke layar. Kita bisa melihat bahwa nilai-nilai \(x\) semakin mendekati akar sejati dari persamaan, yaitu sekitar \(2.0946\).