Graphical Optimization

Grafik atau plot dapat menjadi alat yang sangat berguna dalam memahami konsep optimasi dalam kalkulus. Saat Anda mengoptimalkan fungsi matematis, Anda mencari titik di mana fungsi mencapai nilai maksimum atau minimum. Grafik fungsi dapat membantu Anda secara visual memahami di mana titik-titik tersebut terletak. Berikut adalah beberapa hal yang dapat Anda pelajari dari grafik optimasi kalkulus:

  1. Lokasi Titik Optimal: Grafik akan menunjukkan di mana titik maksimum atau minimum terletak pada kurva fungsi. Titik ini biasanya berada pada titik di mana gradien fungsi (turunan pertama) adalah nol.
  2. Jenis Titik Optimal: Anda dapat menentukan apakah titik tersebut adalah maksimum atau minimum dengan melihat bentuk grafik di sekitar titik tersebut. Jika grafik naik sebelum titik dan turun setelahnya, itu mungkin merupakan titik maksimum. Jika grafik turun sebelum titik dan naik setelahnya, itu mungkin merupakan titik minimum.
  3. Nilai Optimal: Dari grafik, Anda juga dapat melihat nilai optimal fungsi pada titik tersebut. Nilai ini adalah nilai maksimum atau minimum yang Anda cari.
  4. Kemiringan Kurva: Grafik juga memberikan gambaran tentang kemiringan kurva sepanjang fungsi. Ini dapat membantu Anda memahami bagaimana tingkat perubahan berbeda pada berbagai titik dalam domain.

Penting untuk diingat bahwa grafik hanya memberikan pandangan visual. Untuk menghitung secara tepat nilai optimal dan memverifikasi apakah itu maksimum atau minimum, Anda perlu menggunakan konsep turunan dalam kalkulus. Gradien (turunan) fungsi pada titik yang menarik perhatian Anda adalah kunci untuk memahami apakah itu maksimum atau minimum. Jika turunan kedua positif pada titik tersebut, itu adalah titik minimum; jika turunan kedua negatif, itu adalah titik maksimum. cat(“Nilai minimum fungsi:”, hasil_optim$par, “”)

# Install and load necessary packages
install.packages("ggplot2")
## Warning: package 'ggplot2' is in use and will not be installed
library(ggplot2)

# Definisi fungsi objektif yang akan dioptimalkan
fungsi_objektif <- function(x) {
  return(x^2 + 2*x + 1)
}

# Plot fungsi objektif
x <- seq(-5, 1, by = 0.1)
y <- fungsi_objektif(x)

plot_data <- data.frame(x, y)

ggplot(plot_data, aes(x, y)) +
  geom_line() +
  geom_point(aes(x = -1, y = fungsi_objektif(-1)), color = 'red', size = 3) +
  labs(title = "Fungsi Objektif")

# Optimalkan fungsi objektif menggunakan optim()
hasil_optim <- optim(par = -3, fn = fungsi_objektif, method = "BFGS")

# Plot hasil optimasi
optim_data <- data.frame(x = hasil_optim$par, y = hasil_optim$value)

ggplot(plot_data, aes(x, y)) +
  geom_line() +
  geom_point(aes(x = -1, y = fungsi_objektif(-1)), color = 'red', size = 3) +
  geom_point(data = optim_data, aes(x, y), color = 'blue', size = 3) +
  labs(title = "Hasil Optimasi")

cat("Nilai minimum fungsi:", hasil_optim$par, "\n")
## Nilai minimum fungsi: -1