• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
40
0
0

Teks penuh

(1)

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

(2)
(3)

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

(4)

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

Ya-xiang 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.

(5)

Skripsi

sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains

pada

Departemen Matematika

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

(6)
(7)

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

(8)

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

(9)

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

(10)

DAFTAR TABEL

1 Hasil untuk fungsi dua variabel 8

2 Hasil untuk fungsi tiga variabel 9

3 Hasil untuk fungsi sepuluh variabel 9

4 Hasil untuk fungsi 25 variabel 10

DAFTAR GAMBAR

1 Perbandingan waktu metode Ya-xiang Yuan, metode BB,

dan metode steepest descent 11

2 Perbandingan banyak iterasi metode Ya-xiang Yuan, metode BB,

dan metode steepest descent 11

DAFTAR LAMPIRAN

1 Metode Ya-xiang Yuan untuk dua variabel 13

2 Metode Ya-xiang Yuan untuk tiga variabel 14

3 Metode Ya-xiang Yuan untuk sepuluh variabel 16

4 Metode Ya-xiang Yuan untuk 25 variabel 18

5 Metode steepest descent untuk dua variabel 20

6 Metode steepest descent untuk tiga variabel 21

7 Metode steepest descent untuk sepuluh variabel 22

8 Metode steepest descent untuk 25 variabel 23

9 Metode BB untuk dua variabel 25

10 Metode BB untuk tiga variabel 26

11 Metode BB untuk sepuluh variabel 27

(11)

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,

(12)

2

TINJAUAN PUSTAKA

Metode steepest descent adalah metode gradien sederhana untuk

pengoptimuman tanpa kendala:

min ,

dengan adalah fungsi kontinu dan terturunkan di �. Metode ini memiliki

bentuk sebagai berikut:

�+ = �+ �� − � ,

dengan = = adalah vektor gradien dari di dan �� > 0

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:

(13)

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: ′

�− ��∗ � =

− ′

�− ��∗ � � � =

−( + �− ��∗ � � + =

− + − ��∗ � � + =

− + � + + �

(14)

4

− �� �+ ��∗ �� � =

��∗ �� � = �� �

��∗ = � �

� �� �

=

‖��‖

����

.

Dengan menggunakan notasi �∗ = ‖ ‖ /, didapat bahwa:

+ ‖� ‖� + ‖� ‖� = (‖ ‖)

+ ⁄ � ⁄�∗

−‖ ‖

�∗‖ ‖

⁄ −‖ ‖

�∗‖ ‖

⁄ ⁄

) .

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

= −

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

(

‖ ‖

‖ ‖)

, yang diperoleh dari:

� � =

�∗ −

‖ ‖ �∗‖ ‖ =

‖ ‖ − ‖ ‖ =

‖ ‖ − ‖ ‖ = (1)

� � =

‖ ‖ +‖ ‖‖ ‖ =

− �∗‖ ‖ + �‖ ‖ = −�‖ ‖‖ ‖. (2)

(15)

5 (1) * �∗‖ ‖ ‖ ‖‖ ‖ − �‖ ‖ = (3)

(2) * ‖ ‖ − �∗‖ ‖‖ ‖ + �‖ ‖ = −�‖ ‖ ‖ ‖ (4)

(3) + (4) �∗‖ ‖ − �‖ ‖ = −�‖ ‖ ‖ ‖

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

= −

‖� ‖‖� ‖ ‖� ‖

�∗

⁄ −‖� ‖ �⁄ ∗

.

Subtitusikan ke persamaan (1) diperoleh:

= −

‖� ‖‖� ‖‖� ‖

�∗

⁄ −‖� ‖ �⁄ ∗

.

Untuk mendapatkan = + ∗ �

‖� ‖+ ∗ �‖� ‖ , perlu diketahui bahwa arah gradien paralel terhadap vektor residual − . Untuk itu, diperlukan dua arah:

∗ − (−� ‖ ‖)

dan

(‖ ‖) + ⁄�∗

−‖ ‖

�∗‖ ‖

⁄ −‖ ‖

�∗‖ ‖

⁄ ⁄∗ ) (−� ‖ ‖)

adalah dua buah arah yang paralel. Dua arah tersebut paralel terhadap masing-masing:

‖ ‖

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

dan

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

Dapat diasumsikan:

‖ ‖

‖ ‖ − � ‖ ‖ −‖ ‖ /‖ ‖ = � (� ‖ ‖/�

‖ ‖

(16)

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:

�� = �− �

(17)

7 dan

=

��− �

�−

�−� �−

,

dengan �− = �− �− dan �− = �− �− . Pada karya ilmiah ini hanya

digunakan satu buah stepsize yaitu:

=

��−� ��−

�−� �−

.

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;

(18)

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. Vektor � = , … , � [− , ] yang dipilih secara acak. Diberikan

� =

cond , dan �� � = , … , � di mana nilainya diperoleh secara acak dengan

interval [1, ��]. Untuk semua kasus diberikan titik awal adalah vektor nol

, . . . , � dan kriteria penghentian adalah

�‖ −6. Untuk setiap kasus,

dilakukan lima kali pengulangan.

Tabel 1 Hasil untuk fungsi dua variabel

Ya-xiang Yuan Steepest Descent BB

n Iterasi Waktu (s) Iterasi Waktu (s) Iterasi Waktu (s) 2 10 3 0,166250 14 0,952635 5 0,265793

3 0,164151 6 0,474521 5 0,272782

3 0,167652 6 0,441272 5 0,289684

3 0,163253 15 0,993925 9 0,406331

3 0,155448 16 1,070552 7 0,345200 100 3 0,191924 5 0,391837 5 0,261558

3 0,161772 25 1,644183 13 0,535388

3 0,157719 8 0,592578 7 0,342918

3 0,159453 5 0,392321 5 0,268820

3 0,156356 8 0,569770 5 0,269873 Rata-rata 3 0,164398 10,8 0,752359 6,6 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.

(19)

9

Tabel 2 Hasil untuk fungsi tiga variabel

Ya-xiang Yuan Steepest Descent BB

n Iterasi Waktu (s) Iterasi Waktu (s) Iterasi Waktu (s) 3 10 8 0,352896 12 0,889177 9 0,487921

6 0,288516 55 3,814177 13 0,631213

7 0,320067 54 3,790647 17 0,788778

3 0,170093 9 0,693719 5 0,320157 12 0,523204 22 1,599422 14 0,681257 100 8 0,399514 18 1,351256 9 0,483705

11 0,470182 102 6,948871 15 0,717084

11 0,493538 36 2,514216 13 0,651547 8 0,353545 30 2,144351 15 0,714584 9 0,407075 26 1,884509 9 0,484089 Rata-rata 8,3 0,371715 36,4 2,426633 11,9 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.

Tabel 3 Hasil untuk fungsi sepuluh variabel

Ya-xiang Yuan Steepest Descent BB

n Iterasi Waktu (s) Iterasi Waktu (s) Iterasi Waktu (s) 10 10 23 2,349185 34 5,079649 23 2,055472 19 2,016547 33 3,560591 17 1,670175 17 1,745476 26 2,741951 17 1,638760 15 1,614203 21 2,308352 13 1,369932 20 2,062425 36 3,897925 18 1,682789 100 27 2,821865 63 6,637803 25 2,430587 36 3,617917 75 7,750232 26 2,311006

65 6,452713 311 31,104918 45 3,758671

29 3,001316 49 5,749044 27 2,413808 35 3,413009 65 7,332228 31 2,699278 Rata-rata 28,6 2,909466 71,3 7,898116 24,2 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

��

(20)

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.

Tabel 4 Hasil untuk fungsi 25 variabel

Ya-xiang Yuan Steepest Descent BB

n Iterasi Waktu (s) Iterasi Waktu (s) Iterasi Waktu (s) 25 10 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 100 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 Rata-rata

-rata 46,7 11,666209 148,4 28,067809 39,4 7,150179 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).

(21)

11

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

Gambar 2 Perbandingan banyak iterasi metodeYa-xiang Yuan, metode BB, dan

metode steepest descent

Untuk fungsi dengan dua dan tiga variabel, metode Ya-xiang Yuanmemiliki 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 Yuandan steepest descent. Metode steepest descent

memiliki banyaknya iterasi yang paling besar dibandingkan metode BB dan Ya-xiang Yuan baik untuk fungsi dengan dua, tiga, sepuluh, maupun 25 variabel (Gambar 2).

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

0,000000 5,000000 10,000000 15,000000 20,000000 25,000000 30,000000

Wa

kt

u

(s

)

2 3 10 25

Ya-xiang Yuan 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

0 20 40 60 80 100 120 140 160

Ban

y

ak

It

e

ra

(22)

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.

(23)

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

(24)

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

(25)

15 hasil;

(26)

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 =

(27)

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

(28)

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'))

(29)

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

(30)

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)

[image:30.595.77.425.73.822.2]
(31)

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

(32)

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

(33)

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)});

(34)

24

N

(35)

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;

(36)

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;

(37)

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;

(38)

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 =

(39)

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;

(40)

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

Gambar

Tabel 1  Hasil untuk fungsi dua variabel
Tabel 2  Hasil untuk fungsi tiga variabel
Tabel 4  Hasil untuk fungsi 25 variabel
Gambar 1  Perbandingan waktu metode Ya-xiang Yuan, metode BB, dan metode
+2

Referensi

Dokumen terkait

Hasil yang diperoleh adalah proses produksi PGPR dalam low-cost substrat dapat didekati dengan persamaan contois, nilai parameter kinetika terkait pertumbuhan yang

penggunaan software, jenis ancaman, dan cara menanggulanginya. c) User: penggolongan user berdasarkan prioritas, siapa saja yang boleh dan tidak boleh terhadap akses

Madrasah Ibtidaiyah Darussalam Bengkulu City. This research aims to determine what problems are faced by teachers in using learning media and how teachers deal with these

[r]

Kalau pada korelasi product moment, sumber data untuk variabel yang akan dikorelasikan adalah data interval atau rasio, serta data dari kedua variabel masing-

Samalla voidaan tuoda esille jakson tarkoitus; tukea moniammatillisesti ja laaja-alaisesti asiakkaan itsenäistä kotona pärjäämistä, tukea asiakkaan arkea ja toimintakykyä

A mintában szereplő vállalatok megoszlása a tulajdonosi szerkezet szerint.. gyar nagyvállalat saját fejlesztésű szoftverrel dolgozik. A legnagyobb árbevétellel rendelkező

Please contact the Asia Foundation Development Fellows staff and they will be able to assist you in recovering your application information. I cannot find the Letters of