Diberikan tiga buah metode untuk mencari akar dari fungsi 𝑓 secara numerik, yaitu metode titiktetap, metode Newton-Raphson, dan metode Halley dengan algoritmenya berturut-turut adalah sebagai berikut: • Algoritme untuk metode titik-tetap: ➢ Mulai dengan sebuah tebakan awal: 𝑥0. ➢ Untuk iterasi ke-𝑖 dengan 𝑖 = 1, 2, 3, …, hitung 𝑥𝑖 = 𝑘 𝑓(𝑥𝑖−1) + 𝑥𝑖−1 dengan konstanta taknol 𝑘 dipilih sedemikian sehingga barisan yang dihasilkan konvergen. • Algoritme untuk metode Newton-Raphson: ➢ Mulai dengan sebuah tebakan awal: 𝑥0. ➢ Untuk iterasi ke-𝑖 dengan 𝑖 = 1, 2, 3, …, hitung 𝑥𝑖 = 𝑥𝑖−1 − 𝑓(𝑥𝑖− 1) /𝑓′(𝑥𝑖−1 ) . • Algoritme untuk metode Halley: ➢ Mulai dengan sebuah tebakan awal: 𝑥0. ➢ Untuk iterasi ke-𝑖 dengan 𝑖 = 1, 2, 3, …, hitung 𝑥𝑖 = 𝑥𝑖−1 − 2𝑓(𝑥𝑖−1)𝑓′(𝑥𝑖−1 ) / 2[𝑓′(𝑥𝑖−1)]2 − 𝑓(𝑥𝑖−1 )𝑓′′(𝑥𝑖−1)

  1. Dengan memilih 𝑘 = 0.1, buat sebuah function dengan nama mtt yang memiliki tiga buah mandatory arguments, yaitu sebuah fungsi 𝑓, sebuah tebakan awal 𝑥0, dan banyaknya iterasi 𝑛, serta menghasilkan sebuah vector yang berisi nilai hampiran bagi akar dari fungsi 𝑓 dengan metode titik-tetap dari iterasi ke-1 hingga iterasi ke-𝑛 (𝑥1, 𝑥2, …, 𝑥𝑛).
# (a) Metode Titik-Tetap
mtt <- function(f, x0, n) {
  k <- 0.1
  x <- numeric(n)
  for (i in 1:n) {
    x[i] <- k * f(x0) + x0
    x0 <- x[i]
  }
  return(x)
}
  1. Buat sebuah function dengan nama mnr yang memiliki tiga buah mandatory arguments, yaitu sebuah fungsi 𝑓 yang sudah termasuk turunan pertamanya, sebuah tebakan awal 𝑥0, dan banyaknya iterasi 𝑛, serta menghasilkan sebuah vector yang berisi nilai hampiran bagi akar dari fungsi 𝑓 dengan metode Newton-Raphson dari iterasi ke-1 hingga iterasi ke-𝑛 (𝑥1, 𝑥2, …, 𝑥𝑛)
# (b) Metode Newton-Raphson
mnr <- function(f, df, x0, n) {
  x <- numeric(n)
  for (i in 1:n) {
    x[i] <- x0 - f(x0)/df(x0)
    x0 <- x[i]
  }
  return(x)
}
  1. Buat sebuah function dengan nama mh yang memiliki tiga buah mandatory arguments, yaitu sebuah fungsi 𝑓 yang sudah termasuk turunan pertama dan keduanya, sebuah tebakan awal 𝑥0, dan banyaknya iterasi 𝑛, serta menghasilkan sebuah vector yang berisi nilai hampiran bagi akar dari fungsi 𝑓 dengan metode Halley dari iterasi ke-1 hingga iterasi ke-𝑛 (𝑥1, 𝑥2, …, 𝑥𝑛).
# (c) Metode Halley
mh <- function(f, df, ddf, x0, n) {
  x <- numeric(n)
  for (i in 1:n) {
    x[i] <- x0 - ((2 * f(x0) * df(x0)) / ((2 * df(x0)^2) - f(x0) * ddf(x0)))
    x0 <- x[i]
  }
  return(x)
}
  1. Misalkan diberikan suatu fungsi 𝑓 dengan 𝑓(𝑥) = 𝑒 𝑥 − 𝑥3 − 3. Gambarkan grafik 𝑦 = 𝑓(𝑥) pada interval [−3,5]. Akan terlihat bahwa sebuah akar dari fungsi 𝑓 ada di antara −2 dan −1.
# (d) Fungsi f
f <- function(x) { exp(x) - x^3 - 3 }
df <- function(x) { exp(x) - 3*x^2 }
ddf <- function(x) { exp(x) - 6*x }

# Plot fungsi f
curve(f, from = -3, to = 5)

  1. Dengan memanfaatkan mtt function yang telah dibuat pada bagian (a), mnr function yang telah dibuat pada bagian (b), dan mh function yang telah dibuat pada bagian (c), bangkitkan vectors yang berisi nilai hampiran bagi sebuah akar dari fungsi 𝑓 pada bagian (d) dengan metode titik-tetap, metode Newton-Raphson, dan metode Halley dari iterasi ke-1 hingga iterasi ke-5 dengan tebakan awal yang sama untuk ketiga metode tersebut, yaitu 𝑥0 = −2. Akan terlihat bahwa ketiga metode tersebut menghasilkan suatu barisan yang konvergen.
# (e) Menggunakan fungsi mtt, mnr, dan mh
x0 <- -2
n_iterasi <- 5

hasil_mtt <- mtt(f, x0, n_iterasi)
hasil_mnr <- mnr(f, df, x0, n_iterasi)
hasil_mh <- mh(f, df, ddf, x0, n_iterasi)
  1. Dengan memanfaatkan hasil pada bagian (e), buat sebuah gabungan line graphs
# (f) Membuat grafik perbandingan
plot(1:n_iterasi, hasil_mtt, type = "o", col = "red", ylim = c(-1.7,-1.3), 
     main = "Perbandingan Nilai Hapiran bagi Akar dari Fungsi f 
     dengan Metode Titik-Tetap,Metode Newton-Rhapson dan Metode Halley",
     ylab = "", xlab = "Iterasi ke-")
lines(1:n_iterasi, hasil_mnr, type = "o", col = "blue")
lines(1:n_iterasi, hasil_mh, type = "o", col = "green")
legend("bottomright", legend = c("Metode Titik-Tetap", "Metode Newton-Raphson", "Metode Halley"),
       col = c("red", "blue", "green"), lty = c(1,1), pch=1)