Metode Integral Numerik

Metode Integral Numerik

Metode integrasi numerik adalah suatu pendekatan yang digunakan untuk memberikan hasil dari pengintegralan yang tidak didapatkan secara analitik. Biasanya prndekatanya ini dengan menghitung luas daerah dibawah suatu kurva suatu persamaan dengan batas tertentu.

Metode Trapezoidal

Metode trapezodia merupakan suatu pendekatan area dibawah kurva dengan fungsi \(y=f(x)\) dengan subinterval \([x_{i},x_{i+1}]\). Menggunakan pendeketan \(\int_{a}^{b} f(x) \ dx = T\) didefinisikan sebagai : \[ \int_{q}^{b}f(x) \ dx ≈ \ T_{n} = \frac{h}{2}[f(x_{0})+2f(x_{1})+2f(x_{2})+...+2(f(x_{n-1})+f(x_{n})]\]

dimana \(h=\frac{b-a}{n}\) dan \(x_{i} = a+ih\) Setiap daerah \(x_{0}\) dan \(x_{1}\) l

Metode ini secara berurutan akan dibangun ruang trapesium dan dihitung luasnya. Semakin banyak intervalnya akan semakin baik dimana errornya akan semakin kecil dan luasnya akan semakin kecil.

Function Metode Trapezoidal di R

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)
}

Metode Simpson

Metode simpson adalah metode yang membagi subinterval menjadi \([a,b]\) menjadi \(n\) yang merupakan bilangan genap. Menaksir luas dibawah kurva suatu fungsi menggunakan pendeketan \(f(x)\) menggunakan polinomial derajat dua. Adapun pendekatan luasnya digunakan \(\int_{a}^{b} f(x) \ dx\) didefinisikan sebagai : \[\int_{a}^{b} f(x) \ dx ≈ S_{n} = \frac{h}{3}[f(x_{0})+4f(x_{1})+2f(x_{2})+4f(x_{3})+...+4f(x_{n-1}+f(x_{n})]\] dimana \(h=\frac{b-a}{n}\)

Metode simpson pada suatu \(f(x)\) dengan interval \([a,b]\) dapat ditulis :

  • Tentukan nilai n dan h dimana \(h = \frac{b-a}{n}\)
  • Tentukan nilai awal \(x_{0}=a\) dan \(x_{n}= b\) dan dilanjutkan dengan menghitung \(f(a)\) dan $f(b).
  • Semua nilai \(x = 1,2,...,n-1\) akan dihitung jika nilai ganjil \(4f(x)\) dan genap \(2f(x)\)

Function Metode Simpson di R

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)
}

Metode Gauss Quadrature

Persamaan yang digunakan pada metode gauss quadrature adalah : \[\int_{a}^{b}f(x) \ dx ≈ \sum_{n=1}^{n}C_{i}f(x_{i})\] dimana koefisien \(C_{i}\) adalah nilai bobot dan \(x_{i}\) adalah titik gauss yang berada dalam interval \([-1,1]\). Jika domain integral \([a,b]\) suatu nilai sembarang, maka akan ditranformasikan menjadi nilai \([-1,1]\)

\[\int_{a}^{b}f(x)dx\ → \int_{-1}^{1}f(t)dt\] Dimana : \[ x = \frac{1}{2}[t(b-a)+a+b] \\ dx = \frac{1}{2}(b-a)dt \] Sehingga Fungsi ntegrralnya menjadi :

\[\int_{-1}^{1} \ f(\frac{1}{2}[t(b-a)+a+b])\frac{1}{2}(b-a)\]

Function Metode Gauss Quadrature di R

library(pracma)

# Untuk n = 5
gaussLegendre(n=5,a=-1,b=1)
## $x
## [1] -9.061798e-01 -5.384693e-01  5.551115e-16  5.384693e-01  9.061798e-01
## 
## $w
## [1] 0.2369269 0.4786287 0.5688889 0.4786287 0.2369269
# untuk n = 10
gaussLegendre(n=10,a=-1,b=1)
## $x
##  [1] -0.9739065 -0.8650634 -0.6794096 -0.4333954 -0.1488743  0.1488743
##  [7]  0.4333954  0.6794096  0.8650634  0.9739065
## 
## $w
##  [1] 0.06667134 0.14945135 0.21908636 0.26926672 0.29552422 0.29552422
##  [7] 0.26926672 0.21908636 0.14945135 0.06667134

Metode Monte Carlo

Persamaan fungsi dar metode monte carlo adalah : \[\int_{a}^{b}f(x)dx \ ≈ (b-a)\frac{1}{N}\sum_{i=1}^{n}f(x_{i})\]

Function Monte Carlo di R

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)
}

Tugas

  1. Diketahui pdf (probability density function) dari distirbusi Kumaraswamy adalah sebagai berikut \[f(x|a,b) = ab x^{a-1} (1-x^a)^{b-1} \ dimana \ {x \in (0,1)}\] jika diketahui \(a = 5\) dan \(b = 3\)
  • Hitunglah \(E(X)\) dengan menggunakan metode Trapezoida untuk \(n=4\) ,Simpson untuk \(n=4\) dan four Point Gauss Quadrature tanpa menggunakan software apapun. (Boleh diketik ataupun ditulis tangan kemudian difoto)

  • Jika diketahui nilai exact dari\(E(x) = \frac{b\Gamma(1+\frac{3}{a})\Gamma(b)}{\Gamma(1+\frac{1}{a}+b)}\) metode mana yang paling mendekati untuk menghitung nilai \(𝐸(𝑋)\) dengan toleransi 0.0001? Gunakan R

  1. Diketahui pdf (probability density function) dari distirbusi Eksponensial adalah sebagai berikut \[f(x|a,b) = \lambda \exp - \lambda x , \ dimana\ x\in (0,\infty)\]
  • jika diketahui \(𝜆 = 2\). Hitunglah CDF dari distribusi exponensial tersebut untuk \(x = 4\), dengan menggunakan metode Trapezoida, Simpson, Gauss Quadrature dan Monte Carlo dengan R

  • Metode mana yang paling baik? Silahkan tentukan nilai toleransi, \(n\) dan \(m\) sendiri.

Nomor 1

Part A

Metode Trapezoidal

Suatu fungsi \(x \in (0,1)\)

\[f(x|a,b) = ab x^{a-1} (1-x^a)^{b-1}\ ; \ a = 5,\ b = 3 \ \]

maka :

\[ f(x|a,b) = 15 x^{4} (1-x^5)^{2} ; \ x \in (0,1) \] \[ E(x) = \int_{a}^{b}x \ f(x)dx ≈ \int_{0}^{1} 15x^5(1-x^5)^2 dx \]

Dengan nilai \(n = 4\) menggunakan pendekatan Trapezoidal adalah \[ T_{4} = \frac{h}{2}[f(x_{0})+2f(x_{1})+2f(x_{2})+2f(x_{3})+2f(x_{4})]\]

Nilai subinterval : \[ \ h = \frac{b-a}{n} \ = \frac{1-0}{4} \ = \frac{1}{4}\]

Menghitung setiap \(f(xi)\) adalah

  • \(f(x_{0}) = f(0) = 15(0)^5(1-(0)^5)^2 = 0\)

  • \(f(x_{1}) = f(0.25) = 15(0.25)^5(1-(0.25)^5)^2 = 0.014\)

  • \(f(x_{2}) = f(0.5) = 15(0.5)^5(1-(0.5)^5)^2 = 0.4\)

  • \(f(x_{3}) = f(0.75) = 15(0.75)^5(1-(0.75)^5)^2 = 2.07\)

  • \(f(x_{4}) = f(1) = 15(1)^5(1-(1)^5)^2 = 0\)

Sehingga :

\[ T_{4} = \frac{1}{8}[0+2 \ .\ 0 +2 \ .\ 0.014+2 \ .\ 0.4+ \ .\ 2.07 ] = 0.6312\]

Metode Simpson

Diketahui suatu fungsi

\[ f(x|a,b) = 15 x^{4} (1-x^5)^{2} ; \ x \in (0,1) \] \[ E(x) = \int_{a}^{b}x \ f(x)dx ≈ \int_{0}^{1} 15x^5(1-x^5)^2 dx \]

Dengan nilai \(n = 4\) menggunakan pendekatan Simpson adalah \[ S_{4} = \frac{h}{3}[f(x_{0})+4f(x_{1})+2f(x_{2})+4f(x_{3})+f(x_{4})]\]

Nilai subinterval : \[ \ h = \frac{b-a}{n} \ = \frac{1-0}{4} \ = \frac{1}{4}\]

Menghitung setiap \(f(xi)\) adalah

  • \(f(x_{0}) = f(0) = 15(0)^5(1-(0)^5)^2 = 0\)

  • \(f(x_{1}) = f(0.25) = 15(0.25)^5(1-(0.25)^5)^2 = 0.014\)

  • \(f(x_{2}) = f(0.5) = 15(0.5)^5(1-(0.5)^5)^2 = 0.4\)

  • \(f(x_{3}) = f(0.75) = 15(0.75)^5(1-(0.75)^5)^2 = 2.07\)

  • \(f(x_{4}) = f(1) = 15(1)^5(1-(1)^5)^2 = 0\)

Sehingga

\[ S_{4} = \frac{1}{12}[0 +4 \ . \ 0+2 \ .\ 0.014+4 \ .\ 0.4+ \ 0 ] = 0.768 \]

Metode Gauss

Tranformasi domain menjadi \([-1,1]\)

  • \(x = \frac{1}{2}[t(b-a)+a+b] = \frac{1}{2}(t+1)\)

  • \(dx =\frac{1}{2}(b-a) = \frac{1}{2}\)

Sehingga

\[ \int_{0}^{1} 15 x^{5} (1-x^5)^{2} = \int_{-1}^{1} \frac{15}{2} (\frac{1}{2}[t+1])^5(1 - (\frac{1}{2}[t+1]))^5)^2 dt \\ \ \ \ \ ≈ I = C_{1}f(t_{1})+C_2f(t_{2})+C_3f(t_{3})+C_4f(t_{4}) \]

Menentukan nilai koefisien pada batas \([-1,1]\) dapat dilihat pada table gauss Quadrature

Atau dapat menggunakan R

gaussLegendre(n = 4,a = -1,1)
## $x
## [1] -0.8611363 -0.3399810  0.3399810  0.8611363
## 
## $w
## [1] 0.3478548 0.6521452 0.6521452 0.3478548

Setiap nilai t adalah sebagai berikut :

  • \(f(-0.86) = \frac{15}{2}(\frac{1}{2}[(-0.86)+1])^5(1 - (\frac{1}{2}[(-0.86)+1]))^5)^2dt = 0.000051\)

  • \(f(-0.339) = \frac{15}{2}(\frac{1}{2}[(-0.339)+1])^5(1 - (\frac{1}{2}[(-0.339)+1]))^5)^2dt = 0.029\)

  • \(f( \ 0.339) = \frac{15}{2}(\frac{1}{2}[(0.339)+1])^5(1 - (\frac{1}{2}[(0.339)+1]))^5)^2dt = 0.755\)

  • \(f( \ 0.861) = \frac{15}{2}(\frac{1}{2}[(0.861)+1])^5(1 - (\frac{1}{2}[(0.861)+1]))^5)^2dt = 0.47\)

Hasil Nilai I

\[ I = (0.34)f(-0.86)+(0.65)f(-0.339)+(0.65)f(0.339)+(0.347)f(0.861) = 0.6763\]

Metode Pendekatan Terbaik

Nilai exact yang diadapatkan dari fungsi adalah :

\[\int_{0}^{1} 15 x^{5} (1-x^5)^{2} dx = 15[\frac{1}{6}x^6+\frac{2}{11}x^{11}+\frac{1}{16}x^{16} \ ]_{0}^{1} = 0.7102\]

Berdasarkan hasil yang didaptkan dari 3 methode tersebut :

Berdasarkan hasil manual yang dilakukan dapat diambil kesimpulan bahwa metode terbaik adalah metode gauss Quadrature dengan selisih angka yang lebih kecil daripada Trapezoid dan Simppson.

Part B

Diketahui :

\[E(x) = \frac{b\Gamma(1+\frac{3}{a})\Gamma(b)}{\Gamma(1+\frac{1}{a}+b)} \ a = 5 \ dan \ b = 3 \\ = \frac{3 \Gamma(\frac{6}{5})\Gamma(3)}{\Gamma(\frac{21}{5})} = 0.7102\]

Metode Trapezoidal

  • Mendefinisikan fungsi \(f(x)\)
f <- function(x){
  15*x^5*(1-x^5)^2
}

trapezoid(f,0,1,n = 4)
## [1] 0.6312869
exact_value= 0.7102
tol <-  0.0001
err <- 1
n = 4

while(err>tol){
  res_trap <- trapezoid(f,0,1,n = n)
  
  err <- abs(res_trap-exact_value)
  
  cat("n=",n,", result=",res_trap,", error=",err,"\n",sep = "")
  
  n=n+1
  if(n==1000){
    break
  }
  
}
## n=4, result=0.6312869, error=0.07891312
## n=5, result=0.6738123, error=0.03638767
## n=6, result=0.6914928, error=0.01870724
## n=7, result=0.6997126, error=0.01048743
## n=8, result=0.7039057, error=0.006294303
## n=9, result=0.7062116, error=0.003988356
## n=10, result=0.7075597, error=0.002640293
## n=11, result=0.7083885, error=0.001811522
## n=12, result=0.7089199, error=0.001280139
## n=13, result=0.7092729, error=0.0009271148
## n=14, result=0.7095147, error=0.000685349
## n=15, result=0.7096846, error=0.0005153739
## n=16, result=0.7098069, error=0.0003931042
## n=17, result=0.7098966, error=0.0003033616
## n=18, result=0.7099637, error=0.0002363072
## n=19, result=0.7100146, error=0.0001854014
## n=20, result=0.7100538, error=0.0001461994
## n=21, result=0.7100844, error=0.0001156188
## n=22, result=0.7101085, error=9.148331e-05

Metode Simpson

simpson_n(f,0,1,n = 4)
## [1] 0.7683974
exact_value= 0.7102
tol <-  0.0001
err <- 1
n = 4

while(err>tol){
  res_simp <- simpson_n(f,0,1,n = n)
  
  err <- abs(res_simp-exact_value)
  
  cat("n=",n,", result=",res_simp,", error=",err,"\n",sep = "")
  
  n=n+1
  if(n==100){
    break
  }
  
}
## n=4, result=0.7683974, error=0.05819736
## n=5, result=0.7683974, error=0.05819736
## n=6, result=0.7497082, error=0.03950824
## n=7, result=0.7497082, error=0.03950824
## n=8, result=0.728112, error=0.01791197
## n=9, result=0.728112, error=0.01791197
## n=10, result=0.7188088, error=0.008608832
## n=11, result=0.7188088, error=0.008608832
## n=12, result=0.7147289, error=0.004528893
## n=13, result=0.7147289, error=0.004528893
## n=14, result=0.712782, error=0.002582012
## n=15, result=0.712782, error=0.002582012
## n=16, result=0.711774, error=0.001573962
## n=17, result=0.711774, error=0.001573962
## n=18, result=0.7112144, error=0.001014376
## n=19, result=0.7112144, error=0.001014376
## n=20, result=0.7108852, error=0.0006851651
## n=21, result=0.7108852, error=0.0006851651
## n=22, result=0.7106819, error=0.0004818628
## n=23, result=0.7106819, error=0.0004818628
## n=24, result=0.7105511, error=0.0003510819
## n=25, result=0.7105511, error=0.0003510819
## n=26, result=0.710464, error=0.0002639803
## n=27, result=0.710464, error=0.0002639803
## n=28, result=0.7104042, error=0.0002042138
## n=29, result=0.7104042, error=0.0002042138
## n=30, result=0.7103621, error=0.0001621299
## n=31, result=0.7103621, error=0.0001621299
## n=32, result=0.7103318, error=0.0001318198
## n=33, result=0.7103318, error=0.0001318198
## n=34, result=0.7103096, error=0.0001095505
## n=35, result=0.7103096, error=0.0001095505
## n=36, result=0.7102929, error=9.28971e-05

Metode Gauss Quadrature

gL <- gaussLegendre(n = 4,a = -1,1)
Ci <- gL$w
xi <- gL$x

I <- sum(Ci * f(xi))
I
## [1] -4.68105
exact_value=0.7102
tol <-  0.00001
err <- 1
n = 4

while(err>tol){
  
  gL <- gaussLegendre(n = n,a = 0,1)

 Ci <- gL$w 
 xi <- gL$x 
  
  res_gl <- sum(Ci * f(xi))

  err <- abs(res_gl-exact_value)
  
  cat("n=",n,", result=",res_gl,", error=",err,"\n",sep = "")
  
  n=n+1
  if(n==50){
    break
  }
  
}
## n=4, result=0.6792999, error=0.03090008
## n=5, result=0.707375, error=0.002824979
## n=6, result=0.7101422, error=5.777726e-05
## n=7, result=0.7102266, error=2.663598e-05
## n=8, result=0.7102273, error=2.727273e-05
## n=9, result=0.7102273, error=2.727273e-05
## n=10, result=0.7102273, error=2.727273e-05
## n=11, result=0.7102273, error=2.727273e-05
## n=12, result=0.7102273, error=2.727273e-05
## n=13, result=0.7102273, error=2.727273e-05
## n=14, result=0.7102273, error=2.727273e-05
## n=15, result=0.7102273, error=2.727273e-05
## n=16, result=0.7102273, error=2.727273e-05
## n=17, result=0.7102273, error=2.727273e-05
## n=18, result=0.7102273, error=2.727273e-05
## n=19, result=0.7102273, error=2.727273e-05
## n=20, result=0.7102273, error=2.727273e-05
## n=21, result=0.7102273, error=2.727273e-05
## n=22, result=0.7102273, error=2.727273e-05
## n=23, result=0.7102273, error=2.727273e-05
## n=24, result=0.7102273, error=2.727273e-05
## n=25, result=0.7102273, error=2.727273e-05
## n=26, result=0.7102273, error=2.727273e-05
## n=27, result=0.7102273, error=2.727273e-05
## n=28, result=0.7102273, error=2.727273e-05
## n=29, result=0.7102273, error=2.727273e-05
## n=30, result=0.7102273, error=2.727273e-05
## n=31, result=0.7102273, error=2.727273e-05
## n=32, result=0.7102273, error=2.727273e-05
## n=33, result=0.7102273, error=2.727273e-05
## n=34, result=0.7102273, error=2.727273e-05
## n=35, result=0.7102273, error=2.727273e-05
## n=36, result=0.7102273, error=2.727273e-05
## n=37, result=0.7102273, error=2.727273e-05
## n=38, result=0.7102273, error=2.727273e-05
## n=39, result=0.7102273, error=2.727273e-05
## n=40, result=0.7102273, error=2.727273e-05
## n=41, result=0.7102273, error=2.727273e-05
## n=42, result=0.7102273, error=2.727273e-05
## n=43, result=0.7102273, error=2.727273e-05
## n=44, result=0.7102273, error=2.727273e-05
## n=45, result=0.7102273, error=2.727273e-05
## n=46, result=0.7102273, error=2.727273e-05
## n=47, result=0.7102273, error=2.727273e-05
## n=48, result=0.7102273, error=2.727273e-05
## n=49, result=0.7102273, error=2.727273e-05

Metode Terbaik

Metode terbaik yang dilihat dari eror yang minimum adalah dengan menggunakan metode Gauss Quadrature dengan nilai 0.67 dan error 0.0309 yang juga memiliki nilai yang paling dekat dengan nilai exactnya yaitu 0.712

Nomor 2

CDF dari fungsi

\[\int_{0}^{\infty} f(x|a,b) =\int_{0}^{\infty} \lambda \exp ^{- \lambda x} dx\ ; \ \lambda = 2 \ dan \ n = 4\] \[\int_{0}^{\infty} 2 \exp ^{- 2x} dx\]

Nilai exact dari

\[\int_{0}^{4} 2 \exp ^{- 2x} dx = 0.99966\]

Metode Trapezoid

Dengan nilai \(n = 4\) menggunakan pendekatan Trapezoidal adalah

\[ T_{4} = \frac{h}{2}[f(x_{0})+2f(x_{1})+2f(x_{2})+2f(x_{3})+2f(x_{4})]\]

Nilai subinterval : \[\ h = \frac{b-a}{n} \ = \frac{4-0}{4} \ = 1 \]

Menghitung setiap \(f(xi)\) adalah

  • \(f(x_{0}) = f(0) = 15(0)^5(1-(0)^5)^2 = 2\)

  • \(f(x_{1}) = f(1) = 15(1)^5(1-(1)^5)^2 = 0.27\)

  • \(f(x_{2}) = f(2) = 15(2)^5(1-(2)^5)^2 = 0.036\)

  • \(f(x_{3}) = f(3) = 15(3)^5(1-(3)^5)^2 = 0.004\)

  • \(f(x_{4}) = f(4) = 15(4)^5(1-(4)^5)^2 = 0.0006\)

Sehingga :

\[ T_{4} = \frac{1}{2}[ 2+2 \ .\ 0.27 +2 \ .\ 0.036+2 \ .\ 0.004+ 0.0006] = 1.31\]

Trapezoid di R

f <- function(x){
  2*exp(2*-x)
}

trapezoid(f,0,4,n = 4)
## [1] 1.312595
exact_value= 0.99966
tol <-  0.0001
err <- 0.05
n = 4

while(err>tol){
  res_trap <- trapezoid(f,0,4,n = n)
  
  err <- abs(res_trap-exact_value)
  
  cat("n=",n,", result=",res_trap,", error=",err,"\n",sep = "")
  
  n=n+1
  if(n==100){
    break
  }
  
}
## n=4, result=1.312595, error=0.3129348
## n=5, result=1.204348, error=0.2046884
## n=6, result=1.143553, error=0.1438927
## n=7, result=1.106174, error=0.1065143
## n=8, result=1.081614, error=0.08195374
## n=9, result=1.064635, error=0.06497528
## n=10, result=1.05242, error=0.05275981
## n=11, result=1.043343, error=0.04368329
## n=12, result=1.036418, error=0.03675776
## n=13, result=1.031015, error=0.0313548
## n=14, result=1.026719, error=0.0270594
## n=15, result=1.023249, error=0.02358871
## n=16, result=1.020405, error=0.02074462
## n=17, result=1.018045, error=0.01838505
## n=18, result=1.016066, error=0.016406
## n=19, result=1.01439, error=0.0147299
## n=20, result=1.012958, error=0.01329799
## n=21, result=1.011725, error=0.01206507
## n=22, result=1.010656, error=0.01099592
## n=23, result=1.009723, error=0.01006281
## n=24, result=1.008904, error=0.009243595
## n=25, result=1.00818, error=0.008520485
## n=26, result=1.007539, error=0.00787902
## n=27, result=1.006967, error=0.007307362
## n=28, result=1.006456, error=0.006795742
## n=29, result=1.005996, error=0.006336041
## n=30, result=1.005581, error=0.005921466
## n=31, result=1.005206, error=0.005546302
## n=32, result=1.004866, error=0.005205708
## n=33, result=1.004556, error=0.004895565
## n=34, result=1.004272, error=0.00461235
## n=35, result=1.004013, error=0.004353033
## n=36, result=1.003775, error=0.004115001
## n=37, result=1.003556, error=0.003895987
## n=38, result=1.003354, error=0.003694018
## n=39, result=1.003167, error=0.00350737
## n=40, result=1.002995, error=0.003334533
## n=41, result=1.002834, error=0.003174177
## n=42, result=1.002685, error=0.003025129
## n=43, result=1.002546, error=0.00288635
## n=44, result=1.002417, error=0.002756918
## n=45, result=1.002296, error=0.002636013
## n=46, result=1.002183, error=0.002522902
## n=47, result=1.002077, error=0.002416928
## n=48, result=1.001978, error=0.002317505
## n=49, result=1.001884, error=0.002224103
## n=50, result=1.001796, error=0.002136246
## n=51, result=1.001714, error=0.002053503
## n=52, result=1.001635, error=0.001975485
## n=53, result=1.001562, error=0.001901839
## n=54, result=1.001492, error=0.001832245
## n=55, result=1.001426, error=0.00176641
## n=56, result=1.001364, error=0.001704069
## n=57, result=1.001305, error=0.001644979
## n=58, result=1.001249, error=0.001588917
## n=59, result=1.001196, error=0.001535681
## n=60, result=1.001145, error=0.001485083
## n=61, result=1.001097, error=0.001436952
## n=62, result=1.001051, error=0.001391131
## n=63, result=1.001007, error=0.001347473
## n=64, result=1.000966, error=0.001305845
## n=65, result=1.000926, error=0.001266123
## n=66, result=1.000888, error=0.001228192
## n=67, result=1.000852, error=0.001191946
## n=68, result=1.000817, error=0.001157287
## n=69, result=1.000784, error=0.001124124
## n=70, result=1.000752, error=0.001092371
## n=71, result=1.000722, error=0.00106195
## n=72, result=1.000693, error=0.001032787
## n=73, result=1.000665, error=0.001004815
## n=74, result=1.000638, error=0.000977968
## n=75, result=1.000612, error=0.0009521878
## n=76, result=1.000587, error=0.0009274182
## n=77, result=1.000564, error=0.0009036072
## n=78, result=1.000541, error=0.000880706
## n=79, result=1.000519, error=0.0008586686
## n=80, result=1.000497, error=0.0008374523
## n=81, result=1.000477, error=0.0008170168
## n=82, result=1.000457, error=0.0007973242
## n=83, result=1.000438, error=0.0007783389
## n=84, result=1.00042, error=0.0007600275
## n=85, result=1.000402, error=0.0007423584
## n=86, result=1.000385, error=0.000725302
## n=87, result=1.000369, error=0.0007088303
## n=88, result=1.000353, error=0.0006929168
## n=89, result=1.000338, error=0.0006775365
## n=90, result=1.000323, error=0.000662666
## n=91, result=1.000308, error=0.000648283
## n=92, result=1.000294, error=0.0006343663
## n=93, result=1.000281, error=0.0006208961
## n=94, result=1.000268, error=0.0006078534
## n=95, result=1.000255, error=0.0005952204
## n=96, result=1.000243, error=0.00058298
## n=97, result=1.000231, error=0.0005711162
## n=98, result=1.00022, error=0.0005596136
## n=99, result=1.000208, error=0.0005484578

Metode Simpson

Dengan nilai \(n = 4\) menggunakan pendekatan Simpson adalah \[ S_{4} = \frac{h}{3}[f(x_{0})+4f(x_{1})+2f(x_{2})+4f(x_{3})+f(x_{4})]\]

Nilai subinterval : \[\ h = \frac{b-a}{n} \ = \frac{4-0}{4} \ = 1 \]

Menghitung setiap \(f(xi)\) adalah

  • \(f(x_{0}) = f(0) = 15(0)^5(1-(0)^5)^2 = 2\)

  • \(f(x_{1}) = f(1) = 15(1)^5(1-(1)^5)^2 = 0.27\)

  • \(f(x_{2}) = f(2) = 15(2)^5(1-(2)^5)^2 = 0.036\)

  • \(f(x_{3}) = f(3) = 15(3)^5(1-(3)^5)^2 = 0.004\)

  • \(f(x_{4}) = f(4) = 15(4)^5(1-(4)^5)^2 = 0.0006\)

Sehingga

\[ S_{4} = \frac{1}{3}[ 2+4 \ .\ 0.27 +2 \ .\ 0.036+4\ .\ 0.004+ 0.0006] = 1.058\]

Simpson di R

simpson_n(f,0,4,n = 4)
## [1] 1.058815
exact_value= 0.99966
tol <-  0.0001
err <- 1
n = 4

while(err>tol){
  res_simp <- simpson_n(f,0,4,n = n)
  
  err <- abs(res_simp-exact_value)
  
  cat("n=",n,", result=",res_simp,", error=",err,"\n",sep = "")
  
  n=n+1
  if(n==100){
    break
  }
  
}
## n=4, result=1.058815, error=0.05915525
## n=5, result=1.058815, error=0.05915525
## n=6, result=1.014089, error=0.01442885
## n=7, result=1.014089, error=0.01442885
## n=8, result=1.00462, error=0.004960055
## n=9, result=1.00462, error=0.004960055
## n=10, result=1.001777, error=0.002116944
## n=11, result=1.001777, error=0.002116944
## n=12, result=1.000706, error=0.00104611
## n=13, result=1.000706, error=0.00104611
## n=14, result=1.000234, error=0.0005744298
## n=15, result=1.000234, error=0.0005744298
## n=16, result=1.000002, error=0.000341577
## n=17, result=1.000002, error=0.000341577
## n=18, result=0.9998762, error=0.0002162416
## n=19, result=0.9998762, error=0.0002162416
## n=20, result=0.999804, error=0.0001440486
## n=21, result=0.999804, error=0.0001440486
## n=22, result=0.9997601, error=0.0001001368
## n=23, result=0.9997601, error=0.0001001368
## n=24, result=0.9997322, error=7.2205e-05

Gauss Quadrature

Tranformasi domain menjadi \([-1,1]\)

  • \(x = \frac{1}{2}[t(b-a)+a+b] = 2(t+1)\)

  • \(dx =\frac{1}{2}(b-a) = 2\)

Sehingga

\[\int_{0}^{4}2exp^{-2x}dx = \int_{0}^{4}4exp^{-4(t+1)}dt ≈ I = C_{1}f(t_{1})+C_2f(t_{2})+C_3f(t_{3})+C_4f(t_{4}) \]

Menentukan nilai koefisien pada batas \([-1,1]\) dapat dilihat pada table gauss Quadrature

Setiap nilai \(ti\) adalah

  • \(f(-0.861) = 4exp^{-4(-0.861+1)} = 2.293\)

  • \(f(-0.339) = 4exp^{-4(-0.339+1)} = 0.284\)

  • \(f( \ 0.339) = 4exp^{-4(0.339+1)} = 0.018\)

  • \(f( \ 0.86) = 4exp^{-4(0.86+1)} = 0.002\)

Hasil Nilai I

\[ I = (0.34)f(-0.86)+(0.65)f(-0.339)+(0.65)f(0.339)+(0.347)f(0.861) = 0.9963\]

Gauss Quadrature

gL <- gaussLegendre(n = 4,a = -1,1)
Ci <- gL$w
xi <- gL$x

I <- sum(Ci * f(xi))
I
## [1] 7.253558
exact_value= 0.99966
tol <-  0.00001
err <- 1
n = 4

while(err>tol){
  
  gL <- gaussLegendre(n = n,a = 0,4)

 Ci <- gL$w 
 xi <- gL$x 
  
  res_gl <- sum(Ci * f(xi))

  err <- abs(res_gl-exact_value)
  
  cat("n=",n,", result=",res_gl,", error=",err,"\n",sep = "")
  
  n=n+1
  if(n==100){
    break
  }
  
}
## n=4, result=0.9976267, error=0.002033306
## n=5, result=0.9995785, error=8.14847e-05
## n=6, result=0.999662, error=2.028041e-06

Monte Carlo

f1 <- function(x){
  2*exp(2*-x)
}

set.seed(123)
mcf1 <- mc_integral(f1,a=0,b=4,m = 1000)
mcf1
## [1] 1.001826

Metode terbaik

Pendekatan yang paling baik pada fungsi \(2exp^{-2x}\) adalah metode Monte Carlo dengan nilai 1 yang juga memiliki nilai yang paling dekat dengan nilai exactnya yaitu 0.99966

Referensi

  • Dito,Gerry.2021.Metode Integral Numerik.ttps://gerrydito.github.io/Metode-Integral-Numerik-dengan-R/

  • Rosidi,Moh.Diferensial dan integrasi Numerik.https://bookdown.org/moh_rosidi2610/Metode_Numerik/diffinteg.html