Di artikel ini kita akan membahas apa itu Numerical Optimization.
Numerical optimization adalah cara untuk mencari nilai terbesar atau
terkecil dari suatu fungsi dengan menggunakan angka-angka. Fungsi adalah
hubungan antara dua hal yang saling bergantung satu sama lain. Misalnya,
fungsi h(x) = x + 2 berarti ada hubungan antara
h dan x, yaitu h selalu sama
dengan x ditambah 2. Nilai terbesar atau
terkecil dari suatu fungsi disebut juga nilai optimal. Nilai optimal
berguna untuk menyelesaikan berbagai masalah di bidang ilmu pengetahuan,
teknologi, ekonomi, dan lain-lain.
#langkah pertama
h <- rfun(~ x, seed=1234)
#langkah kedua
argM(h(x) ~ x, bounds(x=-10:10))
## # A tibble: 2 × 3
## x .output. concavity
## <dbl> <dbl> <dbl>
## 1 -10.0 0.0000171 1
## 2 0.314 9.29 -1
Langkah pertama
adalah mendefinisikan fungsi yang ingin kita optimalkan secara numerik.
Fungsi adalah hubungan antara dua hal yang saling bergantung satu sama
lain. Misalnya, fungsi h(x) = x + 2 berarti ada hubungan
antara h dan x, yaitu h selalu
sama dengan x ditambah 2. Optimization secara numerik
adalah cara untuk mencari nilai terbesar atau terkecil dari suatu fungsi
dengan menggunakan angka-angka. Misalnya, jika kita ingin mencari nilai
terbesar dari fungsi h(x) = x + 2 dalam interval
[-5, 5], kita dapat mencoba berbagai nilai x
dari -5 sampai 5 dan melihat nilai h yang dihasilkan. Nilai
terbesar dari h adalah 7, yang didapat ketika
x = 5. Untuk mendefinisikan fungsi yang ingin kita
optimalkan secara numerik, kita dapat menggunakan fungsi
rfun(). Fungsi rfun() adalah fungsi yang dapat
membantu kita membuat fungsi secara acak atau sembarang. Fungsi acak
adalah fungsi yang dibuat dengan menggunakan angka-angka atau
huruf-huruf yang dipilih secara acak. Fungsi acak berguna untuk melatih
kemampuan kita dalam melakukan kalkulus. Untuk menggunakan fungsi
rfun(), kita perlu mengetikkan perintah berikut di
RStudio:
h <- rfun(~ x, seed=1234)
Perintah h <- rfun(~ x, seed=1234) berarti kita
meminta komputer untuk membuat fungsi acak dengan menggunakan huruf
x sebagai variabel dan angka 1234 sebagai
seed. Variabel adalah sesuatu yang dapat berubah-ubah
nilainya. Seed adalah angka yang digunakan untuk menentukan
pola atau aturan dalam membuat fungsi acak. Dengan menggunakan seed yang
sama, kita dapat membuat fungsi acak yang sama pula.
Langkah kedua
adalah menggunakan fungsi argM() untuk mencari argumen
maksimum dan minimum dari fungsi kita dalam interval tertentu. Argumen
maksimum adalah nilai x yang membuat fungsi kita memiliki
nilai terbesar. Argumen minimum adalah nilai x yang membuat
fungsi kita memiliki nilai terkecil. Interval adalah rentang atau jarak
antara dua angka. Misalnya, interval [-5, 5] berarti
rentang antara -5 sampai 5. Fungsi argM() adalah fungsi
yang dapat membantu kita mencari argumen maksimum dan minimum dari suatu
fungsi dengan menggunakan angka-angka. Fungsi argM()
mengembalikan sebuah data frame yang berisi nilai x,
output, dan konkavitas dari fungsi kita di titik-titik ekstrem. Data
frame adalah tabel atau kotak-kotak yang berisi data atau informasi.
Output adalah nilai dari fungsi kita ketika kita memasukkan nilai
x tertentu. Konkavitas adalah bentuk atau keadaan dari
kurva fungsi kita di sekitar titik-titik ekstrem. Kurva adalah garis
lengkung yang menggambarkan hubungan antara dua hal. Titik-titik ekstrem
adalah titik-titik di mana fungsi kita memiliki nilai terbesar atau
terkecil. Untuk menggunakan fungsi argM(), kita perlu
mengetikkan perintah berikut di RStudio:
argM(h(x) ~ x, bounds(x=-5:5))
Perintah argM(h(x) ~ x, bounds(x=-5:5)) berarti kita
meminta komputer untuk mencari argumen maksimum dan minimum dari fungsi
h(x) dalam interval [-5, 5]. Komputer kemudian
memberikan kita sebuah data frame yang berisi nilai x,
output, dan konkavitas dari fungsi h(x) di titik-titik
ekstrem. Data frame ini memiliki dua baris dan tiga kolom. Baris pertama
berisi nilai x = -0.825, output = 2.07, dan konkavitas = 1.
Baris kedua berisi nilai x = 1.83, output = 7.95, dan
konkavitas = -1. Nilai konkavitas menunjukkan bentuk kurva fungsi kita
di sekitar titik-titik ekstrem. Jika konkavitas = 1, berarti kurva
fungsi kita berbentuk cekung ke atas atau seperti mangkuk terbalik. Jika
konkavitas = -1, berarti kurva fungsi kita berbentuk cekung ke bawah
atau seperti mangkuk biasa.