Nama dan NIM :Muhammad Iqbal Asrori (230605110144)
Dosen Pengampu :Prof. Dr. Suhartono, M.Kom
Universitas :Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas :Sains dan Teknologi
Program Studi :Teknik Informatika

Numerical iteration dalam konteks kalkulus adalah suatu metode untuk mendekati solusi suatu persamaan matematika atau fungsi yang sulit atau tidak mungkin dipecahkan secara analitis. Metode ini bekerja dengan melakukan iterasi berulang kali menggunakan nilai awal yang ditentukan untuk mendapatkan pendekatan yang lebih baik terhadap solusi yang diinginkan.

Dalam kalkulus, ada beberapa metode iteratif yang umum digunakan, seperti metode Newton-Raphson untuk mencari akar suatu persamaan, metode iterasi titik tetap (fixed-point iteration) untuk mencari titik tetap dari suatu fungsi, dan metode iterasi untuk menyelesaikan persamaan diferensial numerik.

Contoh penerapan numerical iteration dalam kalkulus adalah menggunakan metode Newton-Raphson untuk menemukan akar dari suatu persamaan. Misalkan kita ingin mencari akar dari suatu fungsi \(f(x)\). Dalam metode Newton-Raphson, kita memulai dengan nilai tebakan awal \(x_0\), kemudian iteratif menggunakan rumus berikut:

\[x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}\]

di mana \(x_{n+1}\) adalah nilai iterasi berikutnya, \(x_n\) adalah nilai iterasi sebelumnya, \(f(x_n)\) adalah nilai fungsi pada \(x_n\), dan \(f'(x_n)\) adalah turunan dari fungsi \(f(x)\) pada titik \(x_n\).

Iterasi dilakukan berulang kali sampai nilai \(x_{n+1}\) mendekati nilai sebenarnya dari akar yang diinginkan, atau sampai mencapai tingkat presisi yang diinginkan.

Selain itu, metode iterasi juga dapat digunakan dalam menyelesaikan persamaan diferensial numerik dengan membagi domain menjadi bagian-bagian kecil dan menggunakan pendekatan iteratif untuk mendapatkan solusi numerik.

Penting untuk diingat bahwa numerical iteration adalah pendekatan aproksimasi yang dapat memberikan solusi yang mendekati, namun tidak selalu memberikan solusi yang tepat. Kesalahan dapat terjadi tergantung pada metode yang digunakan, keakuratan nilai awal, dan faktor-faktor lainnya. Oleh karena itu, analisis dan pengawasan terhadap konvergensi dan kestabilan iterasi sangat penting dalam penggunaan metode ini.

# Fungsi untuk iterasi metode Newton-Raphson
newtonRaphson <- function(f, f_prime, x0, tol, max_iter) {
  x <- x0
  iter <- 0
  results <- data.frame(iter = integer(), x = numeric(), f_x = numeric())

  while(iter < max_iter) {
    f_x <- f(x)
    results <- rbind(results, data.frame(iter = iter, x = x, f_x = f_x))

    if(abs(f_x) < tol) {
      break
    }

    x <- x - f_x / f_prime(x)
    iter <- iter + 1
  }

  return(results)
}

# Contoh fungsi dan turunannya
f <- function(x) {
  return(x^3 - 2*x - 5)
}

f_prime <- function(x) {
  return(3*x^2 - 2)
}

# Nilai awal, toleransi, dan jumlah iterasi maksimum
x0 <- 2.5
tolerance <- 0.0001
max_iterations <- 100

# Memanggil fungsi Newton-Raphson
results <- newtonRaphson(f, f_prime, x0, tolerance, max_iterations)

# Menampilkan hasil iterasi
print("Hasil Iterasi:")
## [1] "Hasil Iterasi:"
print(results)
##   iter        x          f_x
## 1    0 2.500000 5.625000e+00
## 2    1 2.164179 8.079451e-01
## 3    2 2.097135 2.888172e-02
## 4    3 2.094555 4.186495e-05
# Memvisualisasikan proses iterasi
library(ggplot2)
ggplot(results, aes(x = iter, y = x)) +
  geom_line() +
  geom_point() +
  labs(x = "Iterasi", y = "Nilai x", title = "Proses Iterasi Metode Newton-Raphson") +
  theme_minimal()