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.
𝑥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)
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)
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
def F(x) :
return np.array([x[0]**2 + x[1]**2 -1, np.sin(x[0]) - x[1]])
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