Dalam
analisis lanjutan dari fungsi di kalkulus, suatu fungsi dapat memiliki nilai
minimum (minimum value) dan/atau
nilai maksimum (maximum value).
Nilai-nilai ini biasa juga disebut dengan nilai ekstrim (extreme values) dari fungsi. Kedua nilai ini sering digunakan dalam
mencari solusi optimum suatu masalah yang berhubungan dengan optimasi. Sebagai
contoh, mencari nilai minimum dari fungsi biaya produksi, menentukan nilai
maksimum dari laba, dan lain sebagainya.
MATLAB
menyediakan algoritma yang dapat digunakan untuk menentukan nilai minimum suatu
fungsi dengan metode numerik atau iteratif. Untuk menentukan nilai maksimum
suatu fungsi f(x) dalam MATLAB diperlukan sedikit manipulasi fungsi. Hal ini
dikarenakan dalam MATLAB tidak tersedia perintah tersebut. Adapun caranya adalah dengan mengubah fungsi
f(x) menjadi g(x) = -f(x). Kemudian mencari nilai minimum dari fungsi
g(x).
MATLAB
menyediakan fungsi atau perintah yang disebut optimizers yang khusus dipakai untuk mencari nilai minimum suatu
fungsi. Terdapat dua optimizers MATLAB
yang populer, yakni:
fminbnd(fun,x1,x2):
untuk mencari nilai minimum lokal x dari fungsi fun,
dimana fun merupakan fungsi satu
variabel dan x1 < x < x2.
fminsearch
(fun,x0): untuk mencari nilai minimum x dari fungsi
fun dimulai dari titik tebakan awal (initial points) x0. Perintah
ini digunakan untuk meminimumkan fungsi dengan lebih dari satu variabel atau
multivariabel.
Perhatikanlah
contoh-contohnya berikut ini.
Baca juga: Interpolasi pada MATLAB
Contoh 1
Misalkan
kita ingin mencari nilai minimum dari fungsi cosinus dalam rentang/interval 0 < x < 2pi. Masalah ini merupakan contoh dari
meminimumkan fungsi satu variabel dengan menggunakan fminbnd.
Ketiklah
perintah berikut ini pada command window MATLAB.
>>
x=fminbnd('cos',0,2*pi)
x
=
3.1416
>>
rad2deg(x)%mengubah radian ke derajat
ans
=
180
>>
[x,fval]=fminbnd('cos',0,2*pi)
x
=
3.1416
fval
=
-1
Hasil
di atas menunjukkan bahwa nilai minimum fungsi cosinus dalam rentang/interval
0 < x < 2pi terjadi pada titik x
= 3,1416 dengan nilai fungsi fval
(objective function value) = -1.
Contoh 2
Menentukan
nilai minimum dari fungsi
dalam rentang/interval
.
>>
x=fminbnd(@(x)(1/3)*x^3+2*x^2-3*x+7,-10,10)
x
=
0.6458
Apabila
ingin dicari nilai maksimum fungsi
dalam rentang/interval
, kita tinggal menambahkan tanda negatif “
– “ di depan fungsi.
>>
x=fminbnd(@(x)-((1/3)*x^3+2*x^2-3*x+7),-10,10)
x
=
-4.6457
Kita
juga dapat memantau nilai-nilai dalam proses pencarian nilai minimum/maksimum
fungsi dengan menggunakan perintah optimset seperti di bawah ini.
options = optimset('Display','iter');
[x,fval]=fminbnd(@(x)(1/3)*x^3+2*x^2-3*x+7,-10,10,options)
Tampilan
hasil keluaran program di atas adalah sebagai berikut:
Func-count x
f(x) Procedure
1
-2.36068 20.8425 initial
2
2.36068 15.4488 golden
3
5.27864 95.9203 golden
4
0.151933 6.59154 parabolic
5
0.278546 6.32674 parabolic
6
0.572083 6.00072 parabolic
7
1.25527 7.04489 golden
8
0.663228 5.9873 parabolic
9
0.647039 5.9865 parabolic
10
0.645665 5.98649 parabolic
11
0.645753 5.98649 parabolic
12
0.645719 5.98649 parabolic
13
0.645786 5.98649 parabolic
Optimization
terminated: the current x satisfies the termination criteria using OPTIONS.TolX
of 1.000000e-04
x
=
0.6458
fval
=
5.9865
Baca juga: Fungsi Statistika pada MATLAB