Integral Numerik

Gerry Alfa Dito

Package

library(pracma)
library(gaussquad)
## Loading required package: polynom
## 
## Attaching package: 'polynom'
## The following object is masked from 'package:pracma':
## 
##     integral
## Loading required package: orthopolynom

Metode Integral Numerik

Berikut adalah user-defined function dari metode-metode Integral Numerik

  1. Metode Trapezoidal
trapezoid <- function(ftn, a, b, n = 100) {
     h <- (b-a)/n
     x.vec <- seq(a, b, by = h)
     f.vec <- sapply(x.vec, ftn)     # ftn(x.vec)
     Trap <- h*(f.vec[1]/2 + sum(f.vec[2:n]) + f.vec[n+1]/2)
     return(Trap)
}
  1. Metode Simpson
simpson_n <- function(ftn, a, b, n = 100) {
    n <- max(c(2*(n %/% 2), 4))
    h <- (b-a)/n
    x.vec1 <- seq(a+h, b-h, by = 2*h)       # ganjil
    x.vec2 <- seq(a+2*h, b-2*h, by = 2*h)   # genap
    f.vec1 <- sapply(x.vec1, ftn)   # ganjil
    f.vec2 <- sapply(x.vec2, ftn)   # genap
    S <- h/3*(ftn(a) + ftn(b) + 4*sum(f.vec1) + 2*sum(f.vec2))
    return(S)
}
  1. Metode Gauss (Adaptive) quadrature

belum tersedia

  1. Metode Integral Monte Carlo
mc_integral <- function(ftn, a, b,m=1000){
  #Membangkitkan x berdistribusi U(a,b)
  x <- runif(m,a,b)
  # Menghitung rata-rata dari output fungsi
  Gx <- ftn(x)
  Gx_m <- mean(Gx)
  theta.hat <- (b-a)*Gx_m
  return(theta.hat)
}

Selain user-defined function diatas terdapat beberapa fungsi yang bisa langsung digunakan, yaitu

  1. Metode Trapezoidal menggunakan fungsi trapzfun dari package pracma
  2. Metode Simpson belum ada fungsi secara khusus
  3. Metode Gaussian Quadrature menggunakan fungsi integrate
  4. Metode Monte Carlo belum ada fungsi secara khusus.

Soal dan Pembahasan

  1. Gunakan metode trapezoidal untuk mengintegralkan fungsi berikut untuk n=6, dengan

\[\int_{0}^{\pi} \sin(x)^{2} dx \] a. Menggunakan Tangan b. Menggunakan Program di R

Jawab:

  1. Menggunakan Tangan

Diketahui

Panjang setiap sub interval adalah sebagai berikut:

Menghitung fungsi \(f(x)\) pada setiap \(x_{i}\)

Kemudian berdasarkan metode trapezoidal berikut adalah hasil akhirnya

Jika kita bandingkan dengan hasil yang didapatkan secara exact adalah sebagai berikut:

  1. Menggunakan R

mendefinisikan fungsi \(f(x)\)

f <- function(x){
  sin(x)^2
}

Menghitung integral menggunakan trapezoid

trapezoid(f,0,pi,n = 6)
## [1] 1.570796
  1. Gunakan metode simpson untuk mengintegralkan fungsi berikut untuk n=4, dengan

\[\int_{0}^{8} \sqrt(x) dx \] a. Menggunakan Tangan b. Menggunakan Program di R

Jawab:

  1. Menggunakan Tangan

Panjang setiap sub interval adalah sebagai berikut:

dan

Menghitung fungsi untuk setiap titik \(x_{i}\):

Menggantikan semua nilai-nilai diatas ke dalam rumus Simpson

Solusi exact dari integral ini adalah sebagai berikut

  1. Menggunakan R

mendefinisikan fungsi \(f(x)\)

f2 <- function(x){
  sqrt(x)
}

Menghitung integral menggunakan metode simpson

simpson_n(f2,0,8,n = 4)
## [1] 14.85549
  1. Gunakan metode four-point gaussian quadratur untuk mengintegralkan fungsi berikut

\[\int_{0}^{3} \exp(-x^2) dx \] a. Dengan Tangan

Rumus Umum

Langkah pengerjaanya adalah sebagai berikut

  1. Dengan R

mendefinisikan fungsi \(f(t)\)

f3 <- function(t){
  (3/2)*exp((-(3/2*(t+1))^2))
}

Legendre order 4

Lq = legendre.quadrature.rules(4)[[4]]
xi = Lq$x
wi = Lq$w 

Menghitung integral berdasarkan gaussian quadratur

sum(wi * f3(xi)) 
## [1] 0.8841359
  1. Gunakan metode Monte Carlo untuk mengintegralkan fungsi berikut

\[\int_{0}^{1/2} \arcsin(\sqrt x) dx \] dan tentukan berapa banyak sampel yang dibutuhkan agar hasil integral ini sesuai dengan hasil exactnya yaitu \(\frac{1}{4}-\frac{\pi}{24}\) !

Jawban:

Silahkan kerjakan sebagai latihan. Gunakan user-defined function yang sudah dibuat di atas.

Referensi

Gilat, Amos and Subramaniam, Vish.2013.Numerical Methods for Engineers and Scientists: An Introduction with Applications Using MATLAB 3rd Ed. Wiley