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

Iterasi Numerik: Iterasi numerik merupakan suatu metode untuk mendekati solusi suatu masalah matematika dengan melakukan pendekatan berulang terhadap solusi yang diinginkan. Salah satu contoh metode iterasi numerik adalah Metode Newton-Raphson, di mana kita memperbarui tebakan awal secara berulang dengan menggunakan turunan fungsi.

Kalkulus: Kalkulus adalah cabang matematika yang mempelajari perubahan dan laju perubahan. Terdapat dua cabang utama kalkulus: diferensial dan integral.

Diferensial: Memeriksa perubahan suatu fungsi saat variabel inputnya berubah. Turunan adalah konsep utama dalam diferensial.

Integral: Menyelidiki akumulasi suatu besaran, seperti luas di bawah kurva fungsi. Integral adalah konsep utama dalam integral.

library(ggplot2)

# Fungsi yang akan diiterasi
fungsi <- function(x) {
  return(x^2 - 4)
}

# Metode iterasi numerik
iterasi_numerik <- function(fungsi, x0, tol = 1e-6, max_iter = 100) {
  x <- x0
  iter <- 0
  nilai_x <- numeric(max_iter)
  
  while (abs(fungsi(x)) > tol && iter < max_iter) {
    nilai_x[iter + 1] <- x
    x <- x - fungsi(x) / deriv(fungsi, x)  # Metode Newton-Raphson
    iter <- iter + 1
  }
  
  if (iter == max_iter) {
    cat("Iterasi tidak konvergen setelah", max_iter, "iterasi.\n")
  } else {
    cat("Solusi yang ditemukan setelah", iter, "iterasi:", x, "\n")
  }
  
  return(nilai_x[1:iter])
}

# Fungsi untuk menghitung turunan fungsi
deriv <- function(f, x, h = 1e-6) {
  return((f(x + h) - f(x - h)) / (2 * h))
}

# Contoh penggunaan
nilai_iterasi <- iterasi_numerik(fungsi, x0 = 2)
## Solusi yang ditemukan setelah 0 iterasi: 2
# Membuat grafik iterasi numerik
iterasi_df <- data.frame(iterasi = 1:length(nilai_iterasi), nilai_x = nilai_iterasi)
ggplot(iterasi_df, aes(x = iterasi, y = nilai_x)) +
  geom_line() +
  geom_point() +
  labs(title = "Iterasi Numerik",
       x = "Iterasi",
       y = "Nilai x") +
  theme_minimal()
## `geom_line()`: Each group consists of only one observation.
## ℹ Do you need to adjust the group aesthetic?