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)