Modifikasi Stepsize pada Metode Steepest Descent dalam Pengoptimuman Fungsi: Kasus Fungsi Kuadratik Diagonal

MODIFIKASI STEPSIZE PADA METODE STEEPEST
DESCENT DALAM PENGOPTIMUMAN FUNGSI:
KASUS FUNGSI KUADRATIK DIAGONAL

FACHRIADI FADHILLAH

DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2014

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA*
Dengan ini saya menyatakan bahwa skripsi berjudul Modifikasi Stepsize pada
Metode Steepest Descent dalam Pengoptimuman Fungsi: Kasus Fungsi Kuadratik
Diagonal adalah benar karya saya dengan arahan dari komisi pembimbing dan
belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber
informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak
diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam
Daftar Pustaka di bagian akhir skripsi ini.

Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, Desember 2014
Fachriadi Fadhillah
NIM G54100023

ABSTRAK
FACHRIADI FADHILLAH. Modifikasi Stepsize pada Metode Steepest Descent
dalam Pengoptimuman Fungsi: Kasus Fungsi Kuadratik Diagonal. Dibimbing oleh
BIB PARUHUM SILALAHI dan MUHAMMAD ILYAS.
Metode steepest descent adalah salah satu metode untuk menemukan titik
optimum suatu fungsi tanpa kendala. Metode ini menggunakan stepsize yang
diperoleh dari pencarian exact line. Metode ini mungkin menuju ke titik optimum
dengan lambat. Beberapa penelitian telah dilakukan untuk mengatasi kelemahan ini
dengan mengubah stepsize. Beberapa stepsize baru antara lain dikembangkan oleh
Ya-xiang Yuan, Barzilai, dan Borwein. Karya ilmiah ini membandingkan waktu
penyelesaian dan banyaknya iterasi untuk metode steepest descent, metode Yaxiang Yuan, dan metode Barzilai-Borwein dalam menyelesaikan suatu
permasalahan pengoptimuman tanpa kendala untuk kasus fungsi kuadratik
diagonal. Hasil numerik yang diperoleh menunjukan bahwa metode Ya-xiang Yuan
dapat menemukan titik optimum hanya dengan tiga iterasi saja untuk fungsi dengan

dua variabel. Selanjutnya metode Ya-xiang Yuan sangat efisien untuk masalah
dengan dimensi kecil, sedangkan metode Barzilai-Borwein menunjukan hasil yang
lebih baik untuk masalah dengan dimensi besar.
Kata kunci: Modifikasi stepsize, Pengoptimuman fungsi tanpa kendala, Steepest
descent

ABSTRACT
FACHRIADI FADHILLAH. A Stepsize Modification for Steepest Descent Method
in Optimization of a Function: a Diagonal Quadratic Function Case. Supervised by
BIB PARUHUM SILALAHI and MUHAMMAD ILYAS.
The steepest descent is one of the methods for unconstrained optimization.
This method uses stepsize which is obtained by using exact line searches. The exact
line searches along steepest descent direction may found the optimum point slowly.
A number of researches have been conducted for solving this weakness by changing
the stepsize. Some new stepsizes were developed by Ya-xiang Yuan, Barzilai, and
Borwein. In this paper, the execution times and the number of iterations of the
steepest descent method, the Ya-xiang Yuan method, and the Barzilai-Borwein
method will be compared in solving an unconstrained optimization for diagonal
quadratic function case. Numerical results showed that the Ya-xiang Yuan method
can find the optimum point within three iterations for two variables functions.

Furthermore, the Ya-xiang Yuan method is the most efficient for small scale
problems, while the Barzilai-Borwein method showed better results for large scale
problems.
Keywords: Optimization of unconstrained function, Steepest descent, Stepsize
modification

MODIFIKASI STEPSIZE PADA METODE STEEPEST
DESCENT DALAM PENGOPTIMUMAN FUNGSI:
KASUS FUNGSI KUADRATIK DIAGONAL

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Sains
pada
Departemen Matematika

DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR

2014
FACHRIADI
FADHILLAH

Judul Skripsi : Modifikasi Stepsize pada Metode Steepest Descent dalam
Pengoptimuman Fungsi: Kasus Fungsi Kuadratik Diagonal
Nama
: Fachriadi Fadhillah
NIM
: G54100023

Disetujui oleh

Dr Ir Bib Paruhum Silalahi, MKom
Pembimbing I

Muhammad Ilyas, MSi MSc
Pembimbing II

Diketahui oleh


Dr Toni Bakhtiar, MSc
Ketua Departemen

Tanggal Lulus:

PRAKATA
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Judul karya
ilmiah ini adalah Modifikasi Stepsize pada Metode Steepest Descent dalam
Pengoptimuman Fungsi: Kasus Fungsi Kuadratik Diagonal.
Terima kasih penulis ucapkan kepada Bapak Dr Ir Bib Paruhum Silalahi,
Mkom dan Bapak Muhammad Ilyas, Msi MSc selaku pembimbing, serta Bapak
Ruhiyat, SSi MSi yang telah banyak memberi saran, motivasi, dan bimbingan
dalam penulisan karya ilmiah ini, serta kepada seluruh staf Departemen
Matematika. Terima kasih juga penulis ucapkan kepada Bapak Chairul Chaniago,
Ibu Radiah Azita, Rully Novriansyah, Redyan Febriansyah, Yoanka Khairunissa,
Risya Ari Purnama, Tinneke Hakim Putri, Voira Alyssa Febriansyah, serta seluruh
keluarga, atas segala doa dan kasih sayangnya. Ucapan terima kasih juga penulis
berikan kepada para sahabat Erjodi Cahyo, Aisatul Mustaqimah, Intan Nabilla, Adi

Kiswanto, Rayfan Ambrian, Laras Febi Amelia, Fachri Aditya, Annisyia Zarina,
Zeta Fadilla, Annisa Primanitasari, Kiki Septiani, Gerry Kristian, Diah Putri
Pertiwi, Chika Katelia, Nena Apriliana, seluruh mahasiswa Departemen
Matematika Angkatan 45, 46, 47, 48, dan 49 serta teman-teman sekalian di luar
Departemen Matematika baik di dalam Institut Pertanian Bogor maupun di luar
Institut Pertanian Bogor atas kritik, saran, dan doanya selama pembuatan karya
ilmiah ini.
Semoga karya ilmiah ini bermanfaat.

Bogor, Desember 2014
Fachriadi Fadhillah

DAFTAR ISI
DAFTAR TABEL

vi

DAFTAR GAMBAR

vi


DAFTAR LAMPIRAN

vi

PENDAHULUAN

1

Latar Belakang

1

Tujuan Penelitian

1

TINJAUAN PUSTAKA

2


HASIL DAN PEMBAHASAN

2

Metode Ya-xiang Yuan

2

Metode Barzilai Borwein

6

Hasil Numerik

7

Algoritme Ya-xiang Yuan

7


Algoritme Steepest Descent

7

Algoritme Barzilai-Borwein

8

SIMPULAN

12

DAFTAR PUSTAKA

12

LAMPIRAN

13


RIWAYAT HIDUP

30

DAFTAR TABEL
1
2
3
4

Hasil untuk fungsi dua variabel
Hasil untuk fungsi tiga variabel
Hasil untuk fungsi sepuluh variabel
Hasil untuk fungsi 25 variabel

8
9
9
10


DAFTAR GAMBAR
1 Perbandingan waktu metode Ya-xiang Yuan, metode BB,
dan metode steepest descent
2 Perbandingan banyak iterasi metode Ya-xiang Yuan, metode BB,
dan metode steepest descent

11
11

DAFTAR LAMPIRAN
1 Metode Ya-xiang Yuan untuk dua variabel
2 Metode Ya-xiang Yuan untuk tiga variabel
3 Metode Ya-xiang Yuan untuk sepuluh variabel
4 Metode Ya-xiang Yuan untuk 25 variabel
5 Metode steepest descent untuk dua variabel
6 Metode steepest descent untuk tiga variabel
7 Metode steepest descent untuk sepuluh variabel
8 Metode steepest descent untuk 25 variabel
9 Metode BB untuk dua variabel
10 Metode BB untuk tiga variabel
11 Metode BB untuk sepuluh variabel
12 Metode BB untuk 25 variabel

13
14
16
18
20
21
22
23
25
26
27
28

1

PENDAHULUAN
Latar Belakang
Permasalahan mengenai pengoptimuman adalah mencari penyelesaian
terbaik dari suatu masalah. Masalah yang ditemui terdiri atas fungsi tujuan dan
kendala yang dapat berupa fungsi linear maupun nonlinear.
Terdapat beberapa metode untuk menyelesaikan masalah pengoptimuman
dengan kelebihan dan kekurangan yang berbeda untuk masing-masing metode.
Salah satu metode yang digunakan dalam masalah pengoptimuman bersifat iteratif,
yaitu dimulai dari titik awal yang sudah ditentukan, kemudian bergerak ke titik
hingga titik � , yaitu titik yang mendekati atau sama dengan nilai optimal.
Metode-metode tersebut dapat diklasifikasikan ke dalam dua kelompok, yaitu
metode dengan menggunakan gradien dan metode tanpa menggunakan gradien.
Untuk metode dengan menggunakan gradien, diperlukan syarat fungsi tujuan
terturunkan. Contoh metode dengan menggunakan gradien yaitu metode steepest
descent, metode Newton, dan metode conjugate gradien. Contoh metode tanpa
menggunakan gradien yaitu metode Rosenbrock dan metode Nelder-Mead (Klerk
et al. 2005). Masalah yang digunakan pada karya ilmiah ini adalah masalah
pengoptimuman nonlinear tanpa kendala, yaitu mencari nilai
yang
meminimumkan suatu fungsi
dan metode yang digunakan adalah metode
steepest descent.
Metode steepest descent bergerak dengan langkah-langkah yang saling tegak
lurus. Tepatnya, jika { � } adalah barisan steepest descent untuk fungsi
, maka
untuk setiap bilangan asli �
, vektor yang menghubungkan �− dengan �
tegak lurus dengan vektor yang menghubungkan � dengan �+ .
Perlu diketahui, pencarian dengan arah steepest descent untuk menuju ke
suatu titik mungkin berjalan dengan lambat (Yuan 2006). Metode steepest descent
memerlukan iterasi yang banyak untuk menemukan solusi minimum karena gerak
langkahnya yang berliku-liku (zigzag). Barzilai dan Borwein (1988) berusaha
menyempurnakan metode ini dengan mengubah stepsize.
Pada karya ilmiah ini akan dibahas tentang modifikasi metode steepest
descent dengan mengubah stepsize. Algoritme yang baru ini akan menempatkan
stepsize yang baru pada iterasi genap sedangkan pada setiap iterasi ganjil tetap
menggunakan stepsize pada steepest descent. Algoritme ini didasarkan pada artikel
yang ditulis oleh Yuan (2006). Setelah itu akan dilakukan simulasi sebagai
perbandingan dengan metode steepest descent dan metode BB. Pengolahan data
dilakukan dengan menggunakan bantuan software MATLAB R2010a.
Tujuan Penelitian
Penulisan karya ilmiah ini bertujuan untuk:
1. Merekonstruksi penggunaan stepsize baru pada metode steepest descent.
2. Membandingkan waktu penyelesaian dan banyaknya iterasi yang dilakukan
pada metode steepest descent yang telah dimodifikasi, Barzilai dan Borwein,
dan steepest descent.

2

TINJAUAN PUSTAKA
Metode steepest descent adalah metode gradien sederhana untuk
pengoptimuman tanpa kendala:
,

min





dengan
adalah fungsi kontinu dan terturunkan di
bentuk sebagai berikut:
�+

=



+ �� −

. Metode ini memiliki

,



di � dan �� > 0
dengan � =
� adalah vektor gradien dari
� =
adalah stepsize. Arah pencarian dalam metode ini berbanding terbalik dengan arah
gradien, yaitu dengan arah menurun tercuram (steepest descent), sehingga metode
ini diberi nama steepest descent. Arah curam menurun yang diterapkan dalam
metode ini sendiri dipercaya merupakan arah terbaik dalam artian metode ini dapat
mengurangi fungsi objektif sebanyak mungkin.
Stepsize �� dapat diperoleh dengan pencarian exact line:
�� = argmin{ (



+� −



}.

Metode steepest descent selalu konvergen. Secara teori metode ini tidak akan
berhenti atau akan terus melakukan iterasi sampai kriteria penghentian terpenuhi.
Namun, untuk kasus yang sangat sederhana saat fungsi objektif
merupakan
fungsi kuadrat konveks sempurna, yaitu:
=



+



,


��
dengan
,
simetris dan definit positif. Asumsikan kita
menggunakan stepsize yang didapat dari pencarian exact line, metode ini dapat
membutuhkan waktu yang cukup lama untuk memperoleh hasil (Yuan 2006).

HASIL DAN PEMBAHASAN
Metode Ya-xiang Yuan
Untuk analisis pada bab ini, diasumsikan bahwa fungsi objektif adalah
sebagai berikut:
=



+



,

3

��
dengan
dan
simetris dan definit positif. Pada dasarnya, metode
baru ini adalah pengembangan dari metode steepest descent. Dapat dilihat pada
metode baru ini pencarian exact line harus dilakukan pada iterasi terakhir sebelum
algoritme berhasil menemukan solusinya. Diasumsikan pula bahwa digunakan
pencarian exact line pada iterasi pertama supaya kita tidak menghindari
keberuntungan apabila ada kasus di mana algoritme dapat menemukan solusi pada
iterasi pertama. Oleh karena itu, dibuatlah algoritme sebagai berikut:

− �∗
−�
− �∗ ,

=
=
=

di mana � ∗ dan � ∗ didapat dari pencarian exact line dan
adalah solusi. Perlu
dicari formula untuk � sehingga
akan menjadi nilai minimum dari fungsi
objektif. Metode ini disebut metode Ya-xiang Yuan.
Untuk mempermudah analisis, dipelajari kasus di mana
dan
adalah
dua buah sumbu. Sesuai dengan pencarian exact line pada iterasi pertama, gradien
dan
adalah ortogonal. Oleh karena itu kita dapat menampilkan semua vektor
sebagai kombinasi linear dari
dan . Misalkan diberikan fungsi:

+



‖�

+ ⁄



+


‖� ‖









= (‖

⁄‖

⁄‖

‖)







‖‖



⁄‖

⁄‖

‖‖





)

Berdasarkan pencarian exact line pada iterasi pertama, diperoleh � ∗ = ‖

dan �
= −‖ ‖ /� ∗ yang diperoleh dari:
=

�+



Karena ��∗ = argmin {



�+

− ��∗



−( +


+





+

=

�+

+







=






− ��∗











− ��∗



− ��∗



− ��∗

− ��∗

− ��∗

+ ��∗













+

=



=

+

+



‖ /

.


}, diperlukan syarat
− ��∗

.

=

�+

=

=

+

=

sehingga:

4




� �

��∗

+ ��∗




=

��∗ =

Dengan menggunakan notasi � ∗ = ‖

+



‖� ‖

+ ⁄

+



‖�� ‖

.


� �




��� ���


= (‖

‖� ‖

, didapat bahwa:


‖)

⁄�∗

⁄�∗ ‖

−‖

=


� �

‖ /





=



��∗






−‖


⁄�∗ ‖
⁄�∗



)

.

Oleh karena itu, dapat diketahui nilai minimum dari fungsi objektifnya adalah:


yang diperoleh dari:







− �∗ ‖

‖� ‖‖� ‖

= − ‖�





‖ /�∗ −‖� ‖

∗ −


=



),


‖ ‖
=
�∗ ‖ ‖

‖−

‖− ‖

‖+


(
/�∗ ‖


=




‖ + �∗ ‖







‖=




=


(1)

‖=



∗‖

‖ = −�∗ �∗ ‖

‖‖

Kemudian dilakukan eliminasi pada persamaan (1) dan (2)

‖.

(2)

5
(1) * �∗ ‖
(2) * ‖

(3) + (4)





− �∗ ‖

�∗ ‖

Subtitusikan

‖ − �∗ ‖

‖‖

‖ + �∗ ‖

‖ − �∗ ‖

‖ = −�∗ �∗ ‖

‖ = −�∗ �∗ ‖

�∗ �∗ ‖ ‖ ‖ ‖
= − ∗
� ‖ ‖ − �∗ ‖ ‖

= − ‖�

‖� ‖ ‖� ‖
‖� ‖

⁄�∗
⁄�∗ −

.

= − ‖�

‖� ‖‖� ‖
‖� ‖

⁄�∗
⁄�∗ −

.

=

+

∗ �
‖� ‖

+

paralel terhadap vektor residual




dan
(‖

‖ =

(3)
‖ ‖

‖ ‖





(4)

ke persamaan (1) diperoleh:

Untuk mendapatkan
gradien

‖‖

�∗ ‖

‖) +

−‖

⁄�∗

⁄�∗ ‖

∗ �
‖� ‖



−(
−� ‖


−‖

, perlu diketahui bahwa arah

. Untuk itu, diperlukan dua arah:

‖)


⁄�∗ ‖



⁄�∗

)(
−� ‖

‖)

adalah dua buah arah yang paralel. Dua arah tersebut paralel terhadap masingmasing:



dan

Dapat diasumsikan:



‖ ‖
‖ ‖
‖ ‖
‖−�

/‖
�∗
�∗
� ‖
(

‖/� ∗ ‖ ‖
).
− � /� ∗

‖ ‖
‖ ‖
‖ ‖
‖−�
/‖
∗ −

�∗



= �(



� ‖

‖/� ∗ ‖ ‖
)
− � /� ∗

6

untuk λ
. Berdasarkan baris pertama didapatkan � = � ∗ ‖ ‖/� . Kemudian
nilai λ tersebut disubtitusikan ke baris kedua pada persamaan di atas sehingga
diperoleh:

−�



∗ −

Persamaan di atas ekuivalen dengan:

Karena

� ∗�

∗−

‖ ‖
� ∗‖ ‖

‖� ‖

� ∗ ‖� ‖

� −

�∗

definit positif, diketahui bahwa:
�=

∗ ∗

� �

=





�∗



�∗

�∗

� +

�∗

‖ ‖
� ∗‖ ‖

∗ −

.

= .

> .

Dari persamaan (3) diperoleh dua solusi positif untuk � yaitu:
⁄� ∗ + ⁄� ∗ ±√ ⁄� ∗ + ⁄� ∗


− �

.

Dari dua solusi tersebut dipilih nilai yang lebih kecil dan dapat dituliskan sebagai
berikut:

� =



⁄�∗ − ⁄�∗

+ ‖� ‖ ⁄‖� ‖ + ⁄�∗ + ⁄�∗

,

dengan = − = −� ∗ . � inilah yang disebut stepsize baru dan kemudian
akan diaplikasikan ke dalam metode hasil modifikasi steepest descent.
Metode Barzilai-Borwein
Gagasan utama dari metode Barzilai-Borwein ini adalah dengan
menggunakan hasil pada iterasi sebelumnya untuk menentukan stepsize. Metode ini
kemudian dikenal dengan metode BB. Iterasi yang digunakan adalah sebagai
berikut:
�+

=



− ��



,

di mana �� = �� . Metode ini memiliki dua buah stepsize:
�� =


�−

�−

�−

�−

7
dan

�� =


��−

dengan �− = � − �− dan �− =
digunakan satu buah stepsize yaitu:

�� =

�−



�−




. Pada karya ilmiah ini hanya

�−


��−
��−


��−

,

�−

.

�−

Hasil Numerik
Algoritme yang digunakan pada karya ilmiah ini adalah sebagai berikut:
Algoritme Ya-xiang Yuan
Step 1 Masukan titik awal . 0< � ≪ . Hitung , Tetapkan k=1.
Step 2 Hitung stepsize dengan pencarian exact line � ∗�− ; Tetapkan

� =
�− − � �−
�−
Step 3 Jika ‖
� maka berhenti;
� ‖
Step 4 Hitung stepsize dengan pencarian exact line � ∗� , Tetapkan




=

dan

√ ⁄� ∗�− − ⁄� ∗�

�‖

+ ‖

�+

=

Jika ‖ �+ ‖ � maka berhenti;
Step 5 k=k+1, kembali ke Step 2.



⁄‖

−�

�−



‖ + ⁄� ∗�− + ⁄� ∗�



Algoritme Steepest Descent

Step 1 Masukan titik awal . 0< � ≪ . Hitung , Tetapkan k=0.
Step 2 Hitung stepsize dengan pencarian exact line ��∗ ; Tetapkan
�+

=

Step 3 Jika ‖
� maka berhenti;
� ‖
Step 4 k=k+1, kembali ke Step 2.



− ��∗



8

Algoritme Barzilai-Borwein
Step 1. Diberikan � � , 0< � ≪ . Tetapkan k=0.
Step 2. Jika ∥ � ∥ �, stop; lainnya �� = − � .
Step 3. Jika k=0, menentukan � dengan pencarian exact line; selainnya dengan
menghitung �� dengan �� =

� �
��−
�−

��−
�−

.

Step 4. Tentukan �+ = � + �� �� .
Step 5. � = � + , kembali ke Step 2.

Fungsi yang digunakan adalah fungsi kuadratik diagonal, yaitu fungsi yang
dibangkitkan secara acak dengan ketentuan sebagai berikut:
=



∗ �

diag � , … , ��





.



.

Jumlah variabel yang digunakan dilambangkan dengan � di mana nilai �=2,3,10,25.
[− , ] yang dipilih secara acak. Diberikan �� =
Vektor �∗ � = , … , �
cond
,
dan �� � = , … , � di mana nilainya diperoleh secara acak dengan
interval [1, �� ]. Untuk semua kasus diberikan titik awal adalah vektor nol
−6
. Untuk setiap kasus,
, . . . , � dan kriteria penghentian adalah ‖ � ‖
dilakukan lima kali pengulangan.

n
2

��

10

100

Rata-rata

Tabel 1 Hasil untuk fungsi dua variabel
Ya-xiang Yuan
Steepest Descent
Iterasi Waktu (s) Iterasi Waktu (s) Iterasi
3
0,166250 14
0,952635
5
3
0,164151
6
0,474521
5
3
0,167652
6
0,441272
5
3
0,163253 15
0,993925
9
3
0,155448 16
1,070552
7
3
0,191924
5
0,391837
5
3
0,161772 25
1,644183
13
3
0,157719
8
0,592578
7
3
0,159453
5
0,392321
5
3
0,156356
8
0,569770
5
3
0,164398 10,8
0,752359
6,6

BB
Waktu (s)
0,265793
0,272782
0,289684
0,406331
0,345200
0,261558
0,535388
0,342918
0,268820
0,269873
0,325835

Untuk fungsi dengan dua variabel, metode Ya-xiang Yuan hanya membutuhkan
maksimal tiga iterasi untuk menemukan solusi minimumnya (Tabel 1). Metode ini
memiliki waktu yang paling cepat dan banyaknya iterasi paling sedikit
dibandingkan metode BB dan steepest descent.

9

n
3

��

10

100

Rata-rata

Tabel 2 Hasil untuk fungsi tiga variabel
Ya-xiang Yuan
Steepest Descent
Iterasi
Waktu (s) Iterasi Waktu (s) Iterasi
8
0,352896
12
0,889177
9
6
0,288516
55
3,814177
13
7
0,320067
54
3,790647
17
3
0,170093
9
0,693719
5
12
0,523204
22
1,599422
14
8
0,399514
18
1,351256
9
11
0,470182
102
6,948871
15
11
0,493538
36
2,514216
13
8
0,353545
30
2,144351
15
9
0,407075
26
1,884509
9
8,3
0,371715
36,4 2,426633
11,9

BB
Waktu (s)
0,487921
0,631213
0,788778
0,320157
0,681257
0,483705
0,717084
0,651547
0,714584
0,484089
0,596034

Untuk fungsi dengan tiga variabel, metode Ya-xiang Yuan memiliki waktu yang
paling cepat dan banyaknya iterasi paling sedikit dibandingkan metode BB dan
steepest descent. Pada salah satu percobaan, metode Ya-xiang Yuan dan metode
BB menghasilkan banyak iterasi yang sama yaitu sebesar sembilan iterasi, namun
waktu yang dibutuhkan metode Ya-xiang Yuan lebih cepat daripada metode BB
(Tabel 2). Berdasarkan nilai rata-rata, metode Ya-xiang Yuan dan BB hanya
membutuhkan waktu kurang dari satu sekon untuk menemukan solusi, sedangkan
metode steepest descent membutuhkan waktu lebih dari dua sekon.

��
n
10 10

100

Rata-rata

Tabel 3 Hasil untuk fungsi sepuluh variabel
Ya-xiang Yuan
Steepest Descent
Iterasi Waktu (s) Iterasi Waktu (s) Iterasi
23
2,349185
34
5,079649 23
19
2,016547
33
3,560591 17
17
1,745476
26
2,741951 17
15
1,614203
21
2,308352 13
20
2,062425
36
3,897925 18
27
2,821865
63
6,637803 25
36
3,617917
75
7,750232 26
65
6,452713
311
31,104918 45
29
3,001316
49
5,749044 27
35
3,413009
65
7,332228 31
28,6
2,909466
71,3
7,898116 24,2

BB
Waktu (s)
2,055472
1,670175
1,638760
1,369932
1,682789
2,430587
2,311006
3,758671
2,413808
2,699278
2,265746

Untuk fungsi dengan sepuluh variabel, metode BB memiliki waktu yang paling
cepat dan banyaknya iterasi paling sedikit dibandingkan metode Ya-xiang Yuan
dan steepest descent. Pada salah satu percobaan, metode Ya-xiang Yuan dan
metode BB menghasilkan banyaknya iterasi yang sama yaitu sebesar 17 iterasi,
namun waktu yang dibutuhkan metode BB lebih cepat daripada metode Ya-xiang
Yuan (Tabel 3). Berdasarkan nilai rata-rata, metode BB membutuhkan waktu

10

sekitar dua sekon untuk menemukan solusi minimumnya, metode Ya-xiang Yuan
membutuhkan waktu hampir tiga sekon, dan metode steepest descent membutuhkan
waktu sekitar tujuh sekon.

��
n
25 10

100

Tabel 4 Hasil untuk fungsi 25 variabel
Ya-xiang Yuan
Steepest Descent
BB
Iterasi Waktu (s) Iterasi Waktu (s) Iterasi
Waktu (s)
33
8,323247
70
12,596562 33
5,938817
31
7,952204
64
11,993606 27
5,167664
31
8,029839
68
12,730917 27
5,266595
33
8,415656
72
13,408431 29
5,481138
33
9,730223
74
13,550629 29
5,522943
62
15,998245 216
40,280921 53
9,297413
45
11,524196 132
24,407456 35
6,487686
39
10,020371 170
31,759268 37
6,798567
81
20,716241 304
61,059319 69
11,826102
79
20,283904 314
58,890976 55
9,714863
46,7
11,666209 148,4 28,067809 39,4
7,150179

Rata-rata
-rata
Untuk fungsi dengan 25 variabel, metode BB memiliki waktu yang paling cepat
dan banyaknya iterasi paling sedikit dibandingkan metode Ya-xiang Yuan dan
steepest descent. Pada salah satu percobaan, metode Ya-xiang Yuan dan metode
BB menghasilkan banyaknya iterasi yang sama yaitu sebesar 33 iterasi, namun
waktu yang dibutuhkan metode BB lebih cepat daripada metode Ya-xiang Yuan
(Tabel 4). Berdasarkan nilai rata-rata, metode BB membutuhkan waktu sekitar
tujuh sekon untuk menemukan solusi minimumnya, metode Ya-xiang Yuan
membutuhkan waktu sekitar 11 sekon, dan metode steepest descent membutuhkan
waktu sekitar 28 sekon
Perbandingan waktu eksekusi dan banyaknya iterasi untuk metode Ya-xiang
Yuan, metode BB, dan metode steepest descent dalam bentuk grafik, ditunjukkan
pada Gambar 1 dan Gambar 2. Untuk fungsi dengan dua dan tiga variabel, metode
Ya-xiang Yuan memiliki waktu yang paling cepat untuk menemukan solusi
dibandingkan metode BB dan steepest descent, sedangkan untuk fungsi dengan
sepuluh dan 25 variabel, metode BB memiliki waktu yang paling cepat untuk
menemukan solusi dibandingkan metode Ya-xiang Yuan dan steepest descent.
Metode steepest descent memiliki waktu yang paling lambat dibandingkan metode
BB dan Ya-xiang Yuan baik untuk fungsi dengan dua, tiga, sepuluh, maupun 25
variabel (Gambar 1).

11
30,000000
25,000000

Waktu (s)

20,000000
15,000000
10,000000
5,000000
0,000000

2

3

10

25

Ya-xiang Yuan

0,164398

0,371715

2,909466

11,666209

SD

0,752359

2,426633

7,898116

28,067809

BB

0,325835

0,596034

2,265746

7,150179

Gambar 1 Perbandingan waktu metode Ya-xiang Yuan, metode BB, dan metode
steepest descent

160
140

Banyak Iterasi

120
100
80
60
40
20
0
Ya-xiang Yuan

2

3

10

25

3

8,3

28,6

46,7

SD

10,8

36,4

71,3

148,4

BB

6,6

11,9

24,2

39,4

Gambar 2 Perbandingan banyak iterasi metode Ya-xiang Yuan, metode BB, dan
metode steepest descent
Untuk fungsi dengan dua dan tiga variabel, metode Ya-xiang Yuan memiliki iterasi
paling sedikit dibandingkan metode BB dan steepest descent, sedangkan untuk
fungsi dengan sepuluh dan 25 variabel, metode BB memiliki iterasi paling sedikit
dibandingkan metode Ya-xiang Yuan dan steepest descent. Metode steepest descent
memiliki banyaknya iterasi yang paling besar dibandingkan metode BB dan Yaxiang Yuan baik untuk fungsi dengan dua, tiga, sepuluh, maupun 25 variabel
(Gambar 2).

12

SIMPULAN
Modifikasi dengan memberikan stepsize baru yang dilakukan pada metode
Ya-xiang Yuan dapat menemukan solusi suatu masalah nonlinear tanpa kendala
dengan waktu yang lebih cepat dan jumlah iterasi yang lebih sedikit dibandingkan
metode Barzilai-Borwein dan metode steepest descent untuk masalah dimensi kecil.
Hasil percobaan bahkan menunjukan bahwa metode Ya-xiang Yuan dapat
menemukan nilai minimum dengan tiga iterasi saja untuk fungsi dua variabel.
Untuk masalah dengan dimensi yang besar, metode Barzilai-Borwein memberikan
kinerja yang lebih baik dibandingkan metode Ya-xiang Yuan maupun metode
steepest descent.

DAFTAR PUSTAKA
Barzilai J, Borwein JM. 1988. Two point step size gradient methods. IMA J Numer
Anal 8(1): 141-148. doi:10.1093/imanum/8.1.141.
Klerk E, Roos C, Terlaky T. 2005. Optimization. Delft(ND): Delft University of
Technology.
Yuan, Y. 2006. A new stepsize for the steepest descent method. Journal of
Computational Mathematics 24(2): 149-156.

13
Lampiran 1 Metode Ya-xiang Yuan untuk dua variabel
clear;
clc;
tic;
syms x1 x2
v2=[x1,x2];
xb=randi([-5,5],2,1);
b=randi(100,1,2);
B=diag(b);
f1=v2+xb.';
f=expand(f1*B*f1.')
x
= [x1 x2];
y
= [0 0];
tol
= 10^(-6);
gradien = jacobian(f,x)
a
= jacobian(gradien,x);
A
= subs(a,x,y)
g
= -subs(gradien,x,y)
Set_alpha=[];
set_LS=[];
k=1;
while norm(g)>tol
if (mod(k,2)==1)
alfa = g*g'/(g*A*g');
y1 = y(k,:)+alfa*g;
y = [y; y1]
Set_alpha=[Set_alpha single(alfa)];
k = k+1;
g = -subs(gradien,{x1,x2},{y(k,1),y(k,2)})
A = subs(a,{x1 x2},{y(k,1),y(k,2)});
nilai = subs(f,{x1,x2},{y(k,1),y(k,2)});
uji
= norm(g);
else
alfa = g*g'/(g*A*g');
Set_alpha=[Set_alpha single(alfa)];
s =y(k,:)- y(k-1,:);
L1 = sqrt((1/Set_alpha(k-1)1/Set_alpha(k)).^2+4*g*g'/(s*s'));
L2 = 1/Set_alpha(k-1)+1/Set_alpha(k);
alfa_new = single(2/(L1+L2));
set_LS=[set_LS;alfa_new];
y1 = y(k,:)+ alfa_new*g;
y = [y; y1]
k = k+1;
g = -subs(gradien,{x1,x2},{y(k,1),y(k,2)})
A = subs(a,{x1 x2},{y(k,1),y(k,2)});
nilai = subs(f,{x1,x2},{y(k,1),y(k,2)});
uji
= norm(g);
end
end
toc;
iterasi = k-1
uji_konvergensi = norm(g);

14

Lampiran 2 Metode Ya-xiang Yuan untuk tiga variabel
clear;
clc;
tic;
syms x1 x2 x3
v2=[x1,x2,x3];
xb=randi([-5,5],3,1);
b=randi(100,1,3);
B=diag(b);
f1=v2+xb.';
f=expand(f1*B*f1.')
x
= [x1 x2 x3];
y
= [0 0 0];
tol
= 10^(-6);
gradien = jacobian(f,x)
a
= jacobian(gradien,x);
A
= subs(a,x,y);
g
= -subs(gradien,x,y)
Set_alpha=[];
set_LS=[];
k=1;
while norm(g)>tol
if (mod(k,2)==1)
L = g*g'/(g*A*g');
y1 = y(k,:)+L*g;
y = [y; y1];
Set_alpha=[Set_alpha single(L)];
k = k+1;
g = -subs(gradien,{x1,x2,x3},{y(k,1),y(k,2),y(k,3)});
A = subs(a,{x1 x2 x3},{y(k,1),y(k,2),y(k,3)});
hasil = subs(f,{x1,x2,x3},{y(k,1),y(k,2),y(k,3)});
else
L = g*g'/(g*A*g');
Set_alpha=[Set_alpha single(L)];
s =y(k,:)- y(k-1,:);
L1 = sqrt((1/Set_alpha(k-1)1/Set_alpha(k)).^2+4*g*g'/(s*s'));
L2 = 1/Set_alpha(k-1)+1/Set_alpha(k);
LS = single(2/(L1+L2));
set_LS=[set_LS;LS];

y1 = y(k,:)+ LS*g;
y = [y; y1] ;
k = k+1;
g = -subs(gradien,{x1,x2,x3},{y(k,1),y(k,2),y(k,3)});
A = subs(a,{x1 x2 x3},{y(k,1),y(k,2),y(k,3)});
hasil = subs(f,{x1,x2,x3},{y(k,1),y(k,2),y(k,3)});
end
end
y
toc;
iterasi = k-1
uji_konvergensi = norm(g);

15
hasil;
F = subs(f,{x1,x2,x3},{y(end,1),y(end,2),y(end,3)});

16

Lampiran 3 Metode Ya-xiang Yuan untuk sepuluh variabel
clear;
clc;
tic;
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
v2=[x1,x2,x3,x4,x5,x6,x7,x8,x9,x10];
xb=randi([-5,5],10,1);
b=randi(100,1,10);
B=diag(b);
f1=v2+xb.';
f=expand(f1*B*f1.')
x
= [x1 x2 x3 x4 x5 x6 x7 x8 x9 x10];
y
= [0 0 0 0 0 0 0 0 0 0];
tol
= 10^(-8)
gradien = jacobian(f,x)
a
= jacobian(gradien,x);
A
= subs(a,x,y)
g
= -subs(gradien,x,y)
Set_alpha=[];
set_LS=[];
k=1;
while norm(g)>tol
if (mod(k,2)==1)
alfa = g*g'/(g*A*g')
y1 = y(k,:)+alfa*g
y = [y; y1]
Set_alpha=[Set_alpha single(alfa)]
k = k+1;
g = subs(gradien,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y
(k,8),y(k,9),y(k,10)})
A =
subs(a,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y(k,8),
y(k,9),y(k,10)})
nilai =
subs(f,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y(k,8),
y(k,9),y(k,10)})
uji
= norm(g)
else
alfa = g*g'/(g*A*g')
Set_alpha=[Set_alpha single(alfa)]
s =y(k,:)- y(k-1,:)
L1 = sqrt((1/Set_alpha(k-1)1/Set_alpha(k)).^2+4*g*g'/(s*s'))
L2 = 1/Set_alpha(k-1)+1/Set_alpha(k)
alfa_new = single(2/(L1+L2))
set_LS=[set_LS;alfa_new]

y1 = y(k,:)+ alfa_new*g
y = [y; y1]
k = k+1;
g = subs(gradien,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y
(k,8),y(k,9),y(k,10)})

17
A =
subs(a,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y(k,8),
y(k,9),y(k,10)})
nilai =
subs(f,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y(k,8),
y(k,9),y(k,10)})
uji
= norm(g)
end
end
y
iterasi = k-1
f
toc;

18

Lampiran 4 Metode Ya-xiang Yuan untuk 25 variabel
clear;
clc;
tic;
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17
x18 x19 x20 x21 x22 x23 x24 x25
v2=[x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18
,x19,x20,x21,x22,x23,x24,x25];
xb=randi([-5,5],25,1);
b=randi(100,1,25);
B=diag(b);
f1=v2+xb.';
f=expand(f1*B*f1.')
x
= [x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16
x17 x18 x19 x20 x21 x22 x23 x24 x25];
y
= [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
tol
= 10^(-6)
gradien = jacobian(f,x)
a
= jacobian(gradien,x);
A
= subs(a,x,y)
g
= -subs(gradien,x,y)
Set_alpha=[];
set_LS=[];
k=1;
while norm(g)>tol
if (mod(k,2)==1)
alfa = g*g'/(g*A*g')
y1 = y(k,:)+alfa*g
y = [y; y1]
Set_alpha=[Set_alpha single(alfa)]
k = k+1;
g = subs(gradien,x,{y(end,1),y(end,2),y(end,3),y(end,4),y(end,5),y(end
,6),y(end,7),y(end,8),y(end,9),y(end,10),y(end,11),y(end,12),y(end
,13),y(end,14),y(end,15),y(end,16),y(end,17),y(end,18),y(end,19),y
(end,20),y(end,21),y(end,22),y(end,23),y(end,24),y(end,25)})
A =
subs(a,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y(k,8),
y(k,9),y(k,10),y(k,11),y(k,12),y(k,13),y(k,14),y(k,15),y(k,16),y(k
,17),y(k,18),y(k,19),y(k,20),y(k,21),y(k,22),y(k,23),y(k,24),y(k,2
5)})
nilai =
subs(f,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y(k,8),
y(k,9),y(k,10),y(k,11),y(k,12),y(k,13),y(k,14),y(k,15),y(k,16),y(k
,17),y(k,18),y(k,19),y(k,20),y(k,21),y(k,22),y(k,23),y(k,24),y(k,2
5)})
uji
= norm(g)
else
alfa = g*g'/(g*A*g')
Set_alpha=[Set_alpha single(alfa)]
s =y(k,:)- y(k-1,:)
L1 = sqrt((1/Set_alpha(k-1)1/Set_alpha(k)).^2+4*g*g'/(s*s'))
L2 = 1/Set_alpha(k-1)+1/Set_alpha(k)
alfa_new = single(2/(L1+L2))

19
set_LS=[set_LS;alfa_new]

y1 = y(k,:)+ alfa_new*g
y = [y; y1]
k = k+1;
g = subs(gradien,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y
(k,8),y(k,9),y(k,10),y(k,11),y(k,12),y(k,13),y(k,14),y(k,15),y(k,1
6),y(k,17),y(k,18),y(k,19),y(k,20),y(k,21),y(k,22),y(k,23),y(k,24)
,y(k,25)})
A =
subs(a,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y(k,8),
y(k,9),y(k,10),y(k,11),y(k,12),y(k,13),y(k,14),y(k,15),y(k,16),y(k
,17),y(k,18),y(k,19),y(k,20),y(k,21),y(k,22),y(k,23),y(k,24),y(k,2
5)})
nilai =
subs(f,x,{y(k,1),y(k,2),y(k,3),y(k,4),y(k,5),y(k,6),y(k,7),y(k,8),
y(k,9),y(k,10),y(k,11),y(k,12),y(k,13),y(k,14),y(k,15),y(k,16),y(k
,17),y(k,18),y(k,19),y(k,20),y(k,21),y(k,22),y(k,23),y(k,24),y(k,2
5)})
uji
= norm(g)
end
end
y
iterasi = k-1
f
toc;

20

Lampiran 5 Metode steepest descent untuk dua variabel
Contoh:
clear
clc
tic
syms x1 x2 lambda
f
= 32*x1^2 - 192*x1 + 93*x2^2 - 186*x2 + 381;
x
= [x1 x2];
x0
= [0,0];
tol
= 10^(-6);
%Hitung Gradien f(x1,x2);
Gradien = jacobian(f,x)
S_cek
= subs(f,[x1 x2],{x0(1),x0(2)})
%Subtitusi Gradien f(x0,y0)
k = 0;
N = [];
N =[N; x0(1) x0(2)];
S
= subs(Gradien,[x1 x2],{x0(1),x0(2)})
while norm(S) > tol
LGM
= lambda*(-S);
y0
= x0+LGM;
fsub
= subs(f,[x1,x2],{y0(1),y0(2)});
difsub = diff(fsub,lambda);
Lsub
= solve(difsub,lambda);
LM
= min(single(Lsub));
y0
= subs(y0,lambda,LM);
k
= k+1;
N
= [N;y0(1) y0(2)];
x0
= y0;
S
= subs(Gradien,[x1 x2],{x0(1),x0(2)});
%L(k)
= LM
end
iterasi = k
N
toc
clf(figure(1))
figure(1)
ezcontour(f,[-1,4],[-1,4])
grid on
hold on
plot(N(:,1),N(:,2),'-ko','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',3)
axis square

21
Lampiran 6 Metode steepest descent untuk tiga variabel
Contoh:
clear
clc
tic
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 lambda
f
= 6*x1^2 + 24*x1 + 10*x2^2 - 80*x2 + 7*x3^2 + 28*x3 + 212;
x
= [x1 x2 x3];
x0
= [0,0,0];
tol
= 10^(-6);
%Hitung Gradien f(x1,x2);
Gradien = jacobian(f,x)
S_cek
= subs(f,x,{x0(1),x0(2),x0(3)})
%Subtitusi Gradien f(x0,y0)
k = 0;
N = [];
N =[N; x0(1) x0(2) x0(3)];
S
= subs(Gradien,x,{x0(1),x0(2),x0(3)})
while norm(S) > tol
LGM
= lambda*(-S);
y0
= x0+LGM;
fsub
= subs(f,x,{y0(1),y0(2),y0(3)});
difsub = diff(fsub,lambda);
Lsub
= solve(difsub,lambda);
LM
= min(single(Lsub));
y0
= subs(y0,lambda,LM);
k
= k+1;
N
= [N;y0(1) y0(2) y0(3)];
x0
= y0;
S
= subs(Gradien,x,{x0(1),x0(2),x0(3)});
%L(k)
= LM
end
iterasi = k
N
toc

22

Lampiran 7 Metode steepest descent untuk sepuluh variabel
Contoh:
clear
clc
tic
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 lambda
f
= 68*x1^2 - 408*x1 + 70*x2^2 + 280*x2 + 7*x3^2 - 28*x3 +
920;
x
= [x1 x2 x3 x4 x5 x6 x7 x8 x9 x10];
x0
= [0,0,0,0,0,0,0,0,0,0];
tol
= 10^(-6);
%Hitung Gradien f(x1,x2);
Gradien = jacobian(f,x)
S_cek
= subs(f,x,{x0(1),x0(2),x0(3)})
%Subtitusi Gradien f(x0,y0)
k = 0;
N = [];
N =[N; x0(1) x0(2) x0(3) x0(4) x0(5) x0(6) x0(7) x0(8) x0(9)
x0(10)];
S
=
subs(Gradien,x,{x0(1),x0(2),x0(3),x0(4),x0(5),x0(6),x0(7),x0(8),x0
(9),x0(10)})
while norm(S) > tol
LGM
= lambda*(-S);
y0
= x0+LGM;
fsub
=
subs(f,x,{y0(1),y0(2),y0(3),y0(4),y0(5),y0(6),y0(7),y0(8),y0(9),y0
(10)});
difsub = diff(fsub,lambda);
Lsub
= solve(difsub,lambda);
LM
= min(single(Lsub));
y0
= subs(y0,lambda,LM);
k
= k+1;
N
= [N;y0(1) y0(2) y0(3) y0(4) y0(5) y0(6) y0(7) y0(8) y0(9)
y0(10)];
x0
= y0;
S
=
subs(Gradien,x,{x0(1),x0(2),x0(3),x0(4),x0(5),x0(6),x0(7),x0(8),x0
(9),x0(10)});
%L(k)
= LM
end
iterasi = k
N
toc

23
Lampiran 8 Metode steepest descent untuk 25 variabel
Contoh:
clear
clc
tic
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17
x18 x19 x20 x21 x22 x23 x24 x25 lambda
f
= 38*x1^2 - 152*x1 + 41*x10^2 + 82*x10 + 84*x11^2 +
168*x11 + 14*x12^2 - 56*x12 + 7*x13^2 + 9*x14^2 + 36*x14 +
17*x15^2 + 136*x15 + 33*x16^2 + 132*x16 + 31*x17^2 - 310*x17 +
2*x18^2 + 8*x18 + 54*x19^2 - 108*x19 + 55*x2^2 + 220*x2 + 10*x20^2
- 20*x20 + 15*x21^2 - 120*x21 + 64*x22^2 + 384*x22 + 86*x23^2 344*x23 + 98*x24^2 - 588*x24 + 58*x25^2 - 232*x25 + 57*x3^2 228*x3 + 40*x4^2 + 320*x4 + 40*x5^2 + 320*x5 + 52*x6^2 - 104*x6 +
66*x7^2 + 96*x8^2 + 384*x8 + 73*x9^2 + 584*x9 + 7226;
x
= [x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16
x17 x18 x19 x20 x21 x22 x23 x24 x25];
x0
= [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
tol
= 10^(-6);
%Hitung Gradien f(x1,x2);
Gradien = jacobian(f,x)
S_cek
=
subs(f,x,{x0(1),x0(2),x0(3),x0(4),x0(5),x0(6),x0(7),x0(8),x0(9),x0
(10),x0(11),x0(12),x0(13),x0(14),x0(15),x0(16),x0(17),x0(18),x0(19
),x0(20),x0(21),x0(22),x0(23),x0(24),x0(25)})
%Subtitusi Gradien f(x0,y0)
k = 0;
N = [];
N =[N; x0(1) x0(2) x0(3) x0(4) x0(5) x0(6) x0(7) x0(8) x0(9)
x0(10) x0(11) x0(12) x0(13) x0(14) x0(15) x0(16) x0(17) x0(18)
x0(19) x0(20) x0(21) x0(22) x0(23) x0(24) x0(25)]
S
=
subs(Gradien,x,{x0(1),x0(2),x0(3),x0(4),x0(5),x0(6),x0(7),x0(8),x0
(9),x0(10),x0(11),x0(12),x0(13),x0(14),x0(15),x0(16),x0(17),x0(18)
,x0(19),x0(20),x0(21),x0(22),x0(23),x0(24),x0(25)})
while norm(S) > tol
LGM
= lambda*(-S);
y0
= x0+LGM;
fsub
=
subs(f,x,{y0(1),y0(2),y0(3),y0(4),y0(5),y0(6),y0(7),y0(8),y0(9),y0
(10),y0(11),y0(12),y0(13),y0(14),y0(15),y0(16),y0(17),y0(18),y0(19
),y0(20),y0(21),y0(22),y0(23),y0(24),y0(25)});
difsub = diff(fsub,lambda);
Lsub
= solve(difsub,lambda);
LM
= min(single(Lsub));
y0
= subs(y0,lambda,LM);
k
= k+1;
N
= [N;y0(1) y0(2) y0(3) y0(4) y0(5) y0(6) y0(7) y0(8) y0(9)
y0(10) y0(11) y0(12) y0(13) y0(14) y0(15) y0(16) y0(17) y0(18)
y0(19) y0(20) y0(21) y0(22) y0(23) y0(24) y0(25)]
x0
= y0;
S
=
subs(Gradien,x,{x0(1),x0(2),x0(3),x0(4),x0(5),x0(6),x0(7),x0(8),x0
(9),x0(10),x0(11),x0(12),x0(13),x0(14),x0(15),x0(16),x0(17),x0(18)
,x0(19),x0(20),x0(21),x0(22),x0(23),x0(24),x0(25)});
end

24

N
iterasi = k
toc

25
Lampiran 9 Metode BB untuk dua variabel
Contoh:
clear;
clc;
tic;
syms x1 x2
f = 26*x1^2 - 52*x1 + 41*x2^2 - 328*x2 + 682
x
= [x1 x2]
y
= [0 0]
tol
= 10^(-6)
gradien = jacobian(f,x)
g
= single(-subs(gradien,{x1,x2},{y(1,1),y(1,2)}))
a
= jacobian(gradien,x)
A
= subs(a,{x1 x2},{y(1,1),y(1,2)})
F
= subs(f,{x1,x2},{y(1,1),y(1,2)})
set_F
= [F]
set_g
= [g]
k=1
while norm(g)>tol
if mod(k,2)==1
L = g*g'/(g*A*g')
y1 = y(end,:)+L*g
y = [y; y1]
g = single(-subs(gradien,{x1,x2},{y(end,1),y(end,2)}))
F = subs(f,{x1,x2},{y(end,1),y(end,2)})
set_F = [set_F;F]
set_g = [set_g;g]
else
sk =y(end,:)-y(end-1,:)
yk =set_g(end,:)-set_g(end-1,:)
L = -sk*sk'/(sk*yk')
y1 = y(end,:)+ L*set_g(end,:)
y = [y; y1]
g = single(-subs(gradien,{x1,x2},{y(end,1),y(end,2)}))
F = subs(f,{x1,x2},{y(end,1),y(end,2)})
set_F = [set_F;F]
set_g = [set_g;g]
end
k = k+1;
end
y
toc;
iterasi = k-1

26

Lampiran 10 Metode BB untuk tiga variabel
Contoh:
clear;
clc;
tic;
syms x1 x2 x3
f = 68*x1^2 - 408*x1 + 70*x2^2 + 280*x2 + 7*x3^2 - 28*x3 + 920
x
= [x1 x2 x3]
y
= [0 0 0]
tol
= 10^(-6)
gradien = jacobian(f,x)
g
= single(-subs(gradien,{x1,x2,x3},{y(1,1),y(1,2),y(1,3)}))
a
= jacobian(gradien,x)
A
= subs(a,{x1 x2 x3},{y(1,1),y(1,2),y(1,3)})
F
= subs(f,{x1,x2,x3},{y(1,1),y(1,2),y(1,3)})
set_F
= [F]
set_g
= [g]
k=1
while norm(g)>tol
if mod(k,2)==1
L = g*g'/(g*A*g')
y1 = y(end,:)+L*g
y = [y; y1]
g = single(subs(gradien,{x1,x2,x3},{y(end,1),y(end,2),y(end,3)}))
F = subs(f,{x1,x2,x3},{y(end,1),y(end,2),y(end,3)})
set_F = [set_F;F]
set_g = [set_g;g]
else
sk =y(end,:)-y(end-1,:)
yk =set_g(end,:)-set_g(end-1,:)
L = -sk*sk'/(sk*yk')
y1 = y(end,:)+ L*set_g(end,:)
y = [y; y1]
g = single(subs(gradien,{x1,x2,x3},{y(end,1),y(end,2),y(end,3)}))
F = subs(f,{x1,x2,x3},{y(end,1),y(end,2),y(end,3)})
set_F = [set_F;F]
set_g = [set_g;g]
end
k = k+1;
end
y
toc;
iterasi = k-1

27
Lampiran 11 Metode BB untuk sepuluh variabel
Contoh:
clear;
clc;
tic;
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
f = 28*x1^2 - 56*x1 + 23*x10^2 + 138*x10 + 68*x2^2 - 136*x2 +
66*x3^2 + 396*x3 + 17*x4^2 + 102*x4 + 12*x5^2 - 72*x5 + 50*x6^2 +
96*x7^2 - 192*x7 + 35*x8^2 + 140*x8 + 59*x9^2 + 236*x9 + 1630
x
= [x1 x2 x3 x4 x5 x6 x7 x8 x9 x10]
y
= [0,0,0,0,0,0,0,0,0,0]
tol
= 10^(-6)
gradien = jacobian(f,x)
g
= single(-subs(gradien,x,y))
a
= jacobian(gradien,x)
A
= subs(a,x,y)
F
= subs(f,x,y)
set_F
= [F]
set_g
= [g]
k=1
while norm(g)>tol
if mod(k,2)==1
L = g*g'/(g*A*g')
y1 = y(end,:)+L*g
y = [y; y1]
g = single(subs(gradien,x,{y(end,1),y(end,2),y(end,3),y(end,4),y(end,5),y(end
,6),y(end,7),y(end,8),y(end,9),y(end,10)}))
F =
subs(f,x,{y(end,1),y(end,2),y(end,3),y(end,4),y(end,5),y(end,6),y(
end,7),y(end,8),y(end,9),y(end,10)})
set_F = [set_F;F]
set_g = [set_g;g]
else
sk =y(end,:)-y(end-1,:)
yk =set_g(end,:)-set_g(end-1,:)
L = -sk*sk'/(sk*yk')
y1 = y(end,:)+ L*set_g(end,:)
y = [y; y1]
g = single(subs(gradien,x,{y(end,1),y(end,2),y(end,3),y(end,4),y(end,5),y(end
,6),y(end,7),y(end,8),y(end,9),y(end,10)}))
F =
subs(f,x,{y(end,1),y(end,2),y(end,3),y(end,4),y(end,5),y(end,6),y(
end,7),y(end,8),y(end,9),y(end,10)})
set_F = [set_F;F]
set_g = [set_g;g]
end
k = k+1;
end
y
toc;
iterasi = k-1

28

Lampiran 12 Metode BB untuk 25 variabel
Contoh:
clear;
clc;
tic;
syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17
x18 x19 x20 x21 x22 x23 x24 x25
f = 38*x1^2 - 152*x1 + 41*x10^2 + 82*x10 + 84*x11^2 + 168*x11 +
14*x12^2 - 56*x12 + 7*x13^2 + 9*x14^2 + 36*x14 + 17*x15^2 +
136*x15 + 33*x16^2 + 132*x16 + 31*x17^2 - 310*x17 + 2*x18^2 +
8*x18 + 54*x19^2 - 108*x19 + 55*x2^2 + 220*x2 + 10*x20^2 - 20*x20
+ 15*x21^2 - 120*x21 + 64*x22^2 + 384*x22 + 86*x23^2 - 344*x23 +
98*x24^2 - 588*x24 + 58*x25^2 - 232*x25 + 57*x3^2 - 228*x3 +
40*x4^2 + 320*x4 + 40*x5^2 + 320*x5 + 52*x6^2 - 104*x6 + 66*x7^2 +
96*x8^2 + 384*x8 + 73*x9^2 + 584*x9 + 7226
x
= [x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16
x17 x18 x19 x20 x21 x22 x23 x24 x25]
y
= [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
tol
= 10^(-6)
gradien = jacobian(f,x)
g
= single(-subs(gradien,x,y))
a
= jacobian(gradien,x)
A
= subs(a,x,y)
F
= subs(f,x,y)
set_F
= [F]
set_g
= [g]
k=1
while norm(g)>tol
if mod(k,2)==1
L = g*g'/(g*A*g')
y1 = y(end,:)+L*g
y = [y; y1]
g = single(subs(gradien,x,{y(end,1),y(end,2),y(end,3),y(end,4),y(end,5),y(end
,6),y(end,7),y(end,8),y(end,9),y(end,10),y(end,11),y(end,12),y(end
,13),y(end,14),y(end,15),y(end,16),y(end,17),y(end,18),y(end,19),y
(end,20),y(end,21),y(end,22),y(end,23),y(end,24),y(end,25)}))
F =
subs(f,x,{y(end,1),y(end,2),y(end,3),y(end,4),y(end,5),y(end,6),y(
end,7),y(end,8),y(end,9),y(end,10),y(end,11),y(end,12),y(end,13),y
(end,14),y(end,15),y(end,16),y(end,17),y(end,18),y(end,19),y(end,2
0),y(end,21),y(end,22),y(end,23),y(end,24),y(end,25)})
set_F = [set_F;F]
set_g = [set_g;g]
else
sk =y(end,:)-y(end-1,:)
yk =set_g(end,:)-set_g(end-1,:)
L = -sk*sk'/(sk*yk')
y1 = y(end,:)+ L*set_g(end,:)
y = [y; y1]
g = single(subs(gradien,x,{y(end,1),y(end,2),y(end,3),y(end,4),y(end,5),y(end
,6),y(end,7),y(end,8),y(end,9),y(end,10),y(end,11),y(end,12),y(end
,13),y(end,14),y(end,15),y(end,16),y(end,17),y(end,18),y(end,19),y
(end,20),y(end,21),y(end,22),y(end,23),y(end,24),y(end,25)}))

29
F =
subs(f,x,{y(end,1),y(end,2),y(end,3),y(end,4),y(end,5),y(end,6),y(
end,7),y(end,8),y(end,9),y(end,10),y(end,11),y(end,12),y(end,13),y
(end,14),y(end,15),y(end,16),y(end,17),y(end,18),y(end,19),y(end,2
0),y(end,21),y(end,22),y(end,23),y(end,24),y(end,25)})
set_F = [set_F;F]
set_g = [set_g;g]
end
k = k+1;
end
y
toc;
iterasi = k-1

30

RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggal 21 November 1992 dari ayah H.
Chairul Chaniago dan ibu Hj. Radiah Azita. Penulis adalah putra keempat dari
empat bersaudara. Tahun 2010 penulis lulus dari SMA Negeri 47 Jakarta dan pada
tahun yang sama penulis lulus seleksi masuk Institut Pertanian Bogor (IPB) melalui
jalur Undangan Seleksi Masuk IPB (USMI) dan diterima di Departemen
Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam.
Selama mengikuti perkuliahan, penulis pernah aktif sebagai anggota
Organisasi Mahasiswa Daerah (OMDA) Jakarta Community. Penulis juga pernah
aktif sebagai asisten pengajar di bimbingan belajar Matematika Kumon.
Penulis juga aktif sebagai wakil ketua Futsal Kaskus Tangerang Selatan.
Selain itu penulis juga pernah aktif di Futsal Matematika, Sepakbola Matematika,
Atletik Matematika, Futsal FMIPA, dan Sepakbola TPB 47. Beberapa prestasi yang
diraih oleh penulis antara lain ialah Juara 2 Sepakbola Olimpiade Mahasiswa IPB
(OMI) tahun 2011, Juara 2 Futsal Sport Competition and Art Festival on Mipa
Faculty (SPIRIT) tahun 2012, Juara 2 Sepakbola SPIRIT tahun 2012, Juara 1
Sepakbola SPIRIT tahun 2013, Juara 3 Estafet Pria SPIRIT 2013, dan Juara 2
Estafet Pria SPIRIT tahun 2014.