Email             :
RPubs            : https://rpubs.com/brigitatiaraem/
Jurusan          : Statistika
Address         : ARA Center, Matana University Tower
                         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.


1 METODE TERTUTUP

1.1 Metode Bagi Dua

Dalam metode tertutup dengan metode bagi dua adalah metode pencarian akar yang berlaku untuk setiap fungsi kontinu yang diketahui dua nilai dengan tanda yang berlawanan dengan membagi selang sampai sekecil mungkin sehingga menuju akar yang sebenarnya.

Algoritma Metode Biseksi

  1. Definisikan fungsi f(x)

  2. Tentukan rentang untuk x yang berupa batas bawah a dan batas atas b.

  3. Tentukan nilai toleransi e dan iterasi maksimum N

  4. Hitung f(a) dan f(b)

  5. Hitung:

\[x=(a+b)/2\]

  1. Hitung f(x)

  2. Bila f(x).f(a)<0, maka b= x dan f(b)=f(x). Bila tidak, a =x dan f(a)=f(x)

  3. Bila |b−a|<e atau iterasi maksimum maka proses dihentikan dan didapatkan akar=x, dan bila tidak ulangi langkah 6.

  4. Jika sudah diperoleh nilai dibawah nilai toleransi, nilai akar selanjutnya dihitung berdasarkan Persamaan diatas dengan nilai a dan b merupakan nilai baru yang diperoleh dari proses iterasi.

Contoh :

Carilah akar persamaan f(x)=xe^(−x)+1 pada rentang x=[−1,0]dengan nilai toleransi sebesar 10^(−7)?

menghitung nilai x:

f(x).f(a)<0 maka b=x dan f(b)=f(x)

root_bisection <- function(f, a, b, tol=1e-7, N=100){
  iter <- 0
  fa <- f(a)
  fb <- f(b)
  
  while(abs(b-a)>tol){
    iter <- iter+1
    if(iter>N){
      warning("iterations maximum exceeded")
      break
    }
    x <- (a+b)/2
    fx <- f(x)
    if(fa*fx>0){
      a <- x
      fa <- fx
    } else{
      b <- x
      fb <- fx
    }
  }
  
  # iterasi nilai x sebagai return value
  root <- (a+b)/2
  return(list(`function`=f, root=root, iter=iter))
}
root_bisection(function(x){x*exp(-x)+1},
               a=-1, b=0)
## $`function`
## function(x){x*exp(-x)+1}
## <bytecode: 0x00000000135527b8>
## 
## $root
## [1] -0.5671433
## 
## $iter
## [1] 24

1.2 Metode Regula Falsi

Metode ini dikembangkan untuk menyempurnakan metode bagidua, dengan memperhitungkan besaran f(xl) dan f(xu)

Algoritma :

  1. Definisikan f(x)

  2. Tentukan batas bawah (a) dan batas atas (b).

  3. Tentukan toleransi error € dan iterasi maks (N)

  4. Hitung fungsi Fa=f(a) dan Fb=F(b)

  5. Untuk iterasi I = 1 hingga n

  • Hitung Fx=F(x)

  • Hitung error = |Fx|

  • Jika f(x).f(a)<0 maka b=x dan f(b)=f(x). Jika tidak, a=x, dan f(a)=f(x)

  1. Akar persamaan = x

Contoh :

Carilah akar persamaan f(x)=xe^(−x)+1 pada rentang x=[−1,0]dengan nilai toleransi sebesar 10^(−7)?

diketahui f(x).f(a)<0 maka b=x dan f(b)=f(x).

root_rf <- function(f, a, b, tol=1e-7, N=100){
  iter <- 1
  fa <- f(a)
  fb <- f(b)
  x <- ((fb*a)-(fa*b))/(fb-fa)
  fx <- f(x)
  
  while(abs(fx)>tol){
    iter <- iter+1
    if(iter>N){
      warning("iterations maximum exceeded")
      break
    }
    if(fa*fx>0){
      a <- x
      fa <- fx
    } else{
      b <- x
      fb <- fx
    }
    x <- (fb*a-fa*b)/(fb-fa)
    fx <- f(x)
  }
  
  # iterasi nilai x sebagai return value
  root <- x
  return(list(`function`=f, root=root, iter=iter))
}
root_rf(function(x){x*exp(-x)+1},
               a=-1, b=0)
## $`function`
## function(x){x*exp(-x)+1}
## <bytecode: 0x0000000014c72dd0>
## 
## $root
## [1] -0.5671433
## 
## $iter
## [1] 15

2 METODE TERBUKA

2.1 Metode New-Raphson

Metode Newton-Raphson merupakan metode penyelesaian persamaan non-linier dengan menggunakan pendekatan satu titik awal dan mendekatinya dengan memperhatikan slope atau gradien.

Algoritma Metode Newton-Raphson

  1. Definisikan f(x) dan f′(x)

  2. Tentukan nilai toleransi e dan iterasi masimum (N)

  3. Tentukan tebakan awal x0

  4. Hitung f(x0) dan f′(x0)

  5. Untuk iterasi i=1 s/d N atau |f(x)|≥e|, hitung x menggunakan Persamaan

  1. Akar persamaan merupakan nilai xi terakhir yang diperoleh.

Contoh :

Selesaikan persamaan non-linier x−e^(−x)=0 menggunakan metode Newton-Raphson?

Misalkan x=0

root_newton <- function(f, fp, x0, tol=1e-7, N=100){
  iter <- 0
  xold<-x0
  xnew <- xold + 10*tol
  
  while(abs(xnew-xold)>tol){
    iter <- iter+1
    if(iter>N){
      stop("No solutions found")
    }
    xold<-xnew
    xnew <- xold - f(xold)/fp(xold)  
  }
  
  root<-xnew
  return(list(`function`=f, root=root, iter=iter))
}
root_newton(function(x){x-exp(-x)},
            function(x){1+exp(-x)},
              x0=0)
## $`function`
## function(x){x-exp(-x)}
## <bytecode: 0x0000000014addcf8>
## 
## $root
## [1] 0.5671433
## 
## $iter
## [1] 5

2.2 Metode Secant

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 secara umum :

Algoritma Metode Secant

  1. Definisikan f(x)dan f′(x)

  2. Tentukan nilai toleransi edan iterasi masimum (N)

  3. Tentukan tebakan awal x0dan x1

  4. Hitung f(x0) dan f(x1)

  5. Untuk iterasi i=1s/d N atau |f(x)|≥e|, hitung x menggunakan Persamaan diatas

  6. Akar persamaan adalah nilai x yang terakhir.

Contoh :

Selesaikan persamaan non-linier x−e^(−x)=0 menggunakan metode Secant?

misalkan x=0 dan

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))
}
root_secant(function(x){x-exp(-x)}, x=0)
## $`function`
## function(x){x-exp(-x)}
## <bytecode: 0x00000000152476e8>
## 
## $root
## [1] 0.5671433
## 
## $iter
## [1] 6

3 INTERPOLASI

3.1 Interpolasi Linear

Bentuk interpolasi yang paling mudah adalah menghubungkan dua buah titik data dengan sebuah garis lurus. Teknik ini dan sebagainya interpolasi linier dan dilukiskan secara grafis pada gambar 2 dengan menggunakan segitiga sebangun.

Kemudian dapat diatur kembali supaya memenuhi sebuah formula interpolasi linier.

Notasi f1(x) menandakan bahwa rumus tersebut adalah sebuah polinomial interpolasi orde pertama. Perhatikan bahwa disamping menyatakan skope dari gambar yang menghubungkan titik

contoh :

Taksir (ln 2) dengan menggunakan interpolasi linear dengan interpolasi antara interpolasi antara ln 1 = 0 dan ln 6 = 1,7917595 sebagai berikut

Dengan et = 48,3%

3.2 Interpolasi Kuadrat

Interpolasi kuadratik dilakukan bila plot datanya mendekati fungsi kuadrat. Berbeda dengan interpolasi linear yang hanya melibatkan 2 titik sampel x1 dan x2, interpolasi kuadratik melibatkan 3 titik.

dengan titik data \[(x_1,y_1),(x_2,y_2),(x_3,y_3)\] dan menghitung nilai a,b, dan c dengan metode eliminasi gauss

Contoh :

Diketahu99.4i ln(8)=2.0794, ln(9)=2.1972, dan ln(9.5)=2.2513. Tentukan nilai ln(9.4) dengan interoplasi kuadrat.

3.3 Interpolasi Polinom Newton

Interpolasi newton atau dikenal dengan interpolasi polinomial newton muncul untuk membuat prediksi nilai fungsi jika diberikan banyak data. Dari sebanyak n data dapat dibuat polinomial berderajat n-1.

Contoh :

Bentuklah polinom Newton derajat satu, dua, tiga, dan empat yang menghampiri f(x)=cos(X) dengna range[0.0;4] dan jarak antara titik adalah 1.0. Lalu taksirlah f(X) dengan x=2.5 dengan polinom newton derajat 3

Maka polinom Newton derajat 1,2 dan 3 dengan x_0= 1 sebagai titik pertama :

4 INTERPOLASI POLINOM

4.1 Interpolasi Polinom Lagrange

Interpolasi Polinom Lagrange adalah formulasi kembali dari polinom newton yang mencegah komputasi diferensi terbagi

rumus interpolasi lagrange linear :

Contoh :

rumus interpolasi lagrange kuadrat :

Contoh :

rumus interpolasi lagrange kubik :

Contoh :

4.2 Interpolasi Polinom Gregory

Polinom Newton-Gregory merupakan kasus khusus dari polinomial Newton untuk titik-titik yang berjarak sama.

Contoh :

Bentuklah tabel selisih untuk fungsi f(x)=1/(x+1) didalam selarng[0.000;0.625] dan h=0.125. Hitung f(0.300) dengan polinom newton gregory maju derajat 3.