Anda di halaman 1dari 4

Tugas Fisika Komputasi Wardah Amalia (17/418546/PPA/05330)

NEWTON-RAPHSON 2 DIMENSI

Diberikan 2 buah fungsi:


f (x, y) = x3 − xey − 2 (1)
g(x, y) = x2 y − xcos(y) − 3y (2)
Buatlah kaitan rekursi metode Newton-Raphson beserta algoritma pemrograman untuk mencari akar x
dan y!

A. Pendahuluan
Salah satu metode yang dapat digunakan untuk pencarian akar-akar dari persamaan adalah metode
Newton-Raphson. Dalam Fisika, metode pencarian akar dapat digunakan untuk menentukan nilai yang
paling optimum (minimum ataupun maksimum) dari solusi fisis yang menggambarkan suatu sistem.
Untuk kasus 1 dimensi (persamaan dengan 1 variabel), kaitan rekursi pada metode Newton-Raphson
dapat dituliskan sebagai:
f (xi )
xi+1 = xi − 0 (3)
f (xi )
dengan f 0 (x) adalah turunan dari f (x) terhadap x, dan f (x) adalah fungsi yang akan dicari akarnya.
Persamaan (3) dapat lebih diperumum lagi untuk kasus n-dimensi. Dengan memuat matriks Jacobi
[J] yang mewakili turunan f 0 (x) dalam kasus 1-dimensi, maka untuk kasus 2-dimensi persamaan (3)
dapat ditulis kembali sebagai:
     
xi+1 xi −1 f (xi , yi )
= − J(xi , yi ) (4)
yi+1 yi g(xi , yi )

dimana J(xi , yi ) adalah:

∂ ∂
 
f (xi , yi ) f (xi , yi )
 ∂x ∂y 
J(xi , yi ) =  (5)
 

 ∂ ∂ 
g(xi , yi ) g(xi , yi )
∂x ∂y

B. Algoritma Penyelesaian
Dengan menggunakan persamaan (4), maka akar-akar persamaan (1) dan (2) dapat dicari dengan meng-
gunakan algoritma sebagai berikut:
1 Memasukkan nilai tebakan awal (x0 dan y0 ).
2 Membuat matriks fungsi ([f (x0 , y0 ), g(x0 , y0 )]).

3 Membuat matriks Jacobian [J].


4 Membuat kaitan rekursi seperti pada persamaan (4), sehingga didapatkan nilai x1 dan y1 .
5 Lakukan iterasi dengan menggunakan xi = xi+1 dan yi = yi+1 sampai dengan nilai |xi+1 − xi | dan
|yi+1 − yi | lebih kecil atau sama dengan toleransi yang ditentukan.

Page 1 of 4
Tugas Fisika Komputasi Wardah Amalia (17/418546/PPA/05330)

C. Implementasi Algoritma menggunakan Python


import numpy as np
from math import *

#deklarasi x0
x0=np.array([−5.0, 1.0])

#Matriks Fungsi
def function(x):
return np.array([x[0]**3.−x[0]*exp(x[1])−2.0,
(x[0]**2.)*x[1]−(x[0])*cos(x[1]*pi/180)−3.*x[1]])

#Matriks Jacobian
def Jacobian(x):
return np.array([[3.*x[0]**2.−exp(x[1]), −(x[0])*exp(x[1])],
[2.*x[0]*x[1]−cos(x[1]*pi/180), x[0]**2.+x[0]*sin(x[1]*pi/180)−3.0]])

it=0
#Fungsi Newton−Raphson
def WardahNR(x0, f, Jac, tol=1.E−5, max it=100):
for it in range (max it):
MatrixFunction=f(x0)
J=Jacobian(x0)
xnew=x0−np.linalg.solve(J,MatrixFunction)
print ("Iteration{0}: [x, y]= {1}".format(it, xnew))

while np.sqrt(np.linalg.norm(xnew−x0)) >tol:


newF=f(xnew)
newJ=Jacobian(xnew)
x0=xnew
xnew=x0−np.linalg.solve(newJ,newF)
it= it+1
print ("Iteration{0}: [x, y]= {1}".format(it, xnew))
return xnew
while np.sqrt(np.linalg.norm(xnew−x0)) <=tol:
break
x0=xnew

x final= WardahNR(x0, function, Jacobian, 1.E−5)


print "value of x, y=", x final

D. Hasil dan Pembahasan


Untuk memvalidasi algoritma yang telah dibuat, maka algoritma ini diujikan dulu untuk mencari
akar-akar dari ke-2 persamaan sederhana berikut:

f (x, y) = x − 2y − 3 (6)

g(x, y) = 2x + 2y − 6 (7)
Dengan memasukkan fungsi tersebut dalam algoritma yang telah dibuat, didapatkan output seperti
pada gambar (1). Jika diselesaikan secara analitik, maka dengan mudah akan didapatkan akar-akar
persamaan (x, y) dari fungsi (6) dan (7) adalah (3, 0). Dapat dilihat bahwa nilai ouput yang dihasilkan
menggunakan algoritma yang telah dibuat sesuai dengan hasil analitiknya.
Selanjutnya algoritma digunakan untuk menyelesaikan persoalan yang diberikan. Dengan menggu-
nakan nilai tebakan awal (-1, 1), (-5,1), (-7, 7) dihasilkan output seperti pada gambar (2), (3), dan (4)
berturut-turut.
Dapat dilihat bahwa nilai tebakan awal mempengaruhi kecepatan konvergensi dari iterasi yang dila-
kukan. Semakin dekat nilai tebakan awal dengan nilai (x, y) sebenarnya, maka akan semakin cepat nilai
output-nya menuju konvergen.

Page 2 of 4
Tugas Fisika Komputasi Wardah Amalia (17/418546/PPA/05330)

Gambar 1: Hasil capture untuk f (x, y) = x − 2y − 3 dan g(x, y) = 2x + 2y − 6

Gambar 2: Hasil capture untuk f (x, y) = x3 − xey − 2 dan g(x, y) = x2 y − xcos(y) − 3y; tebakan awal
(−1, 1); dan toleransi= 1.e − 5

Page 3 of 4
Tugas Fisika Komputasi Wardah Amalia (17/418546/PPA/05330)

Gambar 3: Hasil capture untuk f (x, y) = x3 − xey − 2 dan g(x, y) = x2 y − xcos(y) − 3y; tebakan awal
(−5, 1); dan toleransi= 1.e − 5

Gambar 4: Hasil capture untuk f (x, y) = x3 − xey − 2 dan g(x, y) = x2 y − xcos(y) − 3y; tebakan awal
(−7, 7); dan toleransi= 1.e − 5

Page 4 of 4

Anda mungkin juga menyukai