Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains Dan Teknonogi
Jurusan : Teknik Informatika
Persamaan aljabar disebut sebagai persamaan linear jika setiap suku dalam persamaan tersebut mengandung konstanta dan dikalikan dengan variabel tunggal. Jika terdapat lebih dari satu persamaan linear, maka persamaan linear tersebut akan menjadi sebuah sistem.
Dapat diartikan pula sebagai persamaan aljabar yang setiap sukunya mengandung konstanta atau hasil kali konstanta dengan variabel tunggal.
Persamaan non-linier dapat diartikan sebagai persamaan yang tidak mengandung syarat seperti persamaan linier sehingga persamaan non-linier dapat merupakan:
Metode Newton Raphson merupakan salah satu metode yang tangguh dalam mencari nilai hampiran akar untuk persamaan non linier.Tetapi, tidak semua fungsi dapat mudah diturunkan.
Oleh karena itu, maka metode Newton Raphson ini dimodifikasi, dan diberi nama metode Secant. Berbeda dengan metode Newton Raphson, pada metode secant tidak diperlukan turunan pertama dari fungsi non liniernya, tetapi diperlukan dua buah nilai awal.
Fungsi root_secant() merupakan fungsi yang penulis buat untuk melakukan iterasi menggunakan metode Secant. Berikut merupakan sintaks dari fungsi tersebut:
root_secant <- function(f, x, tol=1e-7, N=100){
iter <- 0
xold <- x
fxold <- f(x)
x <- xold+10*tol
while(abs(x-xold)>tol){
iter <- iter+1
if(iter>N)
stop("No solutions found")
fx <- f(x)
xnew <- x - fx*((x-xold)/(fx-fxold))
xold <- x
fxold <- fx
x <- xnew
}
root<-xnew
return(list(`function`=f, root=root, iter=iter))
}
untuk mempercepat proses iterasi kita dapat menggunakan bantuan fungsi root_fpi(). Berikut adalah sintaks yang digunakan:
root_secant(function(x){x-exp(-x)}, x=0)
## $`function`
## function(x){x-exp(-x)}
## <bytecode: 0x00000000151eb230>
##
## $root
## [1] 0.5671433
##
## $iter
## [1] 6
Soal 1
root_secant(function(x){(x+2)^2 * (x-1)^4 * (x+5)}, x=0)
## $`function`
## function(x){(x+2)^2 * (x-1)^4 * (x+5)}
## <bytecode: 0x0000000015db8840>
##
## $root
## [1] 0.9999996
##
## $iter
## [1] 72
soal 2
root_secant(function(x){6*(x^4) + 11*(x^3) - 56*(x^2) - x + 60}, x=0.6)
## $`function`
## function(x){6*(x^4) + 11*(x^3) - 56*(x^2) - x + 60}
## <bytecode: 0x000000001509d040>
##
## $root
## [1] 1.5
##
## $iter
## [1] 8
soal 3
root_secant(function(x){x^4 - 5*(x^3) + 3*(x^2) + x}, x=0)
## $`function`
## function(x){x^4 - 5*(x^3) + 3*(x^2) + x}
## <bytecode: 0x0000000015cb6308>
##
## $root
## [1] 0
##
## $iter
## [1] 2
soal 4
root_secant(function(x){7*x - 1 - 2*x + 3}, x=0)
## $`function`
## function(x){7*x - 1 - 2*x + 3}
## <bytecode: 0x0000000013d7cfb8>
##
## $root
## [1] -0.4
##
## $iter
## [1] 2