Nama : Rahmad Hidayat Al Fahrizzi
NIM : 230605110135
Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Universitas : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Program Studi : Teknik Informatika

Baik, saya akan memberikan sedikit penjelasan pada materi zero finding dan cara implementasinya dalam contoh kode program R dengan metode Newton-Raphson.

Zero Finding (Pencarian Akar) Zero finding adalah suatu metode dalam kalkulus numerik yang bertujuan untuk mencari nilai dari variabel � x yang membuat suatu fungsi � ( � ) f(x) menjadi nol. Dalam konteks ini, kita mencari akar dari fungsi tersebut.

Metode Newton-Raphson Metode Newton-Raphson adalah salah satu metode iteratif untuk mencari akar suatu fungsi. Ide dasar metode ini adalah mengiterasi titik awal � 0 x 0 ​ menggunakan rumus iterasi berikut:

� baru = � − � ( � ) � ′ ( � ) x baru ​ =x− f ′ (x) f(x) ​

di mana:

� ( � ) f(x) adalah nilai fungsi pada titik � x, � ′ ( � ) f ′ (x) adalah turunan pertama (gradien) dari fungsi pada titik � x, � baru x baru ​ adalah perkiraan baru untuk akar. Iterasi dilakukan hingga akar ditemukan atau hingga batas toleransi tertentu tercapai.

# Fungsi yang akan dicari akarnya
fungsi <- function(x) {
  return(x^2 - 4)
}

# Turunan pertama dari fungsi di atas
turunan_fungsi <- function(x) {
  return(2*x)
}

# Metode Newton-Raphson untuk zero finding
newton_raphson <- function(fungsi, turunan_fungsi, x0, tol = 1e-6, max_iter = 100) {
  iter <- 0
  x <- x0
  
  repeat {
    x_baru <- x - fungsi(x) / turunan_fungsi(x)
    iter <- iter + 1
    
    # Mengecek apakah sudah mencapai toleransi atau iterasi maksimum
    if (abs(x_baru - x) < tol || iter >= max_iter) {
      break
    }
    
    x <- x_baru
  }
  
  if (iter >= max_iter) {
    cat("Metode Newton-Raphson tidak konvergen\n")
  } else {
    cat("Akar yang ditemukan:", x, "\n")
    cat("Jumlah iterasi:", iter, "\n")
  }
  
  return(x)
}

# Menggunakan metode Newton-Raphson untuk mencari akar fungsi
akar <- newton_raphson(fungsi, turunan_fungsi, x0 = 1)
## Akar yang ditemukan: 2 
## Jumlah iterasi: 5
# Plot fungsi dan akar yang ditemukan
x <- seq(-3, 3, length.out = 100)
y <- fungsi(x)

plot(x, y, type = 'l', col = 'blue', lwd = 2, main = 'Metode Newton-Raphson')
abline(h = 0, col = 'black', lty = 2)

# Menandai akar yang ditemukan
points(akar, fungsi(akar), col = 'red', pch = 16)