Anda di halaman 1dari 6

TUGAS 6

Metode Optimisasi Lanjut


Menentukan Solusi Optimum Sistem Persamaan Nonlinear
Menggunakan Metode Homtopy
Afdol Zikri
20121021
December 15, 2023

1 Pendahuluan
Metode Humotopy merupakan suatu metode untuk menyelesaikan sistem persamaan nonlinear. Pada
metode Humotopy ini dalam penyelesaiannya melakukan pendekatan suuatu fungsi yang sederhana dan
beriterasi menuju ke fungsi sebenarnya. Misalkan akan dicari solusi dari persamaan 𝐹 (𝑥) = 0, kemudan
akan dikonstruksi suatu fungsi tersebut dengan fungsi humotopy yang berdasarkan pada penambahan
parameter 𝜆 terhadap fungsi 𝐹 (𝑥), dengan 𝐹 (𝑥) didefinisikan sebagai berikut
𝐻 (𝑥, 𝜆) = 𝜆𝐹 (𝑥) + (1 − 𝜆)(𝑥 − 𝑎)
dimana 𝜆 adalah scalar yang merupakan parameter humotopy. pada laporan dalam meneyelsaikan solusi
dari 𝐹 (𝑥) = 0 akan digunkan fungsi Newton Humotopy yang didefinisikan sebagai berikut
𝐻 (𝑥, 𝜆) = 𝜆𝐹 (𝑥) + (1 − 𝜆)(𝑥 − 𝑎) (1)
untuk suatu vektor 𝑥0 . Perhatikan bahwa ketika 𝜆 = 0 maka 𝐻 (𝑥, 𝜆) = 0 pada saat 𝑥 = 𝑥0 . Selanjutnya
untuk 𝜆 = 1, diperoleh 𝐻 (𝑥, 𝜆) = 𝐹 (𝑥), dengan demikan, permasalahan dalam mencari akar pada
persamaan (1) ekuivalen dengan mencari solusi atu akar dari persamaan 𝐹 (𝑥) = 0, dengan 𝜆 akan bergerak
dari 0 hingga 1. Tebakan awal apada sistem adalah (𝑥 0 , 0) dan persamaan akan diperbaharui dengan
mengubah nilai 𝜆 sebesar △𝜆. Dalam meneyelesaikan persamaan (1), akan digunakan corrector-predictor.
0 dengan menggunakan aproksimasi dari garis singgung 𝐻 (𝑥)
Peratama, akan ditenntukan prediktor 𝑥𝑖+1
pada 𝑥𝑖 , dengan
0 𝜕𝑥1
𝑥𝑖+1 = 𝑥𝑖 + △𝜆
𝜕𝜆
dimana
𝜕𝑥𝑖
= 𝐽 (𝑥𝑖 , 𝜆𝑖 )(− 𝑓 (𝑥 0 ))
𝜕𝜆
dengan 𝐽 merupakan jacobian dari 𝐻 dan 𝑖 adalah indeks iterasi. Selanjtnya dengan menggunakan
persamaan garis singggung dari euler prediction, yaitu
  −1  
𝜕𝑥 𝜕𝐻 𝜕𝐻
=−
𝜕𝜆 𝜕𝑥 𝜕𝜆
Selanjutnya adalah nengevaluasi hasil prediksi 𝑥𝑖0 dengan menggunakan iterasi Newton Raphson, yaitu
𝐽 (𝑥𝑖𝑡 , 𝜆𝑖 ) △ 𝑥𝑖𝑡 = −𝐻 (𝑥𝑖𝑡 , 𝜆𝑖 )
𝑥𝑖𝑡+1 = 𝑥𝑖𝑡 + △𝑥𝑖𝑡
dengan 𝑡 adaalah indeks iterasi.

1
2 Algoritma
Berikut ini diberikan algrotima dalam mencari Sulosi dari fungsi yang diberikan dengan menggunakan
metode Humotopy.

Algorithm 1 Algoritma Humotopy


Requaire 𝐹 (𝑥), 𝑥0 , △𝜆, 𝜀
Converge := 𝐹𝑎𝑙𝑠𝑒
△𝜆 ← 0.1
while Not converge : do
𝜆←0
while |1 − 𝜆| > 𝜖 do
𝜆 ← 𝜆 + △𝜆
𝐽 ← 𝐽 (𝑥 0 , 𝜆)
𝑑𝑥 ← −𝐽 −1 (𝑥, 𝜆) (𝐻 (𝑥 0 , 𝜆) − 𝐻 (𝑥 0 , 𝜆 − △𝜆))/△𝜆
𝑥 𝑝 ← 𝑥 0 + △𝜆
𝐽𝑛𝑒𝑤 ← 𝐽 (𝑥 𝑝 , 𝜆)
−1 (𝑥 , 𝜆) 𝐻 (𝑥 , 𝜆)
𝑥 = 𝑥 𝑝 − 𝐽𝑛𝑒𝑤 𝑝 𝑝
end while
if ∥𝐻 (𝑥, 1)∥ > 𝜀 then
△𝜆 = △𝜆/2
else
converge := 𝑇𝑟𝑢𝑒
end if
end while

3 Hasil dan Pembahasan


Pada laporan ini akan dicari nilai 𝑥 dan 𝑦 yang merupakan solusi dari sistem perssmaan berikut

𝑥2 + 𝑦2 − 1 = 1
sin(𝑥) − 𝑦 = 0

Selanjutnya misalkan

𝐹 := [𝑥 2 + 𝑦 2 − 1, sin(𝑥) − 𝑦]

Pada laporan akan digunakan dua nilai awal yaitu (−0.7390853, −0.67361227) dan (−1, 2), dengan nilai
parameter awal 𝜆 = 0. Pertama, dilakukan pengujian dengan titik awal 𝑥0 (4, 6) dan nilai awal △𝜆 = 0.5.
Setelah menjalan program dengan algoritma 1 maka diperoleh hasil sebagai berikut

𝑥0 = (−0.7390853, −0.67361227)
△𝜆 = 0.25
𝑥∗ = (−0.7390852954821838, −0.6736122683572173)
𝐹 (𝑥 ∗ ) = (5.62079343𝑒 − 07, 1.19244867𝑒 − 07)

2
Selanjutnya gambar (3) merupakan hasil visualisai dari homotopy dalam menemukan solusi optimum
dengan nilai awal (−0.7390853, −0.67361227)

Figure 1: Aproksimasi Solusi dengan nilai awal (−0.7390853, −0.67361227)

Figure 2: Zero path 𝐻 (𝑥, 𝜆)

3
Selanjuntnya dilakukan pengujian dengan titik awal (−1, 2) dan nilai awal △𝜆 = 0.5. Setelah menjalan
program dengan algoritma 1 maka diperoleh hasil sebagai berikut

𝑥0 = (−1, 2)
△𝜆 = 0.25
𝑥∗ = (−0.7390852954821838, −0.6736122683572173)
𝐹 (𝑥 ∗ ) = (5.62079343𝑒 − 07, 1.19244867𝑒 − 07)

Selanjutnya gambar (3) merupakan hasil visualisai dari homotopy dalam menemukan solusi optimum
dengan nilai awal (−1, 2)

Figure 3: Aproksimasi Solusi dengan nilai awal (−1, 20.67361227)

Figure 4: Zero path 𝐻 (𝑥, 𝜆)

4
4 Kesimpulan
Dari hasil dan pembahasan, diberikan dua nilai awal yaitu (−0.7390853, −0.67361227) dan (−1, 2)
dengan △𝜆 = 0.025, dengan menggunakan metode Homtopy diperoleh solusi optimum dari fungsi yang
diberikan, konvergen terhadap satu 𝑥 ∗ . Sehingga diperoleh solusi dari persamaan yang diberikan yaitu

𝑥 ∗ = (−0.7390852954821838, −0.6736122683572173)
𝐹 (𝑥 ∗ ) = (5.62079343𝑒 − 07, 1.19244867𝑒 − 07)

5
LAMPIRAN

Kode Pyhton Metdode Homotpy

def F(x) :
return np.array([x[0]**2 + x[1]**2 -1, np.sin(x[0]) - x[1]])

def H(x, Lambda):


return Lambda*(F(x)) + (1-Lambda)*(x-Lambda)

def J(x, Lambda) :


return Lambda*np.array([[2*x[0],2*x[1]],[np.cos(x[0]),-1]])
+ (1-Lambda)*np.identity(2)

eps = 0.000001
converge = False
d_lambda = 0.1
x0=np.array([-1,2])
while not converge:
x_0 = x0
Lambda = 0
Lambd = [Lambda]
arr_x = [x_0]
while abs(Lambda-1)> 10E-6:
Lambda = Lambda + d_lambda
Jac = J(x_0, Lambda)
dx =-np.matmul(np.linalg.inv(Jac),(H(x_0,Lambda)
- H(x_0,Lambda-d_lambda))/d_lambda)
x_p = x_0 + d_lambda*dx
Jac_baru = J(x_p, Lambda)
x = x_p - np.matmul(np.linalg.inv(Jac_baru), H(x_p, Lambda))
x_0 = x
arr_x.append(x)
Lambd.append(Lambda)
if np.linalg.norm(H(x,1)) > eps :
d_lambda = d_lambda/2
else :
converge = True

Anda mungkin juga menyukai