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

Numerical optimization adalah proses menemukan nilai optimal dari suatu fungsi matematis. Dalam konteks matematika, nilai optimal sering kali merujuk pada nilai minimum atau maksimum dari fungsi tersebut. Proses ini memiliki aplikasi luas, seperti dalam machine learning, ekonomi, fisika, dan berbagai bidang ilmu lainnya.

Beberapa metode umum dalam numerical optimization termasuk:

Gradien Turun (Gradient Descent): Metode iteratif yang menggunakan turunan fungsi untuk menemukan minimum atau maksimum lokal. Iteratif ini dilakukan dengan mengupdate nilai parameter berdasarkan arah kebalikan dari gradien.

Bisection Method: Metode yang digunakan untuk mencari akar dari suatu fungsi. Metode ini membagi interval secara berulang dan menentukan di mana perpotongan nol berada.

Metode Newton-Raphson: Metode iteratif yang digunakan untuk mencari akar fungsi dengan menggunakan pendekatan linier dari deret Taylor.

Metode Quasi-Newton: Varian dari metode Newton-Raphson yang menggantikan matriks Hessian dengan perkiraan matriks Hessian yang diperbarui secara iteratif.

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

# Metode Gradien Turun (Gradient Descent) untuk optimasi
gradient_descent <- function(f, x0, learning_rate, max_iter) {
  x <- x0
  for (iter in 1:max_iter) {
    gradient <- 2 * (x - 3)  # Turunan dari fungsi kuadratik di sini
    x <- x - learning_rate * gradient
  }
  return(x)
}

# Inisialisasi titik awal dan parameter optimasi
x0 <- 0
learning_rate <- 0.1
max_iter <- 1000

# Optimalkan fungsi menggunakan metode Gradien Turun
hasil_optim <- gradient_descent(fungsi_kuadratik, x0, learning_rate, max_iter)

# Tampilkan hasil optimasi
cat("Hasil Optimasi:\n")
## Hasil Optimasi:
cat("Nilai Minimum:", hasil_optim, "\n")
## Nilai Minimum: 3