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

Optimasi grafis pada dasarnya adalah proses mencari nilai minimum atau maksimum dari suatu fungsi menggunakan metode visualisasi grafik. Dalam konteks matematika atau statistika, optimasi seringkali berfokus pada mencari nilai minimum fungsi.

Optimasi grafis melibatkan visualisasi grafik fungsi dan menemukan nilai minimum atau maksimum dari fungsi tersebut. Dalam R, Anda dapat menggunakan plot untuk memvisualisasikan fungsi dan pendekatan turunan numerik untuk menemukan titik minimum.

# Install dan memuat paket

# Fungsi yang akan dioptimalkan
target_function <- function(x) {
  return((x - 2)^2 + 3)
}

# Plot fungsi
x_values <- seq(-5, 5, by = 0.1)
y_values <- target_function(x_values)

plot(x_values, y_values, type = "l", col = "blue", lwd = 2,
     main = "Grafik Fungsi yang Akan Dioptimalkan",
     xlab = "x", ylab = "f(x)")

# Metode turunan numerik sederhana
gradient <- function(x, h = 1e-5) {
  return((target_function(x + h) - target_function(x - h)) / (2 * h))
}

learning_rate <- 0.1
max_iterations <- 1000
tolerance <- 1e-6

current_x <- -4

for (iteration in 1:max_iterations) {
  gradient_value <- gradient(current_x)
  new_x <- current_x - learning_rate * gradient_value
  
  lines(c(current_x, new_x), c(target_function(current_x), target_function(new_x)), col = "red")
  
  if (abs(new_x - current_x) < tolerance) {
    break
  }
  
  current_x <- new_x
}

# Titik minimum hasil optimasi
optimal_point <- data.frame(x = current_x, y = target_function(current_x))

# Tambahkan titik minimum ke plot
points(optimal_point$x, optimal_point$y, col = "green", pch = 16)
legend("topright", legend = "Titik Minimum", col = "green", pch = 16)