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