Universitas : UIN Malang

Jurusan : Teknik Informatika

Dosen Pengampu : Prof. Dr. Suhartono, M.Kom

Paket base pada R menyediakan fungsi uniroot() untuk mencari akar persamaan suatu fungsi pada rentang spesifik. Fungsi ini menggunakan metode Brent yaitu kombinasi antara root bracketing, biseksi, dan interpolasi invers kuadrat. Format fungsi tersebut secara sederhana adalah sebagai berikut:

uniroot(f, interval, tol=.Machine$double.eps^0.25, 
        maxiter=1000)

Berikut adalah contoh penerapan fungsi uniroot():

uniroot(function(x){x*exp(-x)+1},
        interval=c(-1,0), tol=1e-7)

Berdasarkan hasil iterasi diperoleh akar persamaan tersebut adalah
− 0 , 5671433 dengan jumlah iterasi sebanyak
7 iterasi dan tingkat presisi sebesar
5 e − 08 .

Fungsi lain yang dapat digunakan untuk mencari akar persamaan adalah uniroot.all() dari paket rootSolve. Fungsi ini mengatasi kelemahan dari uniroot(), dimana uniroot() tidak bekerja jika fungsi hanya menyentuh dan tidak melewati sumbu nol
y = 0 . Untuk memahaminya perhatikan contoh berikut:

uniroot(function(x){sin(x)+1}, c(-pi,0))

Bandingkan dengan sintaks berikut:

uniroot(function(x){sin(x)+1}, c(-pi,-pi/2))

Untuk menggunakan fungsi uniroot.all(), jalankan sintaks berikut:

library(rootSolve)

Jalankan kembali fungsi dan rentang di mana uniroot() tidak dapat bekerja:

uniroot.all(function(x){sin(x)+1}, c(-pi,0))