Numerical zero finding, atau pencarian akar numerik, adalah metode untuk menemukan solusi numerik dari persamaan yang tidak dapat diselesaikan secara analitik atau eksplisit. Salah satu metode yang umum digunakan dalam kalkulus adalah metode Newton-Raphson.
Metode Newton-Raphson bekerja dengan mendekati akar dari suatu persamaan dengan menebak titik awal yang dekat dengan akar sebenarnya, dan kemudian melakukan iterasi untuk mendapatkan perkiraan yang lebih akurat dari akar tersebut. Prosesnya dapat dijelaskan sebagai berikut:
Pilih tebakan awal: Titik awal yang dekat dengan akar yang dicari.
Iterasi: Mulailah dari tebakan awal dan gunakan turunan fungsi untuk menentukan di mana garis singgung pada fungsi tersebut memotong sumbu x. Titik potong ini akan menjadi perkiraan yang lebih baik untuk akar sebenarnya.
Update tebakan: Gunakan formula iterasi Newton-Raphson untuk memperbarui tebakan awal menjadi tebakan yang lebih akurat. Formula iterasi ini adalah \(x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}\), di mana \(x_{n+1}\) adalah tebakan yang baru, \(x_n\) adalah tebakan sebelumnya, \(f(x_n)\) adalah nilai fungsi di \(x_n\), dan \(f'(x_n)\) adalah turunan fungsi di \(x_n\).
Ulangi langkah-langkah 2 dan 3: Lakukan iterasi ini sampai nilai \(f(x)\) sangat mendekati nol atau sampai diperoleh presisi yang diinginkan.
Metode Newton-Raphson memiliki kecepatan konvergensi yang cepat ketika tebakan awal cukup dekat dengan akar sebenarnya, namun bisa mengalami kegagalan konvergensi atau konvergensi ke akar yang salah jika tebakan awal terlalu jauh dari akar yang diinginkan atau jika fungsi memiliki singularitas atau titik ekstrim di sekitar akar yang dicari.
Selain metode Newton-Raphson, terdapat berbagai metode numerik lainnya untuk menemukan akar dari suatu persamaan, seperti metode bisection, metode secant, dan metode regula falsi. Setiap metode memiliki kelebihan dan kelemahan tertentu tergantung pada sifat persamaan yang diberikan.
Penerapan numerik ini sangat berguna dalam berbagai bidang, termasuk ilmu matematika, sains, teknik, ekonomi, dan banyak lagi, di mana solusi analitik dari suatu persamaan tidak selalu dapat ditemukan dengan mudah atau bahkan mungkin tidak ada.
# Mengimpor library yang diperlukan
library(ggplot2)
# Fungsi untuk mencari akar persamaan
find_root <- function(f, lower, upper, tol = 1e-6) {
a <- lower
b <- upper
iter <- 0
while ((b - a) >= tol) {
iter <- iter + 1
c <- (a + b) / 2
if (f(c) == 0) {
break
} else if (f(a) * f(c) < 0) {
b <- c
} else {
a <- c
}
}
list(root = c, iterations = iter)
}
# Persamaan yang ingin diselesaikan (misalnya, x^2 - 4)
f <- function(x) {
return(x^2 - 4)
}
# Menemukan akar persamaan dalam rentang [lower, upper]
root_info <- find_root(f, 0, 3)
# Menampilkan hasil
cat("Akar persamaan x^2 - 4 adalah:", root_info$root, "\n")
## Akar persamaan x^2 - 4 adalah: 2
cat("Jumlah iterasi yang dibutuhkan:", root_info$iterations, "\n")
## Jumlah iterasi yang dibutuhkan: 22
# Membuat grafik dari fungsi
x_vals <- seq(-5, 5, by = 0.1)
y_vals <- f(x_vals)
data <- data.frame(x = x_vals, y = y_vals)
ggplot(data, aes(x, y)) +
geom_line() +
geom_hline(yintercept = 0, linetype = "dashed", color = "red") +
labs(title = "Grafik dari x^2 - 4", x = "Nilai x", y = "Nilai y")
# Menyimpan hasil plot dalam file gambar (opsional)
ggsave("grafik_persamaan.png")
## Saving 7 x 5 in image