# Metode iterasi titik tetap merupakan metode untuk penyelesaian persamaan non-linier dengan cara menyelesaikan setiap variabel x yang ada dalam suatu persamaan dengan sebagian yang lain sehingga diperoleh x=g(x) untuk masing-masing variabel x. Sebagai contoh, untuk menyelesaikan persamaan x+ex=0, maka persamaan tersebut perlu diubah menjadi x=ex atau g(x)=ex.
root_fpi <- function(f, x0, tol=1e-7, N=60){
iter <- 1
xold <- x0
xnew <- f(xold)
while(abs(xnew-xold)>tol){
iter <- iter+1
if(iter>N){
stop("No solutions found")
}
xold <- xnew
xnew <- f(xold)
}
root <- xnew
return(list(`function`=f, root=root, iter=iter))
}
#Untuk menyelesaikan persamaan non-linier tersebut diatas maka kita perlu mentransformasi persamaan non-linier tersebut terlebih dahulu.
xe−x+1=0 →x=−1e/−x
Untuk tebakan awal digunakan nilai x=−1
x1=−1/e1=−2,718282
Nilai x
tersebut selanjutnya dijadikan nilai input pada iterasi selanjutnya:
x2=−1/e2,718282=−0,06598802
iterasi terus dilakukan sampai diperoleh |xi+1−xi|≤e .
root_fpi(function(x){-1/exp(-x)}, x0=-1)
## $`function`
## function(x){-1/exp(-x)}
## <bytecode: 0x016f8090>
##
## $root
## [1] -0.5671433
##
## $iter
## [1] 29