Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Program Studi : Teknik Informatika
Kelas : B

Pendahuluan

Penemuan nol numerik adalah teknik untuk mencari akar suatu fungsi menggunakan metode komputasi. Dalam R Markdown ini, kita akan menggunakan bahasa pemrograman R untuk mengilustrasikan cara mengimplementasikan beberapa metode numerik yang umum digunakan dalam penemuan nol.

Metode Pembagian Dua

Metode pembagian dua adalah salah satu metode penemuan nol yang paling sederhana. Ia bergantung pada teorema nilai perantaraan dan melibatkan penyempitan interval pencarian.

# Fungsi
f <- function(x) x^2 - 4

# Implementasi metode pembagian dua
bisection <- function(f, a, b, tol) {
  while ((b - a) / 2 > tol) {
    midpoint <- (a + b) / 2
    if (f(midpoint) == 0) return(midpoint)
    if (f(a) * f(midpoint) < 0) b <- midpoint
    else a <- midpoint
  }
  return((a + b) / 2)
}

# Menjalankan metode pembagian dua
result_bisection <- bisection(f, -4, 4, 1e-6)
result_bisection
## [1] -2

Metode Newton-Raphson

Metode Newton-Raphson adalah metode iteratif yang bergantung pada turunan fungsi. Ia bisa sangat efisien jika diberikan tebakan awal yang baik.

# Implementasi metode Newton-Raphson
newton_raphson <- function(f, df, x0, tol, max_iter) {
  x <- x0
  for (i in 1:max_iter) {
    x <- x - f(x) / df(x)
    if (abs(f(x)) < tol) return(x)
  }
  return(NULL)
}

# Turunan fungsi
df <- function(x) 2 * x

# Menjalankan metode Newton-Raphson
result_newton_raphson <- newton_raphson(f, df, 1, 1e-6, 100)
result_newton_raphson
## [1] 2

Visualisasi Hasil

# Memvisualisasikan hasil
library(ggplot2)

x <- seq(-4, 4, by = 0.1)
y <- f(x)

ggplot(data.frame(x, y), aes(x, y)) +
  geom_line() +
  geom_hline(yintercept = 0, linetype = "dashed", color = "red") +
  geom_vline(xintercept = result_bisection, color = "blue", linetype = "dashed") +
  geom_vline(xintercept = result_newton_raphson, color = "green", linetype = "dashed") +
  labs(x = "x", y = "f(x)", title = "Penemuan Nol: f(x) = x^2 - 4") +
  annotate("text", x = result_bisection, y = -2, label = paste("Bisection:", round(result_bisection, 6)), color = "blue") +
  annotate("text", x = result_newton_raphson, y = 2, label = paste("Newton-Raphson:", round(result_newton_raphson, 6)), color = "green")

Dalam contoh di atas, kita menjalankan metode pembagian dua dan metode Newton-Raphson untuk mencari akar fungsi f(x) = x^2 - 4 dan memvisualisasikan hasilnya pada grafik.

Kesimpulan

Dalam Rpubs ini, kita telah menjelaskan dan mengimplementasikan dua metode penemuan nol numerik yang umum digunakan, yaitu metode pembagian dua dan metode Newton-Raphson. Kedua metode ini adalah alat yang kuat untuk menemukan akar fungsi dalam konteks analisis numerik, dan penggunaannya sangat bervariasi tergantung pada sifat masalah yang dihadapi. Metode penemuan nol numerik adalah alat penting dalam pemecahan persamaan matematika dalam komputasi dan ilmu terapan.