Non Akolade: Newton Raphson

INISIALISASI

Untuk memulai mencari solusi akar persamaan dengan menggunakan Metode Newton Raphson, pastikan telah mengimport package akolade untuk metode Tabulation dan package fetterless yang menampung metode ini.

import computing.numeric as num
import computing.akolade as akolade
import computing.fetterless as fetterless

kemudian lakukan inisialisasi awal dengan menggunakan class Numerical.

misalnya rumus yang akan kita pakai adalah 

    

numeric = num.Numerical(
    low=6,
    high=9,
    step=0.1,
    formula="x^4 - 8.6*x^3 - 35.51*x^2 + 464*x - 998.46"
)

lakukan perhitungan numerik pada metode Tabulasi pada class Tabulation.
tabulation = akolade.Tabulation(numeric, title=False, precision=3)

dan yang terakhir kita panggil class NewtonRaphson pada fetterless dan simpan ke dalam variabel newRph.
newRph = fetterless.NewtonRaphson(tabulation, xn=7, iteration=3, eksak=7.3, title=True)


NewtonRaphson

Class ini akan melakukan perhitungan komputasi pada metode Newton Raphson dalam mencari nilai akar persamaan atau nilai eksak dari suatu rumus f(x) dengan bantuan dari rumus f'(x), g(x) dan g'(x) yang telah ditentukan dengan berpacu pada nilai Eksak hasil dari metode Tabulasi.


Parameter: tabulation

Sebuah parameter wajib untuk menggunakan metode Newton Raphson ini, parameter tabulation ini bisa didapat melalui perhitungan menggunakan metode Tabulasi.


Parameter: xn

Sebuah parameter opsional untuk menentukan nilai xn dalam perhitungan Newton Raphson dalam mencari nilai xn+1.

Jika kita tidak memasukan nilai xn, maka nilai xn akan diisi oleh points atau nilai terkecil dari 2 nilai yang berganti tanda pada Metode Tabulasi.

tabulation = akolade.Tabulation(numeric, 3, title=False)
print(tabulation.getPoints()) # [7.36, 7.369]

newRph = fetterless.NewtonRaphson(tabulation) # xn = 7.36


Parameter: iteration

Sebuah parameter opsional untuk menentukan berapa kali iterasi Newton Raphson akan dilakukan, default nilai dari parameter ini adalah 3 kali iterasi.



Parameter: eksak

Sebuah parameter opsional untuk memberikan nilai Eksak atau nilai akar yang sebenarnya, jika kita tidak memberikan nilai pada parameter ini, maka nilai eksak akan diisi oleh nilai eksak pada metode Tabulasi. 


Method: table( )

Sebuah method untuk mencetak tabel yang berbentuk DataFrame dari perhitungan Tabulasi.

Method ini sedikit berbeda dengan method table pada Tabulation karena pada method ini terdapat parameter didalamnya, yakni parameter untuk mengatur ketelitian setiap kolom pada saat di cetak.

Pada metode Newton Raphson ini terdapat 6 kolom dan setiap kolom mempunyai nilai default 6 decimal.
xn f(xn) f'(xn) xn+1 error f(xn+1)

Jadi kita dapat mengatur ketelitian decimal pada setiap kolom dengan memberikan parameter col1 - col6, atau jika kita ingin mengatur semuanya cukup mengisi parameter col=.

newRph = fetterless.NewtonRaphson(tabulation)
newRph.table()

newRph.table(col5=3)

newRph.table(col4=2)
========= NEWTON RAPHSON METHOD ========= 
         xn     f(xn)      f'(xn)      xn+1     error   f(xn+1)
0  7.360000 -1.355933  138.470144  7.369792  0.010751  0.009572
1  7.369792  0.009572  140.427142  7.369724  0.009826  0.000000
2  7.369724  0.000000  140.413478  7.369724  0.009826  0.000000

         xn     f(xn)      f'(xn)      xn+1  error   f(xn+1)
0  7.360000 -1.355933  138.470144  7.369792  0.011  0.009572
1  7.369792  0.009572  140.427142  7.369724  0.010  0.000000
2  7.369724  0.000000  140.413478  7.369724  0.010  0.000000

         xn     f(xn)      f'(xn)  xn+1     error   f(xn+1)
0  7.360000 -1.355933  138.470144  7.37  0.010751  0.009572
1  7.369792  0.009572  140.427142  7.37  0.009826  0.000000
2  7.369724  0.000000  140.413478  7.37  0.009826  0.000000

Method: getTable( )

Sebuah method untuk mendapatkan nilai dari hasil perhitungan Newton Raphson dalam bentuk List Python.

Method ini sedikit mirip seperti pada method table( ) sebelumnya yakni dapat mengatur ketelitian decimal setiap kolom, bedanya adalah pada method ini tidak dapat mengatur semua sekaligus kolomnya.

newRph = fetterless.NewtonRaphson(tabulation)
table = newRph.getTable()
print(table)
# [[7.36, -1.355933, 138.470144, 7.369792, 0.010751, 0.009572], 
# [7.369792, 0.009572, 140.427142, 7.369724, 0.009826, 0.0], 
# [7.369724, 0.0, 140.413478, 7.369724, 0.009826, 0.0]] 

table2 = newRph.getTable(col5=2)
print(table2)
# [[7.36, -1.355933, 138.470144, 7.369792, 0.01, 0.009572], 
# [7.369792, 0.009572, 140.427142, 7.369724, 0.01, 0.0], 
# [7.369724, 0.0, 140.413478, 7.369724, 0.01, 0.0]]

Method: result( )

Sebuah method untuk mencetak hasil dari perhitungan Newton Raphson atau Akar persamaan yang didapat.

Method ini mempunyai 1 parameter precision dengan nilai default 6 untuk mengatur ketelitian desimal dari akar yang dicetak.

newRph = fetterless.NewtonRaphson(tabulation)
newRph.result()

newRph.result(precision=3)
========= NEWTON RAPHSON METHOD ========= 
Newton Raphson: Root value 7.369724 
Newton Raphson: Root value 7.37 


Method: getResult( )

Sebuah method untuk mendapatkan hasil dari perhitungan Newton Raphson atau Akar persamaan yang didapat.

Method ini mempunyai 1 parameter precision dengan nilai default 6 untuk mengatur ketelitian desimal dari akar yang dicetak.

newRph = fetterless.NewtonRaphson(tabulation)
result = newRph.getResult()
print(result) # 7.369724