Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
Fakultas : Sains dan Teknologi
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 disajikan pada Persamaan 7.8.
Berdasarkan Persamaan (7.14) diketahui bahwa untuk memperoleh akar persamaan diperlukan 2 buah titik pendekatan. Dalam buku ini akan digunakan titik pendekatan kedua merupakan titik pendekatan pertama ditambah sepuluh kali nilai toleransi.
Definisikan f(x) dan f′(x)
Tentukan nilai toleransi e dan iterasi masimum (N)
Tentukan tebakan awal x0 dan x1
Hitung f(x0) dan f(x1)
Untuk iterasi i=1 s/d N atau |f(x)|≥e , hitung x menggunakan Persamaan (7.14)
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))
}
Contoh 7.6 Selesaikan persamaan non-linier pada Contoh 7.5 menggunakan metode Secant?
Jawab:
Untuk menyelesaikan persamaan tersebut digunakan nilai pendekatan awal x0=0 dan x1=0+10 ∗ 10−7= 10−6
Untuk mempercepat proses iterasi 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: 0x0000000010dc4878>
##
## $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.
(1). Cari hasil perkalian dari tiga persamaan berikut (x + 2)2(x − 1)4(x + 5).
(2). Cari faktor dari persamaan 6x4 + 11x3 − 56x2 − x + 60
(3). Cari penyelesaian persamaan x4 − 5x3 + 3x2 + x = 0
(4). Cari penyelesaian dari pertidaksamaan 7x – 1 < 2x + 3
(1). Cari hasil perkalian dari tiga persamaan berikut (x + 2)2(x − 1)4(x + 5).
Jawab :
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: 0x000000001026b2c8>
##
## $root
## [1] 0.9999996
##
## $iter
## [1] 72
Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah x=0.9999996 dengan iterasi dilakukan sebanyak 72 kali.
(2). Cari faktor dari persamaan 6x4 + 11x3 − 56x2 − x + 60
Jawab :
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: 0x0000000010ce10c0>
##
## $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
(3). Cari penyelesaian persamaan x4 − 5x3 + 3x2 + x = 0
Jawab :
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: 0x000000001145d9a8>
##
## $root
## [1] 0
##
## $iter
## [1] 2
Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah x=0 dengan iterasi dilakukan sebanyak 2 kali
(4). Cari penyelesaian dari pertidaksamaan 7x – 1 < 2x + 3
Jawab :
root_secant(function(x){7*x + 2*x - 1 - 3}, x=0)
## $`function`
## function(x){7*x + 2*x - 1 - 3}
## <bytecode: 0x000000000eeaa260>
##
## $root
## [1] 0.4444444
##
## $iter
## [1] 2
Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah x= 0.4444444 dengan iterasi dilakukan sebanyak 2 kali
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
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
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.