Penyelesaian soal menggunakan metode secant oleh Ade Ray, Prof.Dr. Suhartono, M.kom
Metode Secant merupakan perbaikan dari metode regula-falsi dan Newton Raphson, dimana kemiringan dua titik dinyatakan secara diskrit dengan mengambil bentuk garis lurus yang melalui satu titik.
# Algoritma Metode Secant
#1.Definisikan f(x)dan f′(x)
#2.Tentukan nilai toleransi edan iterasi masimum (N)
#3.Tentukan tebakan awal x0 dan x1
#4.Hitung f(x0)dan f(x1)
#5.Untuk iterasi i=1s/d Natau |f(x)|≥e , hitung x menggunakan Persamaan
#6.Akar persamaan adalah nilai x yang terakhir.
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))
}
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: 0x000000001557e668>
##
## $root
## [1] 0.9999996
##
## $iter
## [1] 72
## $`function`
## function(x){((x + 2)^2)*((x - 1)^4)*(x + 5)}
## <bytecode: 0x000000001383b210>
##
## $root
## [1] 0.9999996
##
## $iter
## [1] 72
#Jadi, berdasarkan hasil yang diperoleh nilai akar penyelesainnya adalah: x=0.9999996. Dan dengan dilakukan iterasi sebanyak 72 kali.
2.Faktor dari persamaan 6x^4 + 11x^3 − 56x^2 − x + 60 #### penyelesaiannya
root_secant(function(x){6*(x^4)+11*(x^3)-56*(x^2) +60}, x=0)
## $`function`
## function(x){6*(x^4)+11*(x^3)-56*(x^2) +60}
## <bytecode: 0x0000000014b36108>
##
## $root
## [1] 1.000008e-06
##
## $iter
## [1] 3
## $`function`
## function(x){6*(x^4)+11*(x^3)-56*(x^2) +60}
## <bytecode: 0x00000000152df4a0>
##
## $root
## [1] 1.000008e-06
##
## $iter
## [1] 3
Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah x=1.000008e-06 dengan iterasi dilakukan sebanyak 3 kali.