Package
## 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
- 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)
}- 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)
}- Metode Gauss (Adaptive) quadrature
belum tersedia
- 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
- Metode Trapezoidal menggunakan fungsi
trapzfundari packagepracma - Metode Simpson belum ada fungsi secara khusus
- Metode Gaussian Quadrature menggunakan fungsi
integrate - Metode Monte Carlo belum ada fungsi secara khusus.
Soal dan Pembahasan
- 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:
- 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:
- Menggunakan R
mendefinisikan fungsi \(f(x)\)
Menghitung integral menggunakan trapezoid
## [1] 1.570796
- 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:
- 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
- Menggunakan R
mendefinisikan fungsi \(f(x)\)
Menghitung integral menggunakan metode simpson
## [1] 14.85549
- 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
- Dengan R
mendefinisikan fungsi \(f(t)\)
Legendre order 4
Menghitung integral berdasarkan gaussian quadratur
## [1] 0.8841359
- 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