Persamaan linear adalah persamaan aljabar yang setiap sukunya mengandung konstanta atau hasil kali konstanta dengan variabel tunggal. Persamaan non-linier dapat diartikan sebagai persamaan yang tidak mengandung syarat seperti persamaan linier, sehingga persamaan non-linier dapat merupakan:
Persamaan yang memiliki pangkat selain satu (misal: x2 x2)
Persamaan yang mempunyai produk dua variabel (misal: xy)
Metode secant merupakan perbaikan dari metode regulasi dan Newton Raphson, di mana kemiringan dua titik direpresentasikan secara diskrit dengan mengambil bentuk garis lurus yang melalui titik-titik tersebut. Persamaan yang dihasilkan ada dalam persamaan. Hal ini ditunjukkan pada persamaan.
Algoritma Metode Secant
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))
}
Cari hasil perkalian dari tiga persamaan berikut (x + 2)2(x − 1)4(x + 5).
Hasil perkalian dari 3 persamaan tersebuat adalah x7 + 5x6 - 6x5 - 26x4 + 29x3 + 33x2 - 56x + 20. Selanjutnya kita coba selesaikan dengan mencari akar polinomial melalui fungsi root_secant() :
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: 0x000000001577d878>
##
## $root
## [1] 0.9999996
##
## $iter
## [1] 72
Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah x=0.9999996 dengan iterasi dilakukan sebanyak 72 kali.
Cari faktor dari persamaan 6x4 + 11x3 − 56x2 − x + 60
Faktor dari persamaan tersebut = (x +1)(2x-3)(x+4)(3x-5). Selanjutnya kita coba selesaikan dengan mencari akar polinomial melalui fungsi root_secant() :
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: 0x0000000014ae0588>
##
## $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.
Cari penyelesaian persamaan x4 − 5x3 + 3x2 + x = 0
Penyelesaian : x(x-1)(x2 -4x-1) = 0
maka x1 = 2 - 51/2 , x2 = 0 , x3 = 1, x4 = 2 + 51/2 . Selanjutnya kita coba selesaikan dengan mencari akar polinomial melalui fungsi root_secant() :
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: 0x00000000157589e0>
##
## $root
## [1] 0
##
## $iter
## [1] 2
Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah x=0 dengan iterasi dilakukan sebanyak 2 kali.
Cari penyelesaian dari pertidaksamaan 7x – 1 < 2x + 3
Penyelesaian : 7x - 2x < 3 + 1
Penyelesaian : 5x < 4
Penyelesaian : x < 4/5
Selanjutnya kita coba selesaikan dengan mencari akar polinomial melalui fungsi root_secant() :
root_secant(function(x){7*x - 2*x - 1 - 3}, x=0)
## $`function`
## function(x){7*x - 2*x - 1 - 3}
## <bytecode: 0x00000000129e95f0>
##
## $root
## [1] 0.8
##
## $iter
## [1] 2
Berdasarkan hasil iterasi diperoleh nilai akar penyelesaian adalah x= 0.8 dengan iterasi dilakukan sebanyak 2 kali.
Suhartono. 2015. Memahami Kalkulus Dasar Menggunakan Wolfram Mathematica 9. Malang : UIN Maliki Malang.
https://bookdown.org/moh_rosidi2610/Metode_Numerik/rootfinding.html#bracketing