Numerical Computation Final Project
Anggota:
- Alhaura Rahmatunnisa Harsanto (5053241016)
- Berlian Yafi Kania Mu'awanah (5053241046)
- Zahra Fidela (5053241036)
- Annisa Zahra Fitria (5053241040)
- Azka Fauziyah (505324020)
Metode Newton-Raphson adalah metode numerik untuk mencari akar dari suatu fungsi ( f(x) ) dengan menggunakan iterasi:
[ x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} ]
Dimana:
- ( f(x) ) adalah fungsi yang ingin dicari akarnya,
- ( f'(x) ) adalah turunan dari fungsi tersebut,
- ( x_n ) adalah nilai pendekatan saat ini,
- ( x_{n+1} ) adalah pendekatan selanjutnya.
Metode ini membutuhkan turunan pertama dari fungsi, dan sangat efisien jika nilai awal cukup dekat dengan akar yang sebenarnya.
Fungsi yang digunakan dalam program ini adalah:
[ f(x) = x^3 + 6x^2 - 19x - 84 ]
Dengan turunannya:
[ f'(x) = 3x^2 + 12x - 19 ]
Tujuan dari program ini adalah mencari nilai ( x ) sedemikian sehingga ( f(x) = 0 ).
f = lambda x: x**3 + 6*x**2 - 19*x - 84
df = lambda x: 3*x**2 + 12*x - 19
xs = 3 # Akar sebenarnya, digunakan untuk menghitung true error
x0 = 1 # Tebakan awal
def newton_raphson(x):
return x - f(x)/df(x)
def error_true(xs, x_current):
return abs((xs - x_current) / xs) * 100
def error_approximate(x_current, x_prev):
return abs((x_current - x_prev) / x_current) * 100
for i in range(1, 4):
x1 = newton_raphson(x0)
Et = error_true(xs, x1)
Ea = error_approximate(x1, x0) if i > 1 else None
print(f"iteration {i:02d} :")
print(f"x_i: {x1:.2f}")
print(f"ET (Error True): {Et:.2f}%")
if Ea is not None:
print(f"EA (Error Approx): {Ea:.2f}%")
else:
print("EA (Error Approx): -") # iterasi pertama tidak memiliki error approximate
print()
x0 = x1