Nama : Muhamad Fran Dahlan Gibran
NIM : 230605110127
Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Universitas : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Program Studi : Teknik Informatika

Graphical Zero-Finding:

Tujuan: Pencarian nol atau akar suatu fungsi adalah proses menemukan nilai-nilai dari variabel di mana fungsi tersebut sama dengan nol (f(x) = 0).

Metode Graphical Zero-Finding:

Menggunakan visualisasi grafik fungsi untuk menentukan lokasi perkiraan nol. Memanfaatkan plot fungsi untuk mengamati di mana garis fungsi memotong sumbu x (f(x) = 0). Kelebihan dan Keterbatasan:

Kelebihan: Metode ini intuitif dan mudah dimengerti. Cocok untuk fungsi sederhana. Keterbatasan: Tidak selalu efisien untuk fungsi kompleks. Tidak memberikan solusi eksak. Paket dan Library R:

Dalam R, paket seperti mosaic menyediakan fungsi-fungsi yang memungkinkan pencarian nol grafis dengan interaktivitas. Alternatif Tanpa Library:

Metode interval adalah pendekatan sederhana tanpa menggunakan library tambahan. Melibatkan pemilihan interval awal, pengujian tanda fungsi pada interval tersebut, dan penyempitan interval hingga akar ditemukan.

# Fungsi yang akan dicari nolnya
f <- function(x) x^2 - 4

# Metode interval untuk pencarian nol
interval_search <- function(f, a, b, tol = 1e-6, max_iter = 100) {
  iter <- 1
  while (iter <= max_iter) {
    mid_point <- (a + b) / 2
    if (abs(f(mid_point)) < tol) {
      cat("Nol ditemukan pada iterasi ke-", iter, ": ", mid_point, "\n")
      return(mid_point)
    } else if (f(mid_point) * f(a) < 0) {
      b <- mid_point
    } else {
      a <- mid_point
    }
    iter <- iter + 1
  }
  cat("Gagal mencari nol setelah", max_iter, "iterasi\n")
  return(NULL)
}

# Menjalankan metode interval pada rentang [-5, 5]
result <- interval_search(f, -5, 5)
## Nol ditemukan pada iterasi ke- 24 :  -2
# Visualisasi grafik fungsi dan lokasi nol
x <- seq(-5, 5, length.out = 100)
y <- f(x)

plot(x, y, type = "l", main = "Grafik Fungsi", xlab = "x", ylab = "f(x)")
abline(h = 0, col = "red", lty = 2)  # Garis referensi f(x) = 0

if (!is.null(result)) {
  points(result, 0, col = "blue", pch = 16, cex = 1.5)
  cat("Nol ditemukan pada x =", result, "\n")
} else {
  cat("Gagal menemukan nol dalam rentang yang diberikan\n")
}

## Nol ditemukan pada x = -2