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
Materi: Numerical Zero Finding (Pencarian Akar Numerik)
# Fungsi yang akan dicari akarnya
fungsi <- function(x) {
return(x^3 - 6*x^2 + 11*x - 6)
}
# Metode Numerical Zero Finding (Bisection)
bisection <- function(fungsi, a, b, tol = 1e-6, max_iter = 100) {
iter <- 0
repeat {
iter <- iter + 1
c <- (a + b) / 2
fc <- fungsi(c)
if (abs(fc) < tol || iter >= max_iter) {
break
}
if (fungsi(a) * fc < 0) {
b <- c
} else {
a <- c
}
}
if (iter >= max_iter) {
cat("Metode Bisection tidak konvergen\n")
} else {
cat("Akar yang ditemukan:", c, "\n")
cat("Jumlah iterasi:", iter, "\n")
}
return(c)
}
# Plot fungsi dan akar yang ditemukan
plot_fungsi <- function(fungsi, rentang, akar = NULL) {
x <- seq(rentang[1], rentang[2], length.out = 100)
y <- fungsi(x)
plot(x, y, type = 'l', col = 'blue', lwd = 2, main = 'Numerical Zero Finding - Bisection')
abline(h = 0, col = 'black', lty = 2)
# Menandai akar yang ditemukan
if (!is.null(akar)) {
points(akar, fungsi(akar), col = 'red', pch = 16)
}
}
# Menggunakan metode numerical zero finding (Bisection)
rentang <- c(0, 3) # Ganti dengan rentang yang sesuai
akar <- bisection(fungsi, rentang[1], rentang[2])
## Akar yang ditemukan: 1
## Jumlah iterasi: 21
# Plot fungsi dan akar yang ditemukan
plot_fungsi(fungsi, rentang, akar)