__Pada kesempatan kali ini, saya akan mencoba untuk menyelesaikan operasi aljabar menggunakan Metode Secant. 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. Persamaan yang dihasilkan adalah sebagai berikut :
Definisikan\(f(x)\) dan \(f'(x)\)
Tentukan nilai toleransi \(e\) dan iterasi masimum (N)
Tentukan tebakan awal 𝒙0 dan 𝒙1
Hitung \(f\)(𝒙0) dan \(f\)(𝒙1)
Untuk iterasi \(i=1\) s/d \(N\) atau \(|f(x)|≥e\), hitung \(x\) menggunakan Persamaan
Fungsi root_secant() merupakan fungsi yang dibuat 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))
}
Contoh : Selesaikan persamaan non-linier \(x-\)𝑒-x = 0 menggunakan metode Secant!
Jawab :
Untuk mempercepat penyelesaian soal diatas maka kita dapat menggunakan fungsi root_secant() pada R. Berikut sintaks yang digunakan:
root_secant(function(x){x-exp(-x)}, x=0)
## $`function`
## function(x){x-exp(-x)}
## <bytecode: 0x0000000011778798>
##
## $root
## [1] 0.5671433
##
## $iter
## [1] 6
= Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah \(x=0,5671433\) dengan iterasi dilakukan sebanyak \(6\) kali.
Secara umum metode Secant menawarkan sejumlah keuntungan dibanding metode lainnya. Pertama, seperti metode Newton-Raphson dan tidak seperti metode tertutup lainnya, metode ini tidak memerlukan rentang pencarian akar penyelesaian. Kedua, tidak seperti metode Newton-Raphson, metode ini tidak memerlukan pencarian turunan pertama persamaan non-linier secara analitik, dimana tidak dapat dilakukan otomasi pada setiap kasus.
Adapun kerugian dari metode ini adalah berpotensi menghasilkan hasil yang tidak konvergen sama seperti metode terbuka lainnya. Selain itu, kecepatan konvergensinya lebih lambat dibanding metode Newton-Raphson.
Penyelesaian :
f <- function(x){
(x+2)^2*(x-1)^4*(x+5)
}
root_secant(f,0)
## $`function`
## function(x){
## (x+2)^2*(x-1)^4*(x+5)
## }
## <bytecode: 0x0000000010a9abf0>
##
## $root
## [1] 0.9999996
##
## $iter
## [1] 72
= Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah \(x=0,9999996\) dengan iterasi dilakukan sebanyak \(72\) kali.
Penyelesaian :
f <- function(x){
6*(x^4)+11*(x^3)-56*(x^2)+60
}
root_secant(f,0)
## $`function`
## function(x){
## 6*(x^4)+11*(x^3)-56*(x^2)+60
## }
## <bytecode: 0x0000000011922060>
##
## $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.
Penyelesaian :
f <- function(x){
x^4-5*(x^3)+3*(x^2)+x
}
root_secant(f,0)
## $`function`
## function(x){
## x^4-5*(x^3)+3*(x^2)+x
## }
## <bytecode: 0x0000000010b07a30>
##
## $root
## [1] 0
##
## $iter
## [1] 2
Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah \(x=0\) dengan iterasi dilakukan sebanyak \(2\) kali.
Penyelesaian :
f <- function(x){
7*x+2*x-1-3
}
root_secant(f,0)
## $`function`
## function(x){
## 7*x+2*x-1-3
## }
## <bytecode: 0x0000000011655c58>
##
## $root
## [1] 0.4444444
##
## $iter
## [1] 2
= Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah \(0,4444444\) dengan iterasi dilakukan sebanyak \(2\) kali.
Sumber :
Suhartono. 2015. Memahami Kalkulus Dasar Menggunakan Wolfram Mathematica 9. Malang : UIN Maliki Malang.
Rosidi, M. Metode Numerik Menggunakan R untuk Teknik Lingkungan. https://bookdown.org/moh_rosidi2610/Metode_Numerik/diffinteg.html#finitediff
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00