8 Maret 2019
Newton Rhapson
Metode ini merupakan pendekatan menggunakan satu titik awal dan mendekatinya
dengan memperhatikan gradien garis pada titik tersebut (Sidiq, n.d.).
Contoh:
x – ex = 0 -> diubah menjadi: x = ex atau g(x) = ex
HASIL DAN PEMBAHASAN
Newton-Rhapson
Modul:
def f(x):
y = x**3 + x**2 + x + 1 #mendefinisikan fungsi
return (y)
def g(x):
y = 3*x**2 + 2*x +1 #mendefinisikan turunan fungsi
return (y)
Kode:
from fungsicontoh import f, g #memanggil modul fungsi contoh dengan fungsi f dan g
a = float(input('Masukkan nilai perkiraan akar =')) #menginput variabel a sebagai tipe
float
b = float(input('Masukkan nilai toleransi error =')) #menginput variabel b sebagai tipe
float
d = float(input('Masukkan iterasi maksimum=')) #menginput variabel d sebagai tipe
float
f(a) #menghitung nilai fungsi f dengan variabel a
g (a) #menghitung nilai fungsi g dengan variabel a
c = f(a) #mendefinisikan fungsi f dengan variabel a sebagai c
e = g(a) #menghitung nilai fungsi g dengan variabel a sebagai e
i = 1 #memulai iterasi yang didefinisikan dengan variabel i dimulai dari 1
error = abs(c) #mendefinisikan nilai absolut dari variabel c sebagai error
while i <= d and error > b : #dua kondisi yaitu nilai i kurang dari atau sama dengan
variabel d dan nilai variabel error lebih dari b harus terpenuhi sehingga
a2 = a - (c/e) #mendefinisikan persamaan yang digunakan pemrosesan dengan variabel
a2
print ('nilai x(',i,')=',a2) #menampilkan hasil pemrosesan a2
c = f(a2) #mendefinisikan ulang fungsi f dengan variabel a2 sebagai c
e = g(a2) #mendefinisikan ulang fungsi g dengan variabel a2 sebagai e
error = abs(c) #mendefinisikan nilai absolut c sebagai error
print('error =', error) #menampilkan nilai variabel error
a = a2 #mendefinisikan ulang a2 sebagai a, sehingga pada pengulangan berikutnya
dikenal sebagai variabel a
i = i+1 #setiap proses berakhir, nilai i ditambah 1.
Hasil:
nilai x( 1 )= 1.4747474747474747
error = 7.857026545425689
nilai x( 2 )= 0.72461141805658
error = 2.630138833439984
nilai x( 3 )= 0.07106464518474176
error = 1.076473718499501
nilai x( 4 )= -0.8591111685293138
error = 0.24487493307667485
nilai x( 5 )= -1.0227983145352275
error = 0.04664800508542766
nilai x( 6 )= -1.000508051341226
error = 0.0010166190459186542
nilai x( 7 )= -1.0000002579850624
error = 5.159702578527714e-07
nilai x( 8 )= -1.0000000000000666
error = 1.3322676295501878e-13
nilai x( 9 )= -1.0
error = 0.0
Iterasi Sederhana
Modul:
def f(x):
y = x**2 - 2*x - 3 #mendefinisikan fungsi f sebagai variabel y
return (y)
def g(x):
y = 3/(x-2) #mendefinisikan fungsi g sebagai variabel y, sehingga fungsi ini dipanggil
maka nilai yang dikeluarkan adalah variabel y
return (y)
Kode:
from fungsiiterasi import f,g #memanggil fungsi f dan g dari modul fungsiiterasi
a = float(input('Masukkan nilai perkiraan akar =')) #menginput nilai perkiraan akar
sebagai tipe float dalam variabel a
b = float(input('Masukkan nilai toleransi error =')) #menginput nilai error sebagai
tipe float dalam variabel b
d = f(a) #mendefinisikan fungsi f dalam variabel a sebagai d
e = abs (d) #mendefinisikan nilai absolut d sebagai e
while e > b: #apabila kondisi e lebih besar dari b, maka pengulangan akan terus terjadi
k = g(a) #mendefinisikan fungsi g dalam variabel a sebagai k
e = abs (f(k)) #mendefinisikan e dengan nilai baru yaitu nilai absolut fungsi f dalam
variabel k
print (e, k) #menampilkan variabel e dan k setiap pengulangan
a = k #mendefinisikan variabel k sebagai a
Hasil:
3.96 1.2
18.5625 -3.75
1.6843100189035918 -0.5217391304347826
0.794589774078478 -1.1896551724137931
0.2343024105186271 -0.9405405405405405
0.08129122512975773 -1.0202205882352942
0.026735456013431413 -0.9933049300060863
0.00895172905598951 -1.0022366815778772
0.002979465285751992 -0.9992549949204199
0.0009936485494494995 -1.0002483967121307
0.0003311613412870784 -0.9999172079510473
0.00011039320679806508 -1.0000275981112856
3.6797058576620856e-05 -0.9999908007141991
1.2265761416330179e-05 -1.0000030664380033
4.088578779981589e-06 -0.9999989778550438
1.3628605222137935e-06 -1.0000003407151015
4.5428673756120475e-07 -0.9999998864283124
1.5142892406672104e-07 -1.0000000378572307
5.0476307134061926e-08 -0.9999999873809232
1.6825436155443185e-08 -1.000000004206359
5.608478570451325e-09 -0.9999999985978804
1.869493004846845e-09 -1.0000000004673733
6.231641869192117e-10 -0.999999999844209
2.077209515505274e-10 -1.0000000000519302
6.924016915377251e-11 -0.99999999998269
2.3080204414327454e-11 -1.00000000000577
7.693401471442485e-12 -0.9999999999980766
2.5641710976742615e-12 -1.000000000000641
8.548717289613705e-13 -0.9999999999997863
2.851052727237402e-13 -1.0000000000000713
9.459100169806334e-14 -0.9999999999999764
3.108624468950438e-14 -1.0000000000000078
1.0658141036401503e-14 -0.9999999999999973
3.552713678800501e-15 -1.0000000000000009
1.3322676295501878e-15 -0.9999999999999997
8.881784197001252e-16 -1.0000000000000002
0.0 -1.0
TUGAS
Newton-Rhapson
Modul:
def f(x): #mendefinisikan fungsi f dengan variabel x
y = 0.0039*x**3 - 0.78*x**2 + 39.9*x - 467
return (y)
def g(x): #mendefinisikan fungsi g dengan variabel x
y = 0.0117*x**2 - 1.56*x + 39.9
return (y)
Kode:
Hasil:
Sehingga, umur dari subjek dengan SOS 3850 m/s adalah 56.57 tahun
KESIMPULAN
𝑓 (xi)
Metode Newthon Rhapson mencari akar persamaannya dengan prinsip Xi+1 = xi - ,
𝑓′(xi)
sedangkan Iterasi Sederhana mencari akar persamaan dengan adanya persamaan g(x) dari f(x)
yang ditunjukkan dengan x = g(x).
DAFTAR PUSTAKA
Sidiq, M. (n.d.). Metode Numerik. [ebook] Semarang: Universitas Dian Nuswantoro, pp.3-5, 14-21. Diunduh
di: http://dinus.ac.id/repository/docs/ajar/13-METODE_NUMERIK.pdf [Diakses pada 4 Mar.
2019].
Anon, (n.d.). The Newto-Raphson Method. [ebook] Vancouver: The University of British Columbia:
Mathematics Department. Diunduh di:
http://www.math.ubc.ca/~anstee/math104/newtonmethod.pdf [Diakses pada 7 Mar. 2019].