Fungsi kepekatan peluang distribusi Kumaraswamy adalah sebagai berikut:
\[f(x|5,3)=15x^{4}(1-x^{(5)})^{2}\]
\[E(X)=15x^{5}(1-x^{(5)})^{2}\]
Panjang 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 sebagai berikut:
\[T_4=\frac{h}{2}[f(x_0)+2f(x_1)+2f(x_2)+2f(x_3)+f(x_4)]\]
Menghitung fungsi f(x) dari setiap \(x_i\)
\[f(x_0)=f(0)=0\]
\[f(x_1)=f(0.25)=0.015\]
\[f(x_2)=f(0.5)=0.44\]
\[f(x_3)=f(0.75)=2.071\]
\[f(x_4)=f(1)=0\]
Karena \(h=\frac{1}{4}\) diperoleh
\[T_4=\frac{1}{8}[0+(2*0.015)+(2*0.44)+(2*2.071)+0]=0.631\]
Sehingga
\[\int\limits_{0}^{1}{15x^{5}(1-x^{(5)})^{2}}\,dx ≈ T_4=0.631\]
Jika dibandingkan dengan hasil yang didapatkan secara exact sebagai berikut:
\[\int\limits_{0}^{1}{15x^{5}(1-x^{(5)})^{2}}\,dx=0.71\]
Panjang 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 sebagai berikut:
\[T_4=\frac{h}{2}[f(x_0)+2f(x_1)+2f(x_2)+2f(x_3)+f(x_4)]\]
Menghitung fungsi f(x) dari setiap \(x_i\)
\[f(x_0)=f(0)=0\]
\[f(x_1)=f(0.25)=0.015\]
\[f(x_2)=f(0.5)=0.44\]
\[f(x_3)=f(0.75)=2.071\]
\[f(x_4)=f(1)=0\]
Karena \(h=\frac{1}{4}\) diperoleh
\[T_4=\frac{1}{12}[0+(4*0.015)+(2*0.44)+(4*2.071)+0]=0.768\]
Sehingga
\[\int\limits_{0}^{1}{15x^{5}(1-x^{(5)})^{2}}\,dx ≈ T_4=0.768\]
Jika dibandingkan dengan hasil yang didapatkan secara exact sebagai berikut:
\[\int\limits_{0}^{1}{15x^{5}(1-x^{(5)})^{2}}\,dx=0.71\]
\[x=\frac{1}{2}[t(b-a)+a+b]\]
\[x=\frac{1}{2}[t(1-0)+0+1]\]
\[x=\frac{1}{2}[t+1]\]
dan
\[dx=\frac{1}{2}(b-a)dt\]
\[dx=\frac{1}{2}dt\]
Sehingga integralnya menjadi
\[\int\limits_{0}^{1}{15x^{5}(1-x^{(5)})^{2}}\,dx=\int\limits_{0}^{1}{15\frac{1}{2}[t+1]^{5}(1-\frac{1}{2}[t+1]^{(5)})^{2}}\,\frac{1}{2}dt\]
Kemudian, menggunakan nilai-nilai koefisien dan titik gauss saat \(n=4\)
\[\int\limits_{0}^{1}{\frac{15}{4}[t+1]^{5}(1-\frac{1}{2}[t+1]^{(5)})^{2}}\,dt ≈ I=C_1f(t_1)+C_2f(t_2)+C_3f(t_3)+C_4f(t_4)\]
Menghitung fungsi \(f(x)\) pada setiap \(x_i\)
\(f(-0.8611363)=\frac{15(\frac{1}{2}[-0.8611363+1])^{5}(1-(\frac{1}{2}[-0.8611363+1])^{(5)})^{2}}{2}=0.0000121\)
\(f(-0.3399810)=\frac{15(\frac{1}{2}[-0.3399810+1])^{5}(1-(\frac{1}{2}[-0.3399810+1])^{(5)})^{2}}{2}=0.0291\)
\(f(0.3399810)=\frac{15(\frac{1}{2}[0.3399810+1])^{5}(1-(\frac{1}{2}[0.3399810+1])^{(5)})^{2}}{2}=0.7576\)
\(f(0.8611363)=\frac{15(\frac{1}{2}[0.8611363+1])^{5}(1-(\frac{1}{2}[0.8611363+1])^{(5)})^{2}}{2}=0.4775\)
Sehingga
\(I=0.347858*0.0000121+0.6521452*0.0291+0.6521452*0.7576+ 0.347858*0.4775=0.679\)
Jika dibandingkan dengan hasil yang didapatkan secara exact sebagai berikut:
\[\int\limits_{0}^{1}{15x^{5}(1-x^{(5)})^{2}}\,dx=0.71\]
Berikut adalah user-defined function untuk 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)
}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)
}\[𝐸(𝑋) = \frac{𝑏Γ(1+ 1/a )Γ(𝑏)}{Γ(1+ 1/a +𝑏)}=15x^{4}(1-x^{(5)})^{2}\]
Mendefinisikan fungsi f(x)
f <- function(x){
15*x^5*(1-x^5)^2
}Menghitung integral menggunakan fungsi trapezoid
trapezoid(f,0,1,n = 4)## [1] 0.6312869
Hitunglah menggunakan R fungsi trapzfun dari package pracma
trapzfun(f,0,1,maxit = 4)## $value
## [1] 0.7098069
##
## $iter
## [1] 4
##
## $rel.err
## [1] 0.005901199
Hitunglah 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(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.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
Mendefinisikan fungsi f(x)
f2 <- function(x){
15*x^5*(1-x^5)^2
}Menghitung integral menggunakan metode simpson
simpson_n(f2,0,1,n = 4)## [1] 0.7683974
Hitunglah 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_simp <- simpson_n(f2,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
Hitunglah menggunakan R dengan fungsi gaussLegendre dengan menggunakan domain [−1,1]
Mendefinisikan fungsi hasil transformasi f(t)
ft <- function(t){
(15*(((t+1)/2)^5)*(((1-(((t+1)/2)^5))^2)))/2
}Legendre order 4
gL <- gaussLegendre(n = 4,a = -1,1)Mendefinisikan koefisien dan gauss point
Ci <- gL$w # koefisien
Ci## [1] 0.3478548 0.6521452 0.6521452 0.3478548
ti <- gL$x # gauss point
ti## [1] -0.8611363 -0.3399810 0.3399810 0.8611363
ft(ti)## [1] 1.210189e-05 2.912641e-02 7.575892e-01 4.779089e-01
Menghitung integral
I <- sum(Ci * ft(ti))
I## [1] 0.6792999
Hitunglah menggunakan R dengan fungsi gaussLegendre dengan menggunakan domain asal
Mendefinisikan fungsi f(x)
f3 <- function(x){
15*x^5*((1-(x^5))^2)
}Legendre order 4 dengan domain [0,1]
gL <- gaussLegendre(n = 4,a = 0,1)Mendefinisikan koefisien dan 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
f3(xi)## [1] 2.420379e-05 5.825281e-02 1.515178e+00 9.558177e-01
Menghitung integral
I <- sum(Ci * f3(xi))
I## [1] 0.6792999
Hitunglah menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.00001
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 * f3(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
exact <- 0.7102273
t <- trapezoid(f,0,1,4)
s <- simpson_n(f2,0,1,4)
g <- I
nilai <- rbind(t,s,g)
exact <- 0.7102273
error_t <- abs(trapezoid(f,0,1,4)-exact)
error_s <- abs(simpson_n(f2,0,1,4)-exact)
error_g <- abs(I-exact)
error <- rbind(error_t,error_s,error_g)
perbandingan<- c("Metode Trapezoidal","Metode Simpson","Metode Gauss Quadrature")
hasil <- data.frame(perbandingan,nilai,error)
hasil## perbandingan nilai error
## t Metode Trapezoidal 0.6312869 0.07894042
## s Metode Simpson 0.7683974 0.05817006
## g Metode Gauss Quadrature 0.6792999 0.03092738
Berdasarkan ketiga metode tersebut yaitu, metode Trapezoidal, metode Simpson, dan metode Gauss Quadrature. Nilai yang mendekati dari nilai fungsi E(x) exact atau sebenarnya sebesar 0.71 adalah metode Gauss Quadrature dengan nilai sebesar 0.679 dengan nilai error 0.0309.
Fungsi kepekatan peluang distribusi eksponensial adalah sebagai berikut:
\[𝑓(𝑥|𝜆) = 𝜆e^{−𝜆𝑥}=2e^{-2x}\]
Fungsi sebaran kumulatif distribusi eksponensial adalah sebagai berikut:
\[F(𝑥|𝜆) = 1-e^{-2x}\]
Nilai exact dari FSK distribusi eksponensial
Ft <- function(x){
2*exp(-2*x)
}
F <- integrate(Ft,0,4)
F## 0.9996645 with absolute error < 1.1e-14
Mendefinisikan fungsi f(x)
f <- function(x){
2*exp(-2*x)
}Menghitung integral menggunakan fungsi trapezoid
trapezoid(f,0,4,n = 50)## [1] 1.001796
Hitunglah menggunakan R fungsi trapzfun dari package pracma
trapzfun(f,0,4,maxit = 5)## $value
## [1] 1.004866
##
## $iter
## [1] 5
##
## $rel.err
## [1] 0.01553891
Hitunglah menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.0001
exact_value=0.9996645
tol <- 0.0001
err <- 1
n = 50
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==1000){
break
}
}## n=50, result=1.001796, error=0.002131746
## n=51, result=1.001714, error=0.002049003
## n=52, result=1.001635, error=0.001970985
## n=53, result=1.001562, error=0.001897339
## n=54, result=1.001492, error=0.001827745
## n=55, result=1.001426, error=0.00176191
## n=56, result=1.001364, error=0.001699569
## n=57, result=1.001305, error=0.001640479
## n=58, result=1.001249, error=0.001584417
## n=59, result=1.001196, error=0.001531181
## n=60, result=1.001145, error=0.001480583
## n=61, result=1.001097, error=0.001432452
## n=62, result=1.001051, error=0.001386631
## n=63, result=1.001007, error=0.001342973
## n=64, result=1.000966, error=0.001301345
## n=65, result=1.000926, error=0.001261623
## n=66, result=1.000888, error=0.001223692
## n=67, result=1.000852, error=0.001187446
## n=68, result=1.000817, error=0.001152787
## n=69, result=1.000784, error=0.001119624
## n=70, result=1.000752, error=0.001087871
## n=71, result=1.000722, error=0.00105745
## n=72, result=1.000693, error=0.001028287
## n=73, result=1.000665, error=0.001000315
## n=74, result=1.000638, error=0.000973468
## n=75, result=1.000612, error=0.0009476878
## n=76, result=1.000587, error=0.0009229182
## n=77, result=1.000564, error=0.0008991072
## n=78, result=1.000541, error=0.000876206
## n=79, result=1.000519, error=0.0008541686
## n=80, result=1.000497, error=0.0008329523
## n=81, result=1.000477, error=0.0008125168
## n=82, result=1.000457, error=0.0007928242
## n=83, result=1.000438, error=0.0007738389
## n=84, result=1.00042, error=0.0007555275
## n=85, result=1.000402, error=0.0007378584
## n=86, result=1.000385, error=0.000720802
## n=87, result=1.000369, error=0.0007043303
## n=88, result=1.000353, error=0.0006884168
## n=89, result=1.000338, error=0.0006730365
## n=90, result=1.000323, error=0.000658166
## n=91, result=1.000308, error=0.000643783
## n=92, result=1.000294, error=0.0006298663
## n=93, result=1.000281, error=0.0006163961
## n=94, result=1.000268, error=0.0006033534
## n=95, result=1.000255, error=0.0005907204
## n=96, result=1.000243, error=0.00057848
## n=97, result=1.000231, error=0.0005666162
## n=98, result=1.00022, error=0.0005551136
## n=99, result=1.000208, error=0.0005439578
## n=100, result=1.000198, error=0.0005331349
## n=101, result=1.000187, error=0.0005226319
## n=102, result=1.000177, error=0.0005124362
## n=103, result=1.000167, error=0.000502536
## n=104, result=1.000157, error=0.00049292
## n=105, result=1.000148, error=0.0004835774
## n=106, result=1.000139, error=0.0004744979
## n=107, result=1.00013, error=0.0004656717
## n=108, result=1.000122, error=0.0004570896
## n=109, result=1.000113, error=0.0004487425
## n=110, result=1.000105, error=0.000440622
## n=111, result=1.000097, error=0.00043272
## n=112, result=1.00009, error=0.0004250287
## n=113, result=1.000082, error=0.0004175406
## n=114, result=1.000075, error=0.0004102487
## n=115, result=1.000068, error=0.0004031462
## n=116, result=1.000061, error=0.0003962266
## n=117, result=1.000054, error=0.0003894836
## n=118, result=1.000047, error=0.0003829112
## n=119, result=1.000041, error=0.0003765039
## n=120, result=1.000035, error=0.0003702561
## n=121, result=1.000029, error=0.0003641625
## n=122, result=1.000023, error=0.0003582181
## n=123, result=1.000017, error=0.0003524181
## n=124, result=1.000011, error=0.0003467579
## n=125, result=1.000006, error=0.0003412329
## n=126, result=1, error=0.000335839
## n=127, result=0.9999951, error=0.0003305719
## n=128, result=0.9999899, error=0.0003254278
## n=129, result=0.9999849, error=0.0003204029
## n=130, result=0.99998, error=0.0003154935
## n=131, result=0.9999752, error=0.000310696
## n=132, result=0.9999705, error=0.0003060072
## n=133, result=0.9999659, error=0.0003014237
## n=134, result=0.9999614, error=0.0002969424
## n=135, result=0.9999571, error=0.0002925604
## n=136, result=0.9999528, error=0.0002882747
## n=137, result=0.9999486, error=0.0002840824
## n=138, result=0.9999445, error=0.000279981
## n=139, result=0.9999405, error=0.0002759677
## n=140, result=0.9999365, error=0.0002720401
## n=141, result=0.9999327, error=0.0002681958
## n=142, result=0.9999289, error=0.0002644324
## n=143, result=0.9999252, error=0.0002607477
## n=144, result=0.9999216, error=0.0002571395
## n=145, result=0.9999181, error=0.0002536057
## n=146, result=0.9999146, error=0.0002501442
## n=147, result=0.9999113, error=0.0002467531
## n=148, result=0.9999079, error=0.0002434306
## n=149, result=0.9999047, error=0.0002401747
## n=150, result=0.9999015, error=0.0002369837
## n=151, result=0.9998984, error=0.0002338558
## n=152, result=0.9998953, error=0.0002307895
## n=153, result=0.9998923, error=0.0002277832
## n=154, result=0.9998893, error=0.0002248352
## n=155, result=0.9998864, error=0.000221944
## n=156, result=0.9998836, error=0.0002191083
## n=157, result=0.9998808, error=0.0002163266
## n=158, result=0.9998781, error=0.0002135976
## n=159, result=0.9998754, error=0.0002109198
## n=160, result=0.9998728, error=0.0002082921
## n=161, result=0.9998702, error=0.0002057133
## n=162, result=0.9998677, error=0.000203182
## n=163, result=0.9998652, error=0.0002006972
## n=164, result=0.9998628, error=0.0001982577
## n=165, result=0.9998604, error=0.0001958624
## n=166, result=0.999858, error=0.0001935102
## n=167, result=0.9998557, error=0.0001912002
## n=168, result=0.9998534, error=0.0001889313
## n=169, result=0.9998512, error=0.0001867026
## n=170, result=0.999849, error=0.0001845131
## n=171, result=0.9998469, error=0.0001823618
## n=172, result=0.9998447, error=0.000180248
## n=173, result=0.9998427, error=0.0001781708
## n=174, result=0.9998406, error=0.0001761292
## n=175, result=0.9998386, error=0.0001741225
## n=176, result=0.9998366, error=0.00017215
## n=177, result=0.9998347, error=0.0001702108
## n=178, result=0.9998328, error=0.0001683042
## n=179, result=0.9998309, error=0.0001664294
## n=180, result=0.9998291, error=0.0001645858
## n=181, result=0.9998273, error=0.0001627727
## n=182, result=0.9998255, error=0.0001609893
## n=183, result=0.9998237, error=0.0001592352
## n=184, result=0.999822, error=0.0001575095
## n=185, result=0.9998203, error=0.0001558117
## n=186, result=0.9998186, error=0.0001541413
## n=187, result=0.999817, error=0.0001524976
## n=188, result=0.9998154, error=0.00015088
## n=189, result=0.9998138, error=0.0001492881
## n=190, result=0.9998122, error=0.0001477212
## n=191, result=0.9998107, error=0.0001461789
## n=192, result=0.9998092, error=0.0001446606
## n=193, result=0.9998077, error=0.0001431658
## n=194, result=0.9998062, error=0.0001416941
## n=195, result=0.9998047, error=0.000140245
## n=196, result=0.9998033, error=0.000138818
## n=197, result=0.9998019, error=0.0001374127
## n=198, result=0.9998005, error=0.0001360286
## n=199, result=0.9997992, error=0.0001346653
## n=200, result=0.9997978, error=0.0001333224
## n=201, result=0.9997965, error=0.0001319995
## n=202, result=0.9997952, error=0.0001306962
## n=203, result=0.9997939, error=0.0001294122
## n=204, result=0.9997926, error=0.0001281469
## n=205, result=0.9997914, error=0.0001269002
## n=206, result=0.9997902, error=0.0001256715
## n=207, result=0.999789, error=0.0001244606
## n=208, result=0.9997878, error=0.0001232671
## n=209, result=0.9997866, error=0.0001220908
## n=210, result=0.9997854, error=0.0001209311
## n=211, result=0.9997843, error=0.000119788
## n=212, result=0.9997832, error=0.0001186609
## n=213, result=0.999782, error=0.0001175497
## n=214, result=0.999781, error=0.0001164541
## n=215, result=0.9997799, error=0.0001153737
## n=216, result=0.9997788, error=0.0001143083
## n=217, result=0.9997778, error=0.0001132575
## n=218, result=0.9997767, error=0.0001122212
## n=219, result=0.9997757, error=0.0001111991
## n=220, result=0.9997747, error=0.0001101908
## n=221, result=0.9997737, error=0.0001091962
## n=222, result=0.9997727, error=0.0001082151
## n=223, result=0.9997717, error=0.000107247
## n=224, result=0.9997708, error=0.000106292
## n=225, result=0.9997698, error=0.0001053496
## n=226, result=0.9997689, error=0.0001044197
## n=227, result=0.999768, error=0.0001035021
## n=228, result=0.9997671, error=0.0001025965
## n=229, result=0.9997662, error=0.0001017028
## n=230, result=0.9997653, error=0.0001008207
## n=231, result=0.9997644, error=9.995e-05
Mendefinisikan fungsi f(x)
f2 <- function(x){
2*exp(-2*x)
}Menghitung integral menggunakan metode simpson
simpson_n(f2,0,4,n = 50)## [1] 0.9996682
Hitunglah menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.0001
exact_value=0.9996645
tol <- 0.0001
err <- 1
n = 50
while(err>tol){
res_simp <- simpson_n(f2,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=50, result=0.9996682, error=3.665977e-06
Hitunglah menggunakan R dengan fungsi gaussLegendre dengan menggunakan domain [−1,1]
Mendefinisikan fungsi hasil transformasi f(t)
ft <- function(t){
4*exp(-4*(t+1))
}Legendre order 50
gL <- gaussLegendre(n = 50,a = -1,1)Mendefinisikan koefisien dan gauss point
Ci <- gL$w # koefisien
Ci## [1] 0.002908623 0.006759799 0.010590548 0.014380823 0.018115561 0.021780243
## [7] 0.025360674 0.028842994 0.032213728 0.035459836 0.038568757 0.041528463
## [13] 0.044327504 0.046955051 0.049400938 0.051655703 0.053710622 0.055557745
## [19] 0.057189926 0.058600850 0.059785059 0.060737971 0.061455900 0.061936067
## [25] 0.062176617 0.062176617 0.061936067 0.061455900 0.060737971 0.059785059
## [31] 0.058600850 0.057189926 0.055557745 0.053710622 0.051655703 0.049400938
## [37] 0.046955051 0.044327504 0.041528463 0.038568757 0.035459836 0.032213728
## [43] 0.028842994 0.025360674 0.021780243 0.018115561 0.014380823 0.010590548
## [49] 0.006759799 0.002908623
ti <- gL$x # gauss point
ti## [1] -0.99886640 -0.99403197 -0.98535408 -0.97286439 -0.95661096 -0.93665662
## [7] -0.91307856 -0.88596798 -0.85542977 -0.82158207 -0.78455583 -0.74449430
## [13] -0.70155247 -0.65589647 -0.60770293 -0.55715830 -0.50445814 -0.44980633
## [19] -0.39341431 -0.33550025 -0.27628819 -0.21600724 -0.15489059 -0.09317470
## [25] -0.03109834 0.03109834 0.09317470 0.15489059 0.21600724 0.27628819
## [31] 0.33550025 0.39341431 0.44980633 0.50445814 0.55715830 0.60770293
## [37] 0.65589647 0.70155247 0.74449430 0.78455583 0.82158207 0.85542977
## [43] 0.88596798 0.91307856 0.93665662 0.95661096 0.97286439 0.98535408
## [49] 0.99403197 0.99886640
ft(ti)## [1] 3.981903530 3.905642252 3.772397335 3.588563207 3.362679687 3.104711626
## [7] 2.825283145 2.534930649 2.243446813 1.959369317 1.689643724 1.439465077
## [13] 1.212281639 1.009929194 0.832856492 0.680401359 0.551081229 0.442869427
## [19] 0.353437578 0.280353308 0.221229896 0.173830135 0.136130230 0.106351372
## [25] 0.082967005 0.064693212 0.050468573 0.039428436 0.030877282 0.024261649
## [31] 0.019145135 0.015186280 0.012119604 0.009739766 0.007888582 0.006444570
## [37] 0.005314632 0.004427521 0.003728748 0.003176647 0.002739352 0.002392480
## [43] 0.002117376 0.001899775 0.001728792 0.001596168 0.001495697 0.001422809
## [49] 0.001374269 0.001347949
Menghitung integral
I <- sum(Ci * ft(ti))
I## [1] 0.9996645
Hitunglah menggunakan R dengan fungsi gaussLegendre dengan menggunakan domain asal
Mendefinisikan fungsi f(x)
f3 <- function(x){
2*exp(-2*x)
}Legendre order 50 dengan domain [0,4]
gL <- gaussLegendre(n = 50,a = 0,4)Mendefinisikan koefisien dan gauss point
Ci <- gL$w # koefisien
Ci## [1] 0.005817245 0.013519598 0.021181097 0.028761646 0.036231121 0.043560486
## [7] 0.050721347 0.057685987 0.064427456 0.070919671 0.077137513 0.083056926
## [13] 0.088655009 0.093910103 0.098801877 0.103311406 0.107421244 0.111115490
## [19] 0.114379851 0.117201700 0.119570117 0.121475942 0.122911799 0.123872135
## [25] 0.124353233 0.124353233 0.123872135 0.122911799 0.121475942 0.119570117
## [31] 0.117201700 0.114379851 0.111115490 0.107421244 0.103311406 0.098801877
## [37] 0.093910103 0.088655009 0.083056926 0.077137513 0.070919671 0.064427456
## [43] 0.057685987 0.050721347 0.043560486 0.036231121 0.028761646 0.021181097
## [49] 0.013519598 0.005817245
xi <- gL$x # gauss point
xi## [1] 0.002267191 0.011936061 0.029291832 0.054271230 0.086778090 0.126686762
## [7] 0.173842887 0.228064041 0.289140461 0.356835858 0.430888334 0.511011396
## [13] 0.596895063 0.688207069 0.784594146 0.885683391 0.991083710 1.100387330
## [19] 1.213171376 1.328999509 1.447423612 1.567985526 1.690218820 1.813650597
## [25] 1.937803323 2.062196677 2.186349403 2.309781180 2.432014474 2.552576388
## [31] 2.671000491 2.786828624 2.899612670 3.008916290 3.114316609 3.215405854
## [37] 3.311792931 3.403104937 3.488988604 3.569111666 3.643164142 3.710859539
## [43] 3.771935959 3.826157113 3.873313238 3.913221910 3.945728770 3.970708168
## [49] 3.988063939 3.997732809
f3(xi)## [1] 1.9909517649 1.9528211259 1.8861986676 1.7942816036 1.6813398436
## [6] 1.5523558128 1.4126415723 1.2674653244 1.1217234063 0.9796846586
## [11] 0.8448218622 0.7197325383 0.6061408194 0.5049645972 0.4164282460
## [16] 0.3402006796 0.2755406146 0.2214347136 0.1767187891 0.1401766540
## [21] 0.1106149481 0.0869150676 0.0680651149 0.0531756862 0.0414835023
## [26] 0.0323466062 0.0252342867 0.0197142180 0.0154386408 0.0121308244
## [31] 0.0095725677 0.0075931400 0.0060598020 0.0048698828 0.0039442911
## [36] 0.0032222851 0.0026573160 0.0022137603 0.0018643738 0.0015883236
## [41] 0.0013696759 0.0011962401 0.0010586881 0.0009498875 0.0008643962
## [46] 0.0007980840 0.0007478483 0.0007114047 0.0006871344 0.0006739744
Menghitung integral
I <- sum(Ci * f3(xi))
I## [1] 0.9996645
Hitunglah menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.00001
exact_value=0.9996645
tol <- 0.0001
err <- 1
n = 50
while(err>tol){
gL <- gaussLegendre(n = n,a = 0,4)
Ci <- gL$w # koefisien
xi <- gL$x # gauss point
res_gl <- sum(Ci * f3(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=50, result=0.9996645, error=3.73721e-08
mc_integral <- function(ftn, a, b,m=5000){
#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)
}g <- function(x) {
2*exp(-2*x)
}set.seed(123)
int_g <- mc_integral(g,a=0,b=4,m = 5000)
int_g## [1] 1.018859
exact <- 0.9996645
t <- trapezoid(f,0,4,50)
s <- simpson_n(f2,0,4,50)
g <- I
m <- int_g
nilai <- rbind(t,s,g,m)
exact <- 0.9996645
error_t <- abs(trapezoid(f,0,4,50)-exact)
error_s <- abs(simpson_n(f2,0,4,50)-exact)
error_g <- abs(I-exact)
error_m <- abs(int_g-exact)
error <- rbind(error_t,error_s,error_g,error_m)
perbandingan<- c("Metode Trapezoidal","Metode Simpson","Metode Gauss Quadrature","Metode Monte Carlo")
hasil <- data.frame(perbandingan,nilai,error)
hasil## perbandingan nilai error
## t Metode Trapezoidal 1.0017962 2.131746e-03
## s Metode Simpson 0.9996682 3.665977e-06
## g Metode Gauss Quadrature 0.9996645 3.737210e-08
## m Metode Monte Carlo 1.0188585 1.919404e-02
Berdasarkan keempat metode tersebut yaitu, metode Trapezoidal, metode Simpson,metode Gauss Quadrature, dan metode Monte Carlo. Nilai yang mendekati dari nilai fungsi exact atau sebenarnya sebesar 0.9996645 adalah metode Gauss Quadrature dengan nilai sebesar 0.9996645 dan error sebesar 3.737210e-08.