Anda di halaman 1dari 11

4 Maret 2022

Penyelesaian Akar Persamaan Tak Linear Dengan


Menggunakan Metode Terbuka: Newton-Raphson, Secant,
Dan Modified Secant
Rio Agustian Gilang Fernando, 4211420004, Fisika
FMIPA Universitas Negeri Semarang

1. Persoalan

Sebuah benda jatuh dari sebuah ketinggian tertentu. Jika setelah 4 detik benda jatuh besar
kecepatannya 36 m/s, dan koefisien gesekan benda di udara adalah 0,25 kg/m, dengan
menggunakan metode: Newton-Raphson, secant, dan modified secant ( )
estimasikan massa dari benda tersebut. (Gunakan nilai percepatan gravitasi bumi 9,81 m/s2).

( ) √ √ ( )

2. Metode Grafik

Agar dapat diperkirakan kebenaran program yang dibuat, fungsi ( ) dirajah


pada bidang kartesius. Dengan demikian, dapat diperkirakan nilai dari akar
persamaan ( ). Dari hasil merajah, dapat dilihat bahwa akar dari persamaan
( ) terletak di antara rentang .
Gambar 1: Grafik fungsi ( ) untuk .

3. Metode Newton-Raphson

Algoritma metode Newton-Raphson adalah sebagai berikut.

1. Modelkan fungsi ( ) dan tentukan ( ).


2. Pilih nilai x awal yang diestimasikan sebagai akar dari ( ) . Tentukan batas
toleransi approximate percent relative error (APRE)-nya, .
3. Iterasi hingga APRE<=
 Update
( )
 Update ( )

 Hitung | | .

4. Nilai sebagai akar dari persamaan ( ).

3.1. Penentuan Turunan Pertama Fungsi

Sebelum masuk pada implementasi kode, akan ditentukan terlebih dahulu nilai dari

( )
( )
Fungsi ( ) sebagai variabel terikat dari variabel bebas didefinisikan sebagai

( ) √ √ ( )

Misalkan, √ , √ , dan ( ) , maka fungsi ( ) dapat

dituliskan sebagai

( )

Sehingga, nilai dari ( )

( )

Dengan

( )
( ) ( )

( )( )

( )


( )




Dan

( )
(√ ) ( ) ( )( )

(√ ) ( )


(√ ) ( )


(√ )


(√ )

(√ ) √

(√ ) (√ )

Sehingga, nilai dari ( )

( )

( )
( √ )( √ ) (√ )( (√ ) (√ ))

( )
√ √ √ (√ ) (√ )

( )
√ √ √ √ (√ )
( )
√ √ (√ )

( )
√ √ √

Sehingga,

( ) √ √ √

Atau dapat ditulis dalam bentuk

( ) √ √ ( √ )

3.2. Metode Newton Raphson Dengan Python

Berikut adalah kode program Python untuk menyelesaikan persoalan yang sedang ditinjau.
Nilai yang digunakan adalah 0,1 % dan nilai istimasi awal yang dipakai adalah .

import numpy as np

# fungsi f(x)
def f(x):
g = 9.81 # m/s^2
c = 0.25 # kg/m
v = 36 # m/s
t = 4 # s
return np.sqrt(g*x/c)*np.tanh(np.sqrt(g*c/x)*t)-v

# fungsi df(x)/dx
def f1(x):
g = 9.81 # m/s^2
c = 0.25 # kg/m
v = 36 # m/s
t = 4 # s
n1 = 0.5*np.sqrt(g/(c*x))*np.tanh(np.sqrt(g*c/x)*t)
n2 = -(g*t/(2*x))*(1-(np.tanh(np.sqrt(g*c/x)*t))**(2))
return n1 + n2

xr = 100 # taksiran awal


ear = 0.1 # toleransi error (%)
i = 1 # iterasi ke-i
APRE = 100 # error (%)
max = 100 # batas iterasi maksimum

print("iter. \t xr \t\t error (%)")


while not (i > 100 or APRE <= ear):
xr_old = xr
xr = xr - f(xr)/f1(xr)
print("{0:d} \t {1:.8f} \t {2:.8f}".format(i,xr,APRE))
APRE = np.abs((xr-xr_old)/xr)*100
i = i + 1
print("\nAkar persamaan = ", xr)

Keluaran dari kode di atas ditunjukan pada Gambar 2.

Gambar 2: Keluaran kode program Python metode Newton-Raphson

3.3. Metode Newton-Raphson Dengan Excel

Pada perhitungan berikut nilai-nilai yang dipakai adalah: awal = 100 dan .
4. Metode Secant

Pada pencarian akar dengan menggunakan metode Newton-Raphson terdapat masalah yang
mungkin muncul, yaitu menentukan turunan fungsi ( ). Pada persoalan yang sedang
ditinjau, dapat dilihat pada bagian 3.1. bahwa penentuan nilai dari ( ) memerlukan
langkah yang cukup panjang dan memerlukan usaha yang lebih. Untuk mengatasinya
digunakan metode secant. Algoritma metode secant dalam menentukan akar persamaan
adalah sebagai berikut.

1. Modelkan fungsi ( ) yang akan dicari akarnya.


2. Pilih dua nilai tebakan awal, yaitu dan . Tentukan batas toleransi approximate
percent relative error (APRE)-nya, .
3. Iterasi hingga APRE<=
 Update
( )( )
 Hitung ( ) ( )

 Hitung | | .

3.1.Nilai sebagai akar dari persamaan ( ).

4.1. Metode Secant Dengan Python

Berikut adalah kode program Python untuk menyelesaikan persoalan yang sedang ditinjau.
Nilai yang digunakan adalah 0,1 %, dua nilai tebakan awal yaitu 100 dan 200.

import numpy as np

# fungsi f(x)
def f(x):
g = 9.81 # m/s^2
c = 0.25 # kg/m
v = 36 # m/s
t = 4 # s
return np.sqrt(g*x/c)*np.tanh(np.sqrt(g*c/x)*t)-v

x0 = 100 # taksiran awal


x1 = 200 # taksiran awal
ear = 0.1 # toleransi error (%)
i = 1 # iterasi ke-i
APRE = 100 # error (%)
max = 50 # batas iterasi maksimum
print("iter. \t xr \t\t error (%)")
while not (i > 100 or APRE <= ear):
x2 = x1 - (f(x1)*(x0-x1))/(f(x0)-f(x1))
print("{0:d} \t {1:.8f} \t {2:.8f}".format(i,x2,APRE))
APRE = np.abs((x2-x1)/x1)*100
x0 = x1
x1 = x2
i = i + 1
print("\nAkar persamaan = ", x2)

Keluaran dari kode di atas ditunjukan pada Gambar 3.

Gambar 3: Keluaran kode program Python metode secant

4. 2. Metode Secant Dengan Excel

Pada perhitungan berikut nilai-nilai yang dipakai adalah: , , dan


.
5. Metode Modified Secant

Tampak bahwa pada metode secant diperlukan dua nilai tebakan awal. Agar tidak perlu
menggunakan dua nilai terbakan awal, maka digunakan perturbasi fraksional (fractional
perturbation) untuk mengestimasi nilai dari ( ). Metode inilah yang disebut dengan
metode modified secant atau metode secant termodifikasi. Algoritma metode modified secant
adalah sebagai berikut.

1. Modelkan fungsi ( ) yang akan dicari akarnya.


2. Pilih nilai x awal yang diestimasikan sebagai akar dari ( ) . Tentukan batas
toleransi approximate percent relative error (APRE)-nya, , dan fraksi pertubasi
kecil ( ).
3. Iterasi hingga APRE<=
 Update
( )
 Hitung ( ) ( )

 Hitung | | .

4. Nilai sebagai akar dari persamaan ( ).

5.1. Metode Modified Secant Dengan Python

Berikut adalah kode program Python untuk menyelesaikan persoalan yang sedang ditinjau.
Nilai yang digunakan adalah 0,1 %, nilai tebakan awal yaitu 100, dan pertubasi fraksional
kecil yang digunakan adalah .

import numpy as np

# fungsi f(x)
def f(x):
g = 9.81 # m/s^2
c = 0.25 # kg/m
v = 36 # m/s
t = 4 # s
return np.sqrt(g*x/c)*np.tanh(np.sqrt(g*c/x)*t)-v

xr = 100 # taksiran awal


ear = 0.1 # toleransi error (%)
i = 1 # iterasi ke-i
APRE = 100 # error (%)
max = 50 # batas iterasi maksimum
d = 1e-3 # pertubasi fraksional

print("iter. \t xr \t\t error (%)")


while not (i > 100 or APRE <= ear):
xr_old = xr
xr = xr - d*f(xr) / (f(xr+d)-f(xr))
APRE = np.abs((xr-xr_old)/xr)*100
print("{0:d} \t {1:.8f} \t {2:.8f}".format(i,xr,APRE))
i = i + 1
print("\nAkar persamaan = ", x2)

Keluaran dari kode di atas ditunjukan pada Gambar 4.

Gambar 4: Keluaran kode program Python metode modified secant

5. 2. Metode Modified Secant Dengan Excel

Pada perhitungan berikut nilai-nilai yang dipakai adalah: awal = 100, , dan
.
Lampiran

1. Kode program Python dapat diakses pada link berikut:


https://colab.research.google.com/drive/1RkHqXuHPD_qAGhELcYkmLfD3UzUhpw
WF?usp=sharing
2. File Excel dapat diakses pada link berikut:
https://colab.research.google.com/drive/1RkHqXuHPD_qAGhELcYkmLfD3UzUhpw
WF?usp=sharing

Anda mungkin juga menyukai