Tugas 10 Praktikum STA561
Fungsi user-defined
Fungsi Trapezoidal
Fungsi 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)
}Fungsi Gaussian (Adaptive) Quadrature
Soal 1
Diketahui pdf (probability density function) dari distribusi Kumaraswamy adalah sebagai berikut
\[f(x|a,b)=abx^{(a−1)}(1−x^{(a)})^{(b−1)};x∈(0,1)\]
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(X)=\frac{bΓ(1+\frac1a)Γ(b)}{Γ(1+\frac1a+b)}\) metode mana yang paling mendekati untuk menghitung nilai \(E(X)\) dengan toleransi 0.0001? Gunakan R!
Jawab Soal 1 Manual (a)
Jika diketahui pdf dari distribusi Kusmarawamy dengan a = 5 , b = 3, maka didapatkan
\[f(x|5,3)=5⋅3x^{5−1}(1−x^5)^{3−1}=15x^4(1−x^5)^2\]
untuk \(E(X)\) yaitu
\(E(X)=\int_\infty^{-\infty}xf(x)dx\)
\(E(X)=\int_0^1x(15x^4(1−x^5)^2)dx\)
\(E(X)=\int_0^115x^5(1−x^5)^2dx\)
untuk selanjutnya dalam proses perhitungan, \(f(x)\) yang digunakan adalah fungsi \(E(x)\)
Metode Trapezoidal
\(\int_{a}^{b}f(x)dx \approx T_{n} = \frac{h}{2} [f(x_{0})+2f(x_{1})+2f(x_{2})+\ldots+2f(x_{n-1})+f(x_{n})]\)
Untuk n=4 maka
\(\int_{0}^{1} 15x^{5} (1-x^{5})^ {2}dx \approx T_{4} = \frac{h}{2} [f(x_{0})+2f(x_{1})+2f(x_{2})+2f(x_{3})+f(x_{4})]\)
Panjang antar sub interval \(h\) adalah
\(h=\frac{b-a}{n}=\frac{1-0}{4}=\frac{1}{4}= 0.25\)
\(f(x)\) pada setiap \(xi\) \((x1, x2, x3, x4)\)
\(f(x_{0})=f(0)=15 \sf x 0^{5} (1-0^{5})^ {2}=0\)
\(f(x_{1})=f(0.25)=15 \sf x 0.25^{5} (1-0.25^{5})^ {2}= 0.014619841\)
\(f(x_{1})=f(0.25)=15 \sf x 0.25^{5} (1-0.25^{5})^ {2}= 0.014619841\)
\(f(x_{3})=f(0.75)=15 {\sf x} 0.75^{5} (1-0.75^{5})^ {2}= 2.070616786\)
\(f(x_{4})=f(1)=15 {\sf x} 1^{5} (1-1^{5})^ {2}= 0\)
Maka \(T4\) dengan \(h=0.25\) adalah:
\(T_{4} = \frac{0.25}{2} [0 + (2 {\sf x} 0.014619841) + (2 {\sf x }0.439910889) + (2{\sf x} 2.070616786)+0]=0.631286879\)
Sehingga
\(\int_{0}^{1} 15x^{5} (1-x^{5})^ {2}dx \approx T_{4} = 0,63128\)
Metode Simpson
\(\int_{a}^{b}f(x)dx \approx S_{n} = \frac{h}{3} [f(x_{0})+4f(x_{1})+2f(x_{2})+4f(x_{3})+2f(x_{4})+\ldots+4f(x_{n-1})+f(x_{n})]\)
untuk n = 4
\(\int_{0}^{1}f(x)dx \approx S_{4} = \frac{h}{3} [f(x_{0})+4f(x_{1})+2f(x_{2})+4f(x_{3})+f(x_{4}))]\)
Panjang antar sub interval \(h\) adalah
\(h=\frac{b-a}{n}=\frac{1-0}{4}=\frac{1}{4}= 0.25\)
\(f(x)\) pada setiap \(xi\) \((x1, x2, x3, x4)\):
\(f(x_{0})=f(0)=15 \sf x 0^{5} (1-0^{5})^ {2}=0\)
\(f(x_{1})=f(0.25)=15 \sf x 0.25^{5} (1-0.25^{5})^ {2}= 0.014620\)
\(f(x_{2})=f(0.50)=15 {\sf x} 0.50^{5} (1-0.50^{5})^ {2}= 0.439911\)
\(f(x_{3})=f(0.75)=15 {\sf x} 0.75^{5} (1-0.75^{5})^ {2}= 2.070617\)
\(f(x_{4})=f(1)=15 {\sf x} 1^{5} (1-1^{5})^ {2}= 0\)
Maka \(S4\) dengan \(h=0.25\) adalah:
\(S_{4} = \frac{0.25}{2} [0 + (2 {\sf x} 0,014620) + (2 {\sf x } 0,439911) + (2{\sf x} 0,070617)+0]= 0.768397357\)
Metode Gauss Quadrature
Bentuk umum dari Gauss quadrature
\(\int_{a}^{b}f(x)dx \approx I= \sum_{i=1}^{n}C_{i}f(x_{i})\)
Untuk n=4 maka
\(\int_{a}^{b}f(x)dx \approx I= \sum_{i=1}^{4}C_{i}f(x_{i})\)
Mengubah domain fungsi integral ke [-1, 1]
\(x = \frac{1}{2}[t(b-a)+a+b] = \frac{1}{2}[t+1]\)
dan
\(dx=\frac{1}{2}(b-a)dt = \frac{1}{2}dt\)
Sehingga
\(\int_{0}^{1} 15x^{5} (1-x^{5})^ {2}dx = \int_{-1}^{1} 15\left( \frac{1}{2}[t+1] \right) ^{5} \left(1-\left[\frac{1}{2}[t+1]\right]^{5}\right)^2 \frac {1}{2} dt\)
Menggunakan nilai koefisien dan titik gauss saat n=4
\(\int_{-1}^{1} \frac {15}{2}\left( \frac{1}{2}[t+1] \right) ^{5} \left(1-\left[\frac{1}{2}[t+1]\right]^{5}\right)^2 dt\approx I = C_{1}f(t_{1})+C_{2}f(t_{2})+C_{3}f(t_{3})+C_{4}f(t_{4})\)
\(I= 0.3478548f(-0.8611363)+0.6521452f(-0.3399810)+0.6521452f(0.3399810)+0.3478548f(0.8611363)\)
Nilai \(f(x)\)
\(f(−0.8611363) = 0.0000042\)
\(f(−0,3399810) = 0.0189947\)
\(f(0,3399810) = 0.4940581\)
\(f(0.8611363) = 0.1662429\)
Maka nilai I adalah:
\(I = 0.3478548 \cdot 0.0000042+0.6521452 \cdot 0.0189947+0.6521452 \cdot 0.4940581 + 0.3478548 \cdot 0.1662429 = 0.679299903\)
Jawab Soal 1 dengan R (b)
Mendefinisikan fungsi E(x)
Nilai Exact
Secara exact nilai E(X) adalah sebagai berikut:
[1] 0.7102273
Atau dengan fungsi integrate ;
0.7102273 with absolute error < 7.9e-15
\(E(X) = \frac{b\Gamma (1+ \frac{1}{a})\Gamma(b)}{\Gamma(1+ \frac{1}{a}+b)} = \frac{b\Gamma (1+ \frac{1}{5})\Gamma(3)}{\Gamma(1+ \frac{1}{5}+3)} = 0,7102273\)
Metode Trapezoidal
[1] 0.6312869
$value
[1] 0.7098069
$iter
[1] 4
$rel.err
[1] 0.005901199
Metode Gauss Quadrature
# Menggunakan R dengan fungsi gaussLegendre dengan domain [−1,1]
ft <- function(t){
(15/2)*((1/2*(t+1))^5)*(1-(1/2*(t+1))^5)^2
}
domaingauss <- gauss(ft, 4, -1,1)
domaingauss$I
[1] 0.6792999
$Ci
[1] 0.3478548 0.6521452 0.6521452 0.3478548
$xi
[1] -0.8611363 -0.3399810 0.3399810 0.8611363
[1] 0.3478548 0.6521452 0.6521452 0.3478548
[1] -0.8611363 -0.3399810 0.3399810 0.8611363
[1] 0.6792999
Soal 2
Diketahui pdf (probability density function) dari distirbusi Eksponensial adalah sebagai berikut
\(f(x|\lambda) = \lambda exp^{-\lambda x} ; 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.
Formula untuk mencari cdf dari suatu distribusi adalah sebagai berikut :
\(F(x) = \int_{-\infty}^{x} f(t) dt\)
sehingga, cdf dari distribusi eksponensial:
\(F(x) = \int_{-\infty}^{x} \lambda exp^{-\lambda t} dt = F(x|\lambda)=1 - e^{-\lambda x}\)
Nilai Exact
Mendefinisikan fungsi f(x) untuk \(λ = 2\)
\(f(x|2) = 2 exp^{-2 x}\)
Melalui fungsi integrate yang telah dibuat
0.9996645 with absolute error < 1.1e-14
Atau nilai tersebut juga dapat diperoleh dengan menggunakan CDF eksponensial
[1] 0.9996645
Selanjutnya akan dilakukan perhitungan dengan menggunakan metode integral numerik dengan menetapkan n = 100, m = 100 dan toleransi = 0,0001
Metode Trapezoidal
[1] 1.000198
$value
[1] 0.9996646
$iter
[1] 14
$rel.err
[1] 5.958465e-08
Metode Trapezoidal
[1] 0.9996648
#Menghitung hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.0001
exact_value= 0.9996645
tol <- 0.0001
err <- 1
n = 100
while(err>tol){
res_simp <- simpson_n(fe,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=100, result=0.9996648, error=2.646781e-07
Metode Gauss Quadrature
Mengubah domain fungsi integral ke [-1, 1]
\(\int_{0}^{4} 2exp ^{-2 x } dx = \int_{-1}^{1} 2exp ^{-2 (2[t+1])} 2dt = \int_{-1}^{1} 4exp ^{(-4t-4)}dt=\int_{-1}^{1} 4exp ^{(-4(t+1))}dt\)
ft <- function(t){
4*exp(-4*(t+1))
}
gL <- gaussLegendre(n = 100, a = -1,1)
Ci <- gL$w # koefisien
Ci [1] 0.0007346345 0.0017093927 0.0026839254 0.0036559612 0.0046244501
[6] 0.0055884280 0.0065469485 0.0074990733 0.0084438715 0.0093804197
[11] 0.0103078026 0.0112251140 0.0121314577 0.0130259479 0.0139077107
[16] 0.0147758845 0.0156296211 0.0164680862 0.0172904606 0.0180959407
[21] 0.0188837396 0.0196530875 0.0204032326 0.0211334421 0.0218430024
[26] 0.0225312203 0.0231974232 0.0238409603 0.0244612027 0.0250575445
[31] 0.0256294029 0.0261762192 0.0266974592 0.0271926134 0.0276611982
[36] 0.0281027557 0.0285168543 0.0289030896 0.0292610841 0.0295904881
[41] 0.0298909796 0.0301622651 0.0304040795 0.0306161866 0.0307983790
[46] 0.0309504789 0.0310723374 0.0311638357 0.0312248843 0.0312554235
[51] 0.0312554235 0.0312248843 0.0311638357 0.0310723374 0.0309504789
[56] 0.0307983790 0.0306161866 0.0304040795 0.0301622651 0.0298909796
[61] 0.0295904881 0.0292610841 0.0289030896 0.0285168543 0.0281027557
[66] 0.0276611982 0.0271926134 0.0266974592 0.0261762192 0.0256294029
[71] 0.0250575445 0.0244612027 0.0238409603 0.0231974232 0.0225312203
[ reached getOption("max.print") -- omitted 25 entries ]
[1] -0.99971373 -0.99849195 -0.99629513 -0.99312494 -0.98898440 -0.98387754
[7] -0.97780936 -0.97078578 -0.96281365 -0.95390078 -0.94405587 -0.93328854
[13] -0.92160930 -0.90902957 -0.89556164 -0.88121868 -0.86601469 -0.84996453
[19] -0.83308388 -0.81538924 -0.79689789 -0.77762791 -0.75759812 -0.73682809
[25] -0.71533812 -0.69314920 -0.67028302 -0.64676191 -0.62260886 -0.59784747
[31] -0.57250193 -0.54659701 -0.52015802 -0.49321079 -0.46578165 -0.43789740
[37] -0.40958529 -0.38087298 -0.35178853 -0.32236034 -0.29261719 -0.26258812
[43] -0.23230248 -0.20178986 -0.17108008 -0.14020314 -0.10918920 -0.07806858
[49] -0.04687168 -0.01562898 0.01562898 0.04687168 0.07806858 0.10918920
[55] 0.14020314 0.17108008 0.20178986 0.23230248 0.26258812 0.29261719
[61] 0.32236034 0.35178853 0.38087298 0.40958529 0.43789740 0.46578165
[67] 0.49321079 0.52015802 0.54659701 0.57250193 0.59784747 0.62260886
[73] 0.64676191 0.67028302 0.69314920
[ reached getOption("max.print") -- omitted 25 entries ]
[1] 0.9996645
Metode Monte Carlo
[1] 0.9330439
Berdasarkan keempat metode yang dilakukan, metode gauss quadrature memiliki nilai error terkecil jika dibandingkan metode lainnya. Sehingga dalam hal ini, metode gauss quadrature merupakan metode terbaik dalam melakukan perhitungan integral numerik. Sebelumnya juga dilakukan percobaan pada n yang berbeda namun tidak ditampilkan, dari beberapa percobaan yang dilakukan, semakin besar n yang digunakan, akan memberikan presisi nilai integral yang semakin baik.