Package

library(pracma)
## Warning: package 'pracma' was built under R version 4.4.1
library(gaussquad)
## Warning: package 'gaussquad' was built under R version 4.4.1
## Loading required package: orthopolynom
## Warning: package 'orthopolynom' was built under R version 4.4.1

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

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

3. Metode Gauss (Adaptive) quadrature

belum tersedia

4. 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

Soal Nomor 1

Gunakan metode trapezoidal untuk mengintegralkan fungsi berikut untuk n=6, dengan \[\int \limits_{0}^{\pi}{sin(x)^2} \, dx\]

  1. Menggunakan Tangan b. Menggunakan Program di R

Jawaban

a. Menggunakan Tangan

Diketahui \[f({x})={sin}^{2}{x} , {a}=0, {b}={\pi}.\] Panjang setiap sub interval adalah sebagai berikut: \[{\Delta}{x}=\frac{b-a}{n}=\frac{\pi}{6},\] Menghitung fungsi \(f{x}\) pada setiap \({x_i}\) \[{f}({x_0})={f}(0)={sin}^{2}(0)=0^{2}=0;\] \[{f}({x_1})={f}(\frac{\pi}{6})={sin}^{2}\frac{\pi}{6}=(\frac{1}{2})^2=\frac{1}{4};\] \[{f}({x_2})={f}(\frac{2\pi}{6})={sin}^{2}\frac{\pi}{3}=(\frac{\sqrt{3}}{2})^2=\frac{3}{4};\] \[{f}({x_3})={f}(\frac{3\pi}{6})={sin}^{2}\frac{\pi}{2}={1}^2=1;\] \[{f}({x_4})={f}(\frac{4\pi}{6})={sin}^{2}\frac{2\pi}{3}=(\frac{\sqrt{3}}{2})^2=\frac{3}{4};\] \[{f}({x_5})={f}(\frac{5\pi}{6})={sin}^{2}\frac{5\pi}{6}=(\frac{1}{2})^2=\frac{1}{4};\] \[{f}({x_6})={f}({\pi})={sin}^{2}{\pi}=0^2=0.\] Kemudian berdasarkan metode trapezoidal berikut adalah hasil akhirnya

\[\int \limits_{0}^{\pi}{sin^2x} \, dx {\approx}{T_6} = \frac{\Delta{x}}{2}[{f}({x_0})+{2}{f}({x_1})+...+{2}{f}({x_5})+{f}({x_6})]\] \[ = \frac{\pi}{12}[0+2\cdot\frac{1}{4}+2\cdot\frac{3}{4}+2\cdot{1}+2\cdot\frac{3}{4}+2\cdot\frac{1}{4}+0]\] \[ = \frac{\pi}{12}[\frac{1}{2}+\frac{3}{2}+2+\frac{3}{2}+\frac{1}{2}]=\frac{\pi}{12}{\cdot}\frac{12}{2}=\frac{\pi}{2}\]

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

\[\int \limits_{0}^{\pi}{sin^2x} \, dx = \frac{1}{2}\int \limits_{0}^{\pi}({1-cos{2x}}) \, dx=\frac{1}{2}\left[ {x}-\frac{sin2x}{2} \right]\Bigr|_{0}^{\pi}=\frac{1}{2}\left[ ({x}-0)-0 \right]=\frac{\pi}{2}.\]

b. 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

Soal Nomor 2

Gunakan metode simpson untuk mengintegralkan fungsi berikut untuk n=4, dengan

\[\int \limits_{0}^{8}\sqrt({x}) \, dx\]

  1. Menggunakan Tangan b. Menggunakan Program di R

Jawaban

a. Menggunakan tangan

Panjang setiap sub interval adalah sebagai berikut: \[{\Delta}{x}=\frac{b-a}{n}=\frac{8-0}{4}=2\] dan \[{x_i}=\left\{0,2,4,6,8\right\}\] Menghitung fungsi untuk setiap titik xi:

\[{f}({x_0})={f}({0})=\sqrt0=0;\] \[{f}({x_1})={f}({2})=\sqrt{2};\] \[{f}({x_2})={f}({4})=\sqrt{4}=2;\] \[{f}({x_3})={f}({6})=\sqrt{6};\] \[{f}({x_4})={f}({8})=2\sqrt{2}.\]

Menggantikan semua nilai-nilai diatas ke dalam rumus Simpson

\[\int \limits_{0}^{8}\sqrt({x}) \, dx {\approx}\frac{\Delta{x}}{3}[f(x_0)+4f(x_1)+2f(x_2)+4f(x_3)+f(x_4)]\] \[=\frac{2}{3}[0+4{\cdot}\sqrt2+2\cdot 2+4\cdot \sqrt{6}+2\sqrt{2}]=\frac{2}{3}[6\sqrt2+4+4\sqrt{6}]{\approx}14.86\]

Solusi exact dari integral ini adalah sebagai berikut

\[\int \limits_{0}^{8}\sqrt({x}) \, dx =\int \limits_{0}^{8}{x}^\frac{1}{2} \, dx=\left[ \frac{{x}^\frac{3}{2}}{\frac{3}{2}} \right]\Bigr|_{0}^{8}=\frac{2}{3}[\sqrt{x}^3]\Bigr|_{0}^{8}=\frac{2}{3}\sqrt{8}^3=\frac{2}{3}\sqrt{2}^9=\frac{2}{3}\cdot{16}\sqrt{2}=\frac{32\sqrt{2}}{3} {\approx}15.08\]

b. 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

Soal Nomor 3

Gunakan metode four-point gaussian quadratur untuk mengintegralkan fungsi berikut

\[\int \limits_{0}^{3}exp({-x^2}) \, dx\]

a. Dengan Tangan

Rumus Umum

\[x=\frac{1}{2}[t(b-a)+a+b]\] dan \[dx=\frac{1}{2}(b-a)dt\] Lalu ubah dalam bentuk: \[\int \limits_{a }^{b }{f(x)} \, dx = \int \limits_{-1}^{1}{f(\frac{(b-a)t+a+b}{2})\frac{(b-a)}{2}} \, dt\]

Langkah pengerjaanya adalah sebagai berikut:

a=0 dan b=3

\[x=\frac{1}{2}[t(3-0)+0+3]=\frac{3}{2}(t+1)\] dan \[dx=\frac{1}{2}(3-0)dt=\frac{3}{2}dt\] Sehingga disubstitusi: \[\int \limits_{0}^{3}e^{-x^2} \, dx=\int \limits_{-1}^{1}f(t) \, dt=\int \limits_{-1}^{1}\frac{3}{2}e^{-[\frac{3}{2}(t+1)]^2} \, dt\]

b. 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

Soal Nomor 4

Gunakan metode Monte Carlo untuk mengintegralkan fungsi berikut

\[\int \limits_{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}\) !

fmc <- function(x){
  asin(sqrt(x))
}
mc_integral(fmc, 0, 1/2,m=1000)  
## [1] 0.2482344