Soal 1
Diketahui pdf (probability density function) dari distirbusi Kumaraswamy adalah sebagai berikut:
\[f\left ( x\mid a,b \right )=abx^{a-1}\left ( 1-x^{\left ( a \right )} \right )^{b-1}\]
dimana \(x\in \left ( 0,1 \right )\). Jika diketahui \(a=5\) dan \(b=3\).
Hitunglah E(X) dengan menggunakan metode
Trapezoidauntuk n=4,Simpsonuntuk n=4 danfour-point Gauss Quadraturetanpa menggunakan software apapun.Jika diketahui nilai exact dari \(E\left ( X \right )=\frac{b\Gamma \left ( 1+\frac{1}{a} \right )\Gamma \left ( b \right )}{\Gamma \left ( 1+\frac{1}{a}+b \right )}\) , metode mana yang paling mendekati untuk menghitung nilai \(E(𝑋)\) dengan toleransi 0.0001? Gunakan R.
Soal 2
Diketahui pdf (probability density function) dari distribusi Eksponensial adalah sebagai berikut:
\[f\left ( x\mid a,b \right )=\lambda e^{-\lambda x}\]
dimana \(x\in \left ( 0,\infty \right )\).
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.
Jawaban Soal 1
No 1A
Metode Trapezoida Untuk n=4
Diketahui
\[f\left ( x\mid a,b \right )=abx^{a-1}\left ( 1-x^{\left ( a \right )} \right )^{b-1}, a=5, b=3\]
Maka
\[f\left ( x\mid 5,3 \right )=5 \cdot 3 \cdot x^{5-1}\left ( 1-x^{\left ( 5 \right )} \right )^{3-1}\]
\[f\left ( x\mid 5,3 \right )=15 x^{4}\left ( 1-x^{\left ( 5 \right )} \right )^{2}\]
Nilai E(X)
\[E\left ( X \right )=x \cdot f\left ( x\mid 5,3 \right )\]
\[E\left ( X \right )=x \cdot 15 x^{4}\left ( 1-x^{\left ( 5 \right )} \right )^{2}\]
\[E\left ( X \right )=15 x^{5}\left ( 1-x^{\left ( 5 \right )} \right )^{2}\]
Panjang setiap sub interval adalah sebagai berikut :
\[h=\frac{b-a}{n}=\frac{1-0}{4}=\frac{1}{4}\]
Karena \(n=4\) maka bentuk dari metode trapezoidal adalah :
\[T_{4}=\frac{h}{2}\left [ E\left ( X_{0} \right )+2E\left ( X_{1} \right )+2E\left ( X_{2} \right )+2E\left ( X_{3} \right )+E\left ( X_{4} \right ) \right ]\]
Menghitung fungsi \(E(x)\) untuk setiap \(x_{i}\) :
\[E\left ( X_{0} \right )=E\left ( 0 \right )=15 \cdot 0^{5}\left ( 1-0^{\left ( 5 \right )} \right )^{2}=0\]
\[E\left ( X_{1} \right )=E\left ( \frac{1}{4} \right )=15 \cdot \frac{1}{4}^{5}\left ( 1-\frac{1}{4}^{\left ( 5 \right )} \right )^{2}=0.014619841\]
\[E\left ( X_{2} \right )=E\left ( \frac{2}{4} \right )=15 \cdot \frac{2}{4}^{5}\left ( 1-\frac{2}{4}^{\left ( 5 \right )} \right )^{2}=0.439910889\]
\[E\left ( X_{3} \right )=E\left ( \frac{3}{4} \right )=15 \cdot \frac{3}{4}^{5}\left ( 1-\frac{3}{4}^{\left ( 5 \right )} \right )^{2}=2.070616786\]
\[E\left ( X_{4} \right )=E\left ( 1 \right )=15 \cdot 1^{5}\left ( 1-1^{\left ( 5 \right )} \right )^{2}=0\]
Dari perhitungan nilai \(E(X)\) diperoleh nilai \(T_{4}\) :
\[T_{4}=\frac{\left ( \frac{1}{4} \right )}{2}\left [ 0 + 2 \cdot \left ( 0.014619841 \right ) + 2 \cdot \left ( 0.439910889 \right ) + 2 \cdot \left ( 2.070616786 \right ) + 0 \right ]\]
\[T_{4}=\frac{1}{8}\left [ 5.050295033 \right ]\]
\[T_{4}=0.631286879\]
Sehingga,
\[\int_{0}^{1}x\cdot15 x^{4}\left ( 1-x^{\left ( 5 \right )} \right )^{2}\approx T_{4}=0.631286879\]
Metode Simpson Untuk n=4
Diketahui
\[f\left ( x\mid a,b \right )=abx^{a-1}\left ( 1-x^{\left ( a \right )} \right )^{b-1}, a=5, b=3\]
Maka
\[f\left ( x\mid 5,3 \right )=5 \cdot 3 \cdot x^{5-1}\left ( 1-x^{\left ( 5 \right )} \right )^{3-1}\]
\[f\left ( x\mid 5,3 \right )=15 x^{4}\left ( 1-x^{\left ( 5 \right )} \right )^{2}\]
Panjang setiap sub interval adalah sebagai berikut :
\[h=\frac{b-a}{n}=\frac{1-0}{4}=\frac{1}{4}\]
Karena \(n=4\) maka bentuk dari metode simpson adalah :
\[S_{4}=\frac{h}{3}\left [ E\left ( X_{0} \right )+4E\left ( X_{1} \right )+2E\left ( X_{2} \right )+4E\left ( X_{3} \right )+E\left ( X_{4} \right ) \right ]\]
Menghitung fungsi \(E(x)\) untuk setiap \(x_{i}\) :
\[E\left ( X_{0} \right )=E\left ( 0 \right )=15 \cdot 0^{5}\left ( 1-0^{\left ( 5 \right )} \right )^{2}=0\]
\[E\left ( X_{1} \right )=E\left ( \frac{1}{4} \right )=15 \cdot \frac{1}{4}^{5}\left ( 1-\frac{1}{4}^{\left ( 5 \right )} \right )^{2}=0.014619841\]
\[E\left ( X_{2} \right )=E\left ( \frac{2}{4} \right )=15 \cdot \frac{2}{4}^{5}\left ( 1-\frac{2}{4}^{\left ( 5 \right )} \right )^{2}=0.439910889\]
\[E\left ( X_{3} \right )=E\left ( \frac{3}{4} \right )=15 \cdot \frac{3}{4}^{5}\left ( 1-\frac{3}{4}^{\left ( 5 \right )} \right )^{2}=2.070616786\]
\[E\left ( X_{4} \right )=E\left ( 1 \right )=15 \cdot 1^{5}\left ( 1-1^{\left ( 5 \right )} \right )^{2}=0\]
Dari perhitungan nilai \(E(X)\) diperoleh nilai \(T_{4}\) :
\[S_{4}=\frac{\left ( \frac{1}{4} \right )}{3}\left [ 0 + 4 \cdot \left ( 0.014619841 \right ) + 2 \cdot \left ( 0.439910889 \right ) + 4 \cdot \left ( 2.070616786 \right ) + 0 \right ]\]
\[S_{4}=\frac{1}{12}\left [ 9.220768288 \right ]\]
\[S_{4}=0.768397357\]
Sehingga,
\[\int_{0}^{1}15 x^{5}\left ( 1-x^{\left ( 5 \right )} \right )^{2}\approx S_{4}=0.768397357\]
Metode Metode four-point Gauss Quadrature Dengan n=4
Diketahui
\[f\left ( x\mid a,b \right )=abx^{a-1}\left ( 1-x^{\left ( a \right )} \right )^{b-1}, a=5, b=3\]
Maka
\[f\left ( x\mid 5,3 \right )=5 \cdot 3 \cdot x^{5-1}\left ( 1-x^{\left ( 5 \right )} \right )^{3-1}\]
\[f\left ( x\mid 5,3 \right )=15 x^{4}\left ( 1-x^{\left ( 5 \right )} \right )^{2}\]
Karena pada soal yang diinginkan adalah metode four-point gaussian quadratur, berarti nilai n=4. Berdasarkan tabel gaussian quadratur nilai-nilai koefisien dan titik gauss adalah sebagai berikut:
| n | Koefien Ci | Titik Gauss xi |
|---|---|---|
| 4 | \(C_{1} = 0.3478548\) | \(x_{1} = -0.861136311\) |
| \(C_{2} = 0.6521452\) | \(x_{2} = -0.339981043\) | |
| \(C_{3} = 0.6521452\) | \(x_{3} = 0.339981043\) | |
| \(C_{4} = 0.3478548\) | \(x_{4} = 0.861136311\) |
Langkah 1
Sebelum kita menggunakan nilai-nilai koefisien dan titik gauss, perlu dilakukan transformasi sehingga domain integral menjadi \([−1,1]\).
\[x=\left ( \frac{t(b-a)+a+b}{2} \right )\]
\[x=\left ( \frac{t(1-0)+1+0}{2} \right )\]
\[x=\left ( \frac{t+1}{2} \right )\]
dan
\[dx=\frac{b-a}{2}dt\]
\[dx=\frac{1-0}{2}dt\]
\[dx=\frac{1}{2}dt\]
Sehingga integralnya menjadi
\[\int_{0}^{1}15 x^{5}\left ( 1-x^{\left ( 5 \right )} \right )^{2}dx=\int_{-1}^{1}15 \left ( \frac{t+1}{2} \right )^{5}\left ( 1-\left ( \frac{t+1}{2} \right )^{\left ( 5 \right )} \right )^{2}\frac{1}{2}dt\]
Langkah 2
Kemudian, kita menggunakan nilai-nilai koefisien dan titik gauss saat \(n=4\)
\[\int_{-1}^{1}15 \left ( \frac{t+1}{2} \right )^{5}\left ( 1-\left ( \frac{t+1}{2} \right )^{\left ( 5 \right )} \right )^{2}\frac{1}{2}dt\approx I\]
\[I=C_{1}E\left ( t_{1} \right )+C_{2}E\left ( t_{2} \right )+C_{3}E\left ( t_{3} \right )+C_{4}E\left ( t_{4} \right )\]
\[I= 0.3478548E(-0.861136311) +0.6521452E( -0.339981043)+0.6521452E( 0.339981043)+0.3478548E( 0.861136311)\]
Menghitung fungsi \(E(x)\) untuk setiap \(x_{i}\) :
\[E\left ( -0.861136311 \right )=\frac{15}{2} \left ( \frac{-0.861136311+1}{2} \right )^{5}\left ( 1-\left ( \frac{-0.861136311+1}{2} \right )^{\left ( 5 \right )} \right )^{2} =1.21019\cdot10^{-5} \]
\[E\left ( -0.339981043 \right )=\frac{15}{2} \left ( \frac{-0.339981043+1}{2} \right )^{5}\left ( 1-\left ( \frac{-0.339981043+1}{2} \right )^{\left ( 5 \right )} \right )^{2} =0.029126407\]
\[E\left ( 0.339981043 \right )=\frac{15}{2} \left ( \frac{0.339981043+1}{2} \right )^{5}\left ( 1-\left ( \frac{0.339981043+1}{2} \right )^{\left ( 5 \right )} \right )^{2} =0.757589241\]
\[E\left ( 0.861136311 \right )=\frac{15}{2} \left ( \frac{0.861136311+1}{2} \right )^{5}\left ( 1-\left ( \frac{0.861136311+1}{2} \right )^{\left ( 5 \right )} \right )^{2} =0.477908858\]
Sehingga,
\[I= 0.3478548 \cdot 1.21019 \cdot 10^{-5} +0.6521452 \cdot 0.029126407 +0.6521452 \cdot 0.757589241+0.3478548 \cdot 0.477908858\] \[I = 0.679299934\]
Diperoleh hasil,
\[\int_{0}^{1}x \cdot 15 x^{4}\left ( 1-x^{\left ( 5 \right )} \right )^{2}dx\approx I=0.679299934\]
No 1B
Nilai Exact
a <- 5
b <- 3
E <- (b*gamma(1+(1/a))*gamma(b))/(gamma(1+(1/a)+b))
E## [1] 0.7102273
Fungsi E(x)
EX <- function(x){
x*a*b*x^(a-1)*(1-x^(a))^(b-1)
} Metode Trapezoida
Integral menggunakan fungsi oleh user-defined function
trapezoid <- function(ftn, a, b, n = 100) {
h <- (b-a)/n
h
x.vec <- seq(a, b, by = h)
f.vec <- sapply(x.vec, EX) # ftn(x.vec)
Trap <- h*(f.vec[1]/2 + sum(f.vec[2:n]) + f.vec[n+1]/2)
return(Trap)
}Menghitung integral menggunakan fungsi trapezoid
trapezoid(EX,0,1,n = 4)## [1] 0.6312869
Menggunakan R fungsi trapzfun dari package pracma
library(pracma)trapzfun(EX,0,1,maxit = 4)## $value
## [1] 0.7098069
##
## $iter
## [1] 4
##
## $rel.err
## [1] 0.005901199
Menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.0001
exact_value=0.7102273
tol <- 0.0001
err <- 1
n = 4
while(err>tol){
res_trap <- trapezoid(EX,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.07894042
## n=5, result=0.6738123, error=0.03641497
## n=6, result=0.6914928, error=0.01873454
## n=7, result=0.6997126, error=0.01051473
## n=8, result=0.7039057, error=0.006321603
## n=9, result=0.7062116, error=0.004015656
## n=10, result=0.7075597, error=0.002667593
## n=11, result=0.7083885, error=0.001838822
## n=12, result=0.7089199, error=0.001307439
## n=13, result=0.7092729, error=0.0009544148
## n=14, result=0.7095147, error=0.000712649
## n=15, result=0.7096846, error=0.0005426739
## n=16, result=0.7098069, error=0.0004204042
## n=17, result=0.7098966, error=0.0003306616
## n=18, result=0.7099637, error=0.0002636072
## n=19, result=0.7100146, error=0.0002127014
## n=20, result=0.7100538, error=0.0001734994
## n=21, result=0.7100844, error=0.0001429188
## n=22, result=0.7101085, error=0.0001187833
## n=23, result=0.7101278, error=9.953088e-05
Metode Simpson
Berikut adalah user-defined function untuk 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)
}Menghitung integral menggunakan metode simpson
simpson_n(EX,0,1,n = 4)## [1] 0.7683974
Menghitung hasil integral mendekati hasil exact-nya dengan toleransi 0.0001
exact_value=0.7102273
tol <- 0.0001
err <- 1
n = 4
while(err>tol){
res_simp <- simpson_n(EX,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==1000){
break
}
}## n=4, result=0.7683974, error=0.05817006
## n=5, result=0.7683974, error=0.05817006
## n=6, result=0.7497082, error=0.03948094
## n=7, result=0.7497082, error=0.03948094
## n=8, result=0.728112, error=0.01788467
## n=9, result=0.728112, error=0.01788467
## n=10, result=0.7188088, error=0.008581532
## n=11, result=0.7188088, error=0.008581532
## n=12, result=0.7147289, error=0.004501593
## n=13, result=0.7147289, error=0.004501593
## n=14, result=0.712782, error=0.002554712
## n=15, result=0.712782, error=0.002554712
## n=16, result=0.711774, error=0.001546662
## n=17, result=0.711774, error=0.001546662
## n=18, result=0.7112144, error=0.0009870756
## n=19, result=0.7112144, error=0.0009870756
## n=20, result=0.7108852, error=0.0006578651
## n=21, result=0.7108852, error=0.0006578651
## n=22, result=0.7106819, error=0.0004545628
## n=23, result=0.7106819, error=0.0004545628
## n=24, result=0.7105511, error=0.0003237819
## n=25, result=0.7105511, error=0.0003237819
## n=26, result=0.710464, error=0.0002366803
## n=27, result=0.710464, error=0.0002366803
## n=28, result=0.7104042, error=0.0001769138
## n=29, result=0.7104042, error=0.0001769138
## n=30, result=0.7103621, error=0.0001348299
## n=31, result=0.7103621, error=0.0001348299
## n=32, result=0.7103318, error=0.0001045198
## n=33, result=0.7103318, error=0.0001045198
## n=34, result=0.7103096, error=8.225045e-05
Metode four-point Gauss Quadrature
Legendre order 4
gL <- gaussLegendre(n = 4,a = 0,1)Mendefinisikan koefisien gauss point
Ci <- gL$w # koefisien
Ci## [1] 0.1739274 0.3260726 0.3260726 0.1739274
xi <- gL$x # gauss point
xi## [1] 0.06943184 0.33000948 0.66999052 0.93056816
I <- sum(Ci * EX(xi))
I## [1] 0.6792999
Menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.0001
exact_value=0.7102273
tol <- 0.0001
err <- 1
n = 4
while(err>tol){
gL <- gaussLegendre(n = n,a = 0,1)
Ci <- gL$w # koefisien
xi <- gL$x # gauss point
res_gl <- sum(Ci * EX(xi))
err <- abs(res_gl-exact_value)
cat("n=",n,", result=",res_gl,", error=",err,"\n",sep = "")
n=n+1
if(n==1000){
break
}
}## n=4, result=0.6792999, error=0.03092738
## n=5, result=0.707375, error=0.002852279
## n=6, result=0.7101422, error=8.507726e-05
Komparasi Metode (Metode Terbaik)
Komparasi metode bertujuan untuk mengetahui metode manakah yang terbaik
exact <- 0.7102273
etrapUD <- 0.7102273-0.6312869
esimUD <- 0.7683974-0.7102273
egaquUD <- NA
ErrorUserDefine <- rbind(exact, etrapUD,esimUD,egaquUD)
ErrorUserDefine## [,1]
## exact 0.7102273
## etrapUD 0.0789404
## esimUD 0.0581701
## egaquUD NA
exact <- 0.7102273
etrapFR <- 0.7102273-0.7098069
esimFR <- NA
egaquFR <- 0.7102273-0.6792999
ErrorRFunction <- rbind(exact, etrapFR,esimFR,egaquFR)
ErrorRFunction## [,1]
## exact 0.7102273
## etrapFR 0.0004204
## esimFR NA
## egaquFR 0.0309274
exact <- 0.7102273
etrapT <- 0.7102273-0.7101278
esimT <- 0.7103096-0.7102273
egaquT <- 0.7102273-0.7101422
ErrorTolerance <- rbind(exact, etrapT,esimT,egaquT)
ErrorTolerance## [,1]
## exact 0.7102273
## etrapT 0.0000995
## esimT 0.0000823
## egaquT 0.0000851
library(dplyr)## Warning: package 'dplyr' was built under R version 4.0.5
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Metode <- c("Nilai Exact",
"Metode Trapezoida (n=4)",
"Metode Simpson (n=4)",
"Metode four-point Gauss Quadrature"
)
tibble(hasil <- data.frame(Metode, ErrorUserDefine,ErrorRFunction,ErrorTolerance))## # A tibble: 4 x 4
## Metode ErrorUserDefine ErrorRFunction ErrorTolerance
## <chr> <dbl> <dbl> <dbl>
## 1 Nilai Exact 0.710 0.710 0.710
## 2 Metode Trapezoida (n=4) 0.0789 0.000420 0.0000995
## 3 Metode Simpson (n=4) 0.0582 NA 0.0000823
## 4 Metode four-point Gauss Quadrat~ NA 0.0309 0.0000851
Kesimpulan
Berdasarkan hasil perhitungan dari ketiga metode, diperoleh metode yang terbaik metode Simpson untuk n=4 karena memiliki nilai error paling kecil dan mendekati exactnya.
Jawaban Soal 2
Fungsi distribusi kumulatif (CDF) didefinisikan sebagai berikut:
\[F\left ( x \right )=\int_{0 }^{\infty }f\left ( t \right )dt\]
Sehingga, fungsi distribusi kumulatif (CDF) distribusi Eksponensial untuk x=4, jika diketahui λ=2 yaitu:
\[F\left ( x=4\mid \lambda =2 \right )=\int_{0}^{4 }2 e^{-2 t}\]
Nilai Exact
a <- 0
b <- 4
F <- function(t){
2*exp(-2*t)
}
Fint <- integrate(F, 0, 4)
Fint## 0.9996645 with absolute error < 1.1e-14
Fungsi
F <- function(t){
2*exp(-2*t)
}Kurva F
curve(F,0,4, col="purple")
abline(v=seq(0,4,length.out = 7),col="black",lty=2)Metode Trapezoida
Menghitung integral untuk \(n=1000\) menggunakan fungsi oleh user-defined function:
trapezoid <- function(ftn, a, b, n = 100) {
h <- (b-a)/n
h
x.vec <- seq(a, b, by = h)
f.vec <- sapply(x.vec, F) # ftn(x.vec)
Trap <- h*(f.vec[1]/2 + sum(f.vec[2:n]) + f.vec[n+1]/2)
return(Trap)
}
trapezoid(F,0,4,n = 1000)## [1] 0.9996699
Menggunakan R fungsi trapzfun dari package pracma
trapzfun(F,0,4,maxit = 1000)## $value
## [1] 0.9996646
##
## $iter
## [1] 14
##
## $rel.err
## [1] 5.958465e-08
Menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.0001
exact_value=0.9996645
tol <- 0.0001
err <- 1
n = 1000
while(err>tol){
res_trap <- trapezoid(Distribusi,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==1000){
break
}
}## n=1000, result=0.9996699, error=5.368911e-06
Metode Simpson
Menghitung integral untuk \(n=1000\) menggunakan fungsi oleh user-defined function
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)
}
simpson_n(F,0,4,n = 1000)## [1] 0.9996645
Menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.0001
exact_value=0.9996645
tol <- 0.0001
err <- 1
n = 1000
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==1000){
break
}
}## n=1000, result=0.9996645, error=3.739485e-08
Metode Gauss Quadrature
Menggunakan fungsi gaussLegendre dari package pracma dengan \(n=1000\)
gL <- gaussLegendre(n = 1000,a = 0,4)Mendefinisikan koefisien gauss point
Ci <- gL$wxi <- gL$x I <- sum(Ci * F(xi))
I## [1] 0.9996645
Menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.0001
exact_value=0.9996645
tol <- 0.0001
err <- 1
n = 1000
while(err>tol){
gL <- gaussLegendre(n = n,a = 0,4)
Ci <- gL$w # koefisien
xi <- gL$x # gauss point
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==1000){
break
}
}## n=1000, result=0.9996645, error=3.737209e-08
Metode Monte Carlo
CDF dari suatu distribusi Eksponensial didefinisikan sebagai berikut:
\[F\left ( x=4\mid \lambda =2 \right )=\int_{0}^{4 }2 e^{-2 t}dt\]
x <- 4
lambda <- 2
F <- function(x){
lambda * exp(-lambda*x)
}monte_carlo <- 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_mean <- mean(Gx)
theta.hat <- (b-a)*Gx_mean
return(theta.hat)
}set.seed(123)
int_g <- monte_carlo(F,0, 4,m = 1000)
int_g## [1] 1.001826
Komparasi Metode (Metode Terbaik)
Berdasarkan user-defined function:
NilaiExact<-0.9996645
TrapezoidaUD<-0.9996699-0.9996645
SimpsonUD<-0.9996645-0.9996645
gaussianUD<-NA
MonteUD<-0.9996645-0.9693147
ErrorUserDefine<-rbind(NilaiExact,TrapezoidaUD,SimpsonUD,gaussianUD,MonteUD)
ErrorUserDefine## [,1]
## NilaiExact 0.9996645
## TrapezoidaUD 0.0000054
## SimpsonUD 0.0000000
## gaussianUD NA
## MonteUD 0.0303498
Berdasarkan Fungsi dari Package:
NilaiExact<-0.9996645
TrapezoidaF<-0.9996646-0.9996645
SimpsonF<-NA
gaussianF<-0.9996645-0.9996645
MonteF<-NA
ErrorFungsi<-rbind(NilaiExact,TrapezoidaF,SimpsonF,gaussianF,MonteF)
ErrorFungsi## [,1]
## NilaiExact 0.9996645
## TrapezoidaF 0.0000001
## SimpsonF NA
## gaussianF 0.0000000
## MonteF NA
Berdasarkan Nilai Toleransi:
NilaiExact<-0.9996645
TrapezoidaToleransi<-0.9996699-0.9996645
SimpsonToleransi<-0.9996645-0.9996645
gaussianToleransi<-0.9996645-0.9996645
MonteToleransi<-NA
ErrorToleransi<-rbind(NilaiExact,TrapezoidaToleransi,SimpsonToleransi,gaussianToleransi,MonteToleransi)
ErrorToleransi## [,1]
## NilaiExact 0.9996645
## TrapezoidaToleransi 0.0000054
## SimpsonToleransi 0.0000000
## gaussianToleransi 0.0000000
## MonteToleransi NA
library(dplyr)Nama_Metode <- c("Nilai Exact",
"Metode Trapezoida (n=1000)",
"Metode Simpson untuk (n=1000)",
"Metode four-point Gauss Quadrature",
"Metode Monte Carlo"
)
tibble(hasil <- data.frame(Nama_Metode, ErrorUserDefine,ErrorFungsi,ErrorToleransi))## # A tibble: 5 x 4
## Nama_Metode ErrorUserDefine ErrorFungsi ErrorToleransi
## <chr> <dbl> <dbl> <dbl>
## 1 Nilai Exact 1.00 1.00 1.00
## 2 Metode Trapezoida (n=1000) 0.00000540 0.000000100 0.00000540
## 3 Metode Simpson untuk (n=1000) 0 NA 0
## 4 Metode four-point Gauss Quadrature NA 0 0
## 5 Metode Monte Carlo 0.0303 NA NA
Berdasarkan perhitungan yang telah dilakukan, dapat disimpulkan bahwa metode terbaik yaitu metode Simpson dengan \(n=1000\) , karena memiliki nilai error yang paling kecil diantara metode yang lainnya.