Universitas : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
Kelas : B
• Definisikan f(x)f(x) dan f′(x)f′(x)
• Tentukan nilai toleransi ee dan iterasi maximum (N)
• Tentukan tebakan awal x0x0 dan x1x1
• Hitung f(x0)f(x0) dan f(x1)f(x1)
• Untuk iterasi i=1i=1 s/d NN atau |f(x)|≥e|f(x)|≥e, * hitung xx 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=0x0=0 dan x1=0+10∗10−7=10−6x1=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: 0x0000000014da4dc8>
##
## $root
## [1] 0.5671433
##
## $iter
## [1] 6