Anda di halaman 1dari 8

PRAKTIKUM KOMPUTASI BIOMEDIS

NEWTON RHAPSON DAN ITERASI SEDERHANA

8 Maret 2019

Dosen Pembimbing : Endah Purwanti S.Si, MT.


Disusun Oleh : Evangelina Tessia Pricilla
NIM : 081611733026

PROGRAM STUDI S1-TEKNOBIOMEDIK


DEPARTEMEN FISIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS AIRLANGGA
DASAR TEORI
Praktikum kali ini mempelajari metode Newton Rhapson dan Iterasi Sederhana. Keduanya
merupakan penyelesaian persamaan non linier dengan metode terbuka.

Newton Rhapson

Metode ini merupakan pendekatan menggunakan satu titik awal dan mendekatinya
dengan memperhatikan gradien garis pada titik tersebut (Sidiq, n.d.).

Berdasarkan The University of British Columbia (n.d.), persamaan gradien untuk


mendapatkan nilai akar ditunjukkan sebagai berikut:

Adapun tahap-tahap Newton Rhapson dijelaskan sebagai berikut (Sidiq, n.d.):


a. Mendefinisikan fungsi f(x) dan f’(x).
b. Menentukan nilai pendekatan awal (x0), toleransi error (e), dan iterasi
maksimum (n).
c. Mengondisikan pengulangan dengan syarat kondisi I = 1 s/d atau |f(xi)| > e
d. Menghitung f(xi) dan f’(xi)
𝑓 (xi)
Xi+1 = xi -
𝑓′(xi)
e. Akar persamaan tersebut adalah nilai xi terakhir yang dinilai.
Iterasi Sederhana
Metode iterasi sederhana merupakan metode yang memisahkan x dengan sebagian
x lain (x = g(x)). Metode iterasi sederhana ini menggunakan satu nilai tebakan awal dan
batasan error tertentu. Hasil iterasi sederhana tidak selalu konvergen—bisa jadi, divergen.

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:

Masukkan nilai perkiraan akar = 4.5

Masukkan nilai toleransi error = 0

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:

from fungsix import f, g #memanggil fungsi f dan g dari modul fungsix


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 toleransi error
sebagai tipe float dalam variabel b
d = float(input('Masukkan iterasi maksimum=')) #menginput nilai iterasi maksimum
sebagai tipe float dalam variabel d
f(a) #memanggil fungsi f dengan variabel a
g (a) #memanggil fungsi g dengan variabel a
c = f(a) #mendefinisikan fungsi f dengan variabel a sebagai c
e = g(a) #mendefinisikan fungsi g dengan variabel a sebagai e
i = 1 #menginisiasi nilai i dengan 1
error = abs(c) #mendefinisikan nilai absolut c sebagai error
while i <= d and error > b : #terjadi pengulangan operasi penghitungan apabila i
kurang dari sama dengan d dan error lebih dari b
a2 = a - (c/e) #mendefinisikan pengoperasian penghitungan akar dengan
didefinisikan sebagai variabel a2
print ('nilai x(',i,')=',a2) #menunjukkan hasil penghitungan a2
c = f(a2) #mendefinisikan fungsi f dalam variabel a2 sebagai c
e = g(a2) #mendefinisikan fungsi g dalam variabel a2 sebagai e
error = abs(c) #mendefinisikan nilai absolut c sebagai error
print('error =', error) #menunjukkan nilai error dari hasil setiap pengulangan
a = a2 #Mendefinisikan a2 sebagai a untuk mendapat pembaruan nilai a setiap
pengulangan
i = i+1 #penambahan nilai i setiap selesai iterasi untuk menghentikan pengulangan
pada batas iterasi tertentu

Hasil:

Masukkan nilai perkiraan akar = 45


Masukkan nilai toleransi error = 0
Masukkan iterasi maksimum= 100
nilai x( 1 )= 60.798335225122955
error = 47.89244999910579
nilai x( 2 )= 56.703942781326546
error = 1.4187014148624257
nilai x( 3 )= 56.574247242475344
error = 0.0019692212545123766
nilai x( 4 )= 56.574066717007355
error = 3.848072083201259e-09
nilai x( 5 )= 56.574066716654585
error = 2.2737367544323206e-13
nilai x( 6 )= 56.57406671665456
error = 4.547473508864641e-13
nilai x( 7 )= 56.574066716654606
error = 0.0

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].

Anda mungkin juga menyukai