Anda di halaman 1dari 10

OPTIMASI NUMERIK

(Part 2)
Mencari Nilai Minimum Dengan Menggunakan Bracketing Search Method
Optimasi Numerik
• Uji turunan pertama dan kedua
• Bracketing methods
• Golden Ratio Search
• Fibonacci Search
• Derivative Methods
• Quadratic Approximation
• Cubic Approximation
Definisi 1
• Fungsi 𝑓 𝑥 disebut unimodal pada interval 𝐼 = 𝑎, 𝑏 , jika ada 𝑝 ∈ 𝐼
sehingga 𝑓 𝑥 turun di interval 𝑎, 𝑝 dan naik di interval 𝑝, 𝑏

• Diketahui 𝑓 𝑥 unimodal pada interval 𝑎, 𝑏 . Misalkan ada 𝑐, 𝑑 ∈ 𝐼


sehingga 𝑎 < 𝑐 < 𝑑 < 𝑏, maka berlaku:
Jika 𝑓(𝑐) ≤ 𝑓(𝑑) maka nilai minimum terletak di interval 𝑎, 𝑑
Jika 𝑓 𝑐 > 𝑓(𝑑) maka nilai minimum terletak di interval 𝑐, 𝑏
Golden Ratio Search
Diketahui 𝑓(𝑥) unimodal pada interval 𝑎, 𝑏 . Misalkan juga ada 𝑐, 𝑑 ∈ 𝐼 sehingga 𝑎 < 𝑐 < 𝑑 < 𝑏.
Langkah-langkah untuk mencari nilai minimumnya adalah sebagai berikut:
1. Cari nilai 𝒄𝟎 dengan menggunakan persamaan:
−1+ 5
𝒄𝟎 = 𝒂𝟎 + 𝟏 − 𝒓 𝒃𝟎 − 𝒂𝟎 atau 𝒄𝟎 = 𝑟𝒂𝟎 + 1 − 𝑟 𝒃𝟎 ;𝑟 =
2
2. Cari nilai 𝑑 dengan menggunakan persamaan:
−1+ 5
𝒅𝟎 = 𝒃𝟎 − 𝟏 − 𝒓 𝒃𝟎 − 𝒂𝟎 atau 𝑑 = (1 − 𝑟)𝒂𝟎 + 𝑟𝒃𝟎 ;𝑟 =
2
3. Cari nilai 𝑓(𝑐) dan 𝑓 𝑑
4. Jika 𝒇(𝒄) ≤ 𝒇(𝒅) maka nilai minimum terletak di interval 𝑎, 𝑑  update interval
𝑎𝑖 = 𝑎𝑖−1 ; 𝒄𝒊 = 𝒂𝒊 + 𝟏 − 𝒓 𝒃𝒊 − 𝒂𝒊 ; 𝑑𝑖 = 𝑐𝑖−1 ; 𝑏𝑖 = 𝑑𝑖−1 ; 𝑖 = 1,2, …
Jika 𝒇 𝒄 > 𝒇(𝒅) maka nilai minimum terletak di interval 𝑐, 𝑏  update interval
𝑎𝑖 = 𝑐𝑖−1 ; 𝒅𝒊 = 𝒃𝒊 − 𝟏 − 𝒓 𝒃𝒊 − 𝒂𝒊 ; 𝑐𝑖 = 𝑑𝑖−1 𝑏𝑖 = 𝑏𝑖−1 ; 𝑖 = 1,2, …
𝜀
ln(𝐿 )
0
5. Ulangi mulai dari langkah 3. Iterasi berhenti jika banyaknya iterasi 𝑘 > , dimana
ln(𝑟)
𝐿0 = 𝑎0 − 𝑏0 dan 𝜀 = error toleransi. Jika error toleransi tidak diketahui maka gunakan 𝜀 = 10−4
Contoh 1
Dengan menggunakan Golden Ratio Search, tentukan nilai minimum fungsi unimodal 𝑓 𝑥 =
𝑥 2 − sin(𝑥) pada interval [0,1]
Jawab:
10−4
ln( )
1−0
Banyaknya iterasi (k) > −1+ 5
= 19.139 ≈ 20 𝑖𝑡𝑒𝑟𝑎𝑠𝑖
ln( )
2
Iterasi 1:
𝑎0 = 0 , 𝑏0 = 1
−1 + 5
𝑐0 = 𝑎0 + 1 − 𝑟 𝑏0 − 𝑎0 =0+ 1− 1 − 0 = 0.38196
2
−1 + 5
𝑑0 = 𝑏0 − 1 − 𝑟 𝑏0 − 𝑎0 =1− 1− 1 − 0 = 0.61803
2

𝑓 𝑐0 = 𝑓 0.38196 = (0.38196)2 − sin 0.38196 = − 0.22685

𝑓 𝑑0 = 𝑓 0.61803 = (0.61803)2 − sin(0.61803) = − 0.19747

Karena 𝒇(𝑐0 ) ≤ 𝒇(𝑑0 ) maka nilai minimum terletak di interval 𝑎, 𝑑  0, 0.61803


Contoh 1 (lanjutan)
Iterasi 2
𝑎1 = 𝑎0 = 0 ; 𝑑1 = 𝑐0 = 0.38196; 𝑏1 = 𝑑0 = 0.61803
−1+ 5
𝑐1 = 𝑎1 + 1 − 𝑟 𝑏1 − 𝑎1 = 0 + 1 − 0.61803 − 0 = 0.23607
2

𝑓 𝑐1 = 𝑓 0.23607 = (0.23607)2 − sin 0.23607 = − 0.17815


𝑓 𝑑1 = 𝑓 𝑐0 = − 0.22685
Karena 𝒇 𝑐1 > 𝒇(𝑑1 ) maka nilai minimum terletak di interval 𝑐, 𝑏  0.23607, 0.61803
Iterasi 3
𝑎2 = 𝑐1 = 0.23607; 𝑐2 = 𝑑1 = 0.38196; 𝑏2 = 𝑏1 = 0.61803
−1 + 5
𝑑2 = 𝑏2 − 1 − 𝑟 𝑏2 − 𝑎2 = 0.61803 − 1 − 0.61803 − 0.23607 = 0.47214
2
𝑓 𝑐2 = 𝑓 𝑑1 = − 0.22685

𝑓 𝑑2 = 𝑓 0.47214 = (0.47214)2 − sin 0.47214 = − 0.23188

Karena 𝒇 𝑐2 > 𝒇(𝑑2 ) maka nilai minimum terletak di interval 𝑐, 𝑏  0.38196, 0.61803

Lanjutkan iterasi berikutnya……..


Deret Fibonacci

𝐹0 = 0
𝐹1 = 1

𝑭𝒏 = 𝑭𝒏−𝟏 + 𝑭𝒏−𝟐
Fibonacci Search
Misalkan 𝑓(𝑥) unimodal pada interval 𝑎, 𝑏 . Misalkan juga ada 𝑐, 𝑑 ∈ 𝐼 sehingga 𝑎 < 𝑐 < 𝑑 < 𝑏.
Langkah-langkah untuk mencari nilai minimum fungsi dengan menggunakan Fibonacci Search adalah sebagai berikut:
1. Tentukan 𝒏 yang memenuhi syarat:
𝒃𝟎 −𝒂𝟎
𝑭𝒏 > ; 𝜀 = error toleransi
𝜺
2. Cari nilai 𝑐 dengan menggunakan persamaan:
𝑭𝒏−𝒌−𝟏
𝒄𝒌 = 𝒂𝒌 + 𝟏 − 𝒃𝒌 − 𝒂 𝒌 k=0
𝑭𝒏−𝒌

3. Cari nilai 𝑑 dengan menggunakan persamaan:


𝑭𝒏−𝒌−𝟏
𝒅𝒌 = 𝒂𝒌 + 𝒃𝒌 − 𝒂 𝒌 k=0
𝑭𝒏−𝒌

4. Cari nilai 𝑓(𝑐) dan 𝑓 𝑑

5. Jika 𝑓(𝑐) ≤ 𝑓(𝑑) maka nilai minimum terletak di interval 𝑎, 𝑑  update interval
𝑭𝒏−𝒌−𝟏
𝑎𝑘 = 𝑎𝑘−1 ; 𝒄𝒌 = 𝒂𝒌 + 𝟏 − 𝒃𝒌 − 𝒂 𝒌 ; 𝑑𝑘 = 𝑐𝑘−1 ; 𝑏𝑘 = 𝑑𝑘−1 ; 𝑘 = 1,2,3, …
𝑭𝒏−𝒌

Jika 𝑓 𝑐 > 𝑓(𝑑) maka nilai minimum terletak di interval 𝑐, 𝑏


𝑭𝒏−𝒌−𝟏
𝑎𝑘 = 𝑐𝑘−1 ; 𝑐𝑘 = 𝑑𝑘−1 𝒅𝒌 = 𝒂𝒌 + 𝒃𝒌 − 𝒂 𝒌 𝑏𝑘 = 𝑏𝑘−1 ; 𝑘 = 0,1,2,3, …
𝑭𝒏−𝒌

Ulangi mulai dari langkah 4


Contoh 2
Dengan menggunakan Fibonacci Search, tentukan nilai minimum dari fungsi unimodal 𝑓 𝑥 = 𝑥 2 − sin(𝑥) pada
interval [0,1]
Jawab:
𝟏−𝟎
𝑭𝒏 > = 𝟏𝟎𝟎𝟎𝟎
10−4
Deret Fibonacci yang lebih besar dari 10000 adalah 𝑭𝟐𝟏 = 𝟏𝟎𝟗𝟒𝟔 , maka diambil 𝑛 = 21
Iterasi 1:
𝑎0 = 0 , 𝑏0 = 1
𝐹21−0−1 𝐹20 6765
𝑐0 = 𝑎0 + 1 − 𝑏0 − 𝑎0 = 𝑎0 + 1 − 𝑏0 − 𝑎0 =0+ 1− 1 − 0 = 0.38197
𝐹21−0 𝐹21 10946
𝐹21−0−1 𝐹20 6765
𝑑0 = 𝑎0 + 𝑏0 − 𝑎0 = 𝑎0 + 𝑏 − 𝑎0 = 0 + 1 − 0 = 0.61803
𝐹21−0 𝐹21 0 10946
𝑓 𝑐0 = 𝑓 0.38197 = (0.38197)2 − sin 0.38197 = − 0.22685
𝑓 𝑑0 = 𝑓 𝟎. 𝟔𝟏𝟖𝟎𝟑 = (𝟎. 𝟔𝟏𝟖𝟎𝟑)2 − sin 𝟎. 𝟔𝟏𝟖𝟎𝟑 = − 0.19747
Karena 𝒇(𝑐0 ) ≤ 𝒇(𝑑0 ) maka nilai minimum terletak di interval 𝑎, 𝑑  0, 0.61803
Contoh 2 (Lanjutan)
Iterasi 2
𝑎1 = 𝑎0 = 0 ; 𝑑1 = 𝑐0 = 0.38197; 𝑏1 = 𝑑0 = 0.61803
𝐹21−1−1 𝐹 4181
𝑐1 = 𝑎1 + 1 − 𝑏1 − 𝑎1 = 𝑎1 + 1 − 𝐹19 𝑏1 − 𝑎1 = 0 + 1 − 6765 0.61803 − 0 = 0.23607
𝐹21−1 20

𝑓 𝑐1 = 𝑓 0.23607 = (0.23607)2 − sin 0.23607 = − 0.17815

𝑓 𝑑1 = 𝑓 𝑐0 = − 0.22685
Karena 𝒇 𝑐1 > 𝒇(𝑑1 ) maka nilai minimum terletak di interval 𝑐, 𝑏  0.23607, 0.61803
Iterasi 3
𝑎2 = 𝑐1 = 0.23607; 𝑐2 = 𝑑1 = 0.38197; 𝑏2 = 𝑏1 = 0.61803
𝐹21−2−1 𝐹18 2584
𝑑2 = 𝑎 2 + 𝑏2 − 𝑎2 = 𝑎2 + 𝑏2 − 𝑎2 = 0.23607 + 0.61803 − 0.23607 = 0.47214
𝐹21−2 𝐹19 4181
𝑓 𝑐2 = 𝑓 𝑑1 = − 0.22685

𝑓 𝑑2 = 𝑓 0.47214 = (0.47214)2 − sin 0.47214 = − 0.23188

Karena 𝒇 𝑐2 > 𝒇(𝑑2 ) maka nilai minimum terletak di interval 𝑐, 𝑏  0.38196, 0.61803

Lanjutkan iterasi berikutnya……..

Anda mungkin juga menyukai