Tugas Praktikum Pertemuan 10 ProgStat

Syaza Abdu Razzaq

15/11/2021

Soal

1.a CDF Function

Diketahui pdf (probability density function) dari distirbusi Kumaraswamy adalah sebagai berikut

\[𝑓(π‘₯|π‘Ž,𝑏)= abπ‘₯^{π‘Žβˆ’1}(1βˆ’π‘₯^{π‘Ž})^{π‘βˆ’1}, dimana ;π‘₯∈(0,1)\]

Jika diketahui a=5 dan b=3, hitunglah E(X) dengan menggunakan metode Trapezoida untuk n=4, Simpson untuk n=4 dan four -point Gauss Quadrature tanpa menggunakan software apapun

Hitung Nilai Eksak

#CDF
g2 <- function(x) {
  (15*x^4*(1-x^5)^2)}
#Hitung dengan integrate
Nilai.Eksakg2<-integrate(g2,0,1)
Nilai.Eksakg2<-Nilai.Eksakg2$value
Nilai.Eksakg2
## [1] 1
#Nilai Harapan
g3 <- function(x) {
  (x*(15*x^4*(1-x^5)^2))}
#Hitung dengan integrate
Nilai.Eksakg3<-integrate(g3,0,1)
Nilai.Eksakg3<-Nilai.Eksakg3$value
Nilai.Eksakg3
## [1] 0.7102273
#Membuat Kurva dari Fungsi
curve(g3)

curve(g2)

Dengan fungsi Γ¬ntegrate didapatkan niali intergal dari fungsi tersebut = 1 dan niali harapan nya 0,7102273, selanjutnya akan dibandingkan dengan beberapa metode integrasi numerik.

Metode Trapezoidal

Metode Trapezoidal menggunakan nilai n = 4 untuk dibandingkan mana nilai yang paling mendekati perhitungan dengan fungsi integrate.

g3 <- function(x) {
  (x*(15*x^4*(1-x^5)^2))}

#Metode Trapezoidal n=4
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)
}
trpz1<-trapezoid(g3,0,1,n = 4)
trpz1
## [1] 0.6312869
#Sebagai pembanding compare dengan n = 100
trpz2<-trapezoid(g3,0,1,n = 100)
trpz2
## [1] 0.710227
#Selisih terhadap nilai eksak
var.trpz1<-abs(trpz1-Nilai.Eksakg3)
var.trpz2<-abs(trpz2-Nilai.Eksakg3)
hasil.var.trpz<-matrix(c(var.trpz1,var.trpz2), ncol=1, nrow = 2)
colnames (hasil.var.trpz) <- c("Nilai")
rownames (hasil.var.trpz) <- c("Var n=4", "Var n=100")
hasil.var.trpz<-as.data.frame(hasil.var.trpz)
hasil.var.trpz

Berdasarkan output tersebut diketahui bahwa pendekatan dengan metode trapezoidal n=4 didapatkan nilai sebesar 0,6312869 sedangkan jika menggunakan n=100 didapatkan nilai sebesar 0,710227. Hasil yang lebih dekat adalah n=100, sehingga semakin besar n maka nilai nya akan semakin mendekati nilai eksak nya.

Metode Simpson

Metode Simpson juga menggunakan nilai n = 4 untuk dibandingkan mana nilai yang paling mendekati perhitungan dengan fungsi integrate.

g3 <- function(x) {
  (x*(15*x^4*(1-x^5)^2))}

#Metode Simpson n=4,10,20,30
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)
}

simp1<-simpson_n(g3,0,1,n = 4)
simp1
## [1] 0.7683974
simp2<-simpson_n(g3,0,1,n = 100)
simp2
## [1] 0.7102284
#Selisih terhadap nilai eksak
var.simp1<-abs(simp1-Nilai.Eksakg3)
var.simp2<-abs(simp2-Nilai.Eksakg3)
hasil.var.simp<-matrix(c(var.simp1,var.simp2), ncol=1, nrow = 2)
colnames (hasil.var.simp) <- c("Nilai")
rownames (hasil.var.simp) <- c("Var n=4", "Var n=100")
hasil.var.simp<-as.data.frame(hasil.var.simp)
hasil.var.simp

Berdasarkan output tersebut diketahui bahwa pendekatan dengan metode simpson n=4 didapatkan nilai sebesar 0,7683974 sedangkan jika menggunakan n=100 didapatkan nilai sebesar 0,7102284. Hasil yang lebih dekat adalah n=100, sehingga semakin besar n maka nilai nya akan semakin mendekati nilai eksak nya.

Metode four-point Gauss Quadrature

Hitung nilai integrasi dengan metode four-point Gauss Quadrature menggunakan perhitungan manual.

library(pracma)
gaussLegendre(n=4,a=-1,b=1)
## $x
## [1] -0.8611363 -0.3399810  0.3399810  0.8611363
## 
## $w
## [1] 0.3478548 0.6521452 0.6521452 0.3478548

langkah 1

Sebelum kita menggunakan nilai-nilai koefisien dan titik gauss, perlu dilakukan transformasi sehingga domain integral menjadi [βˆ’1,1].

\(x=\frac{1}{2}[t(bβˆ’a)+a+b]\)

\(x=\frac{1}{2}[t(1βˆ’0)+0+1]\)

\(x=\frac{1}{2}[t+1]=\frac{1}{2}[t+1]\)

dan

\(dx=\frac{1}{2}(bβˆ’a)dt\)

\(dx=\frac{1}{2}(1βˆ’0)dt=\frac{1}{2}dt\)

Sehingga integralnya menjadi

\[\int_{0}^{1} 15x^5(1-x)^2 \; dx = \int_{-1}^{1}\frac{15}{2}(\frac{t}{2}+\frac{t}{2})^5(1-(\frac{t}{2}+\frac{1}{2})^5)^2dt\]

langkah 2

Kemudian, kita menggunakan nilai-nilai koefisien dan titik gauss saat n=4

\[\int_{-1}^{1}\frac{15}{2}(\frac{t}{2}+\frac{t}{2})^5(1-(\frac{t}{2}+\frac{1}{2})^5)^2dt β‰ˆ I = C_{1}f(t1)+C_{2}f(t2)+C_{3}f(t3)+C_{4}f(t4)\]

\[I = C_{1}f(t1)+C_{2}f(t2)+C_{3}f(t3)+C_{4}f(t4)\]

\[I=0.3478548f(βˆ’0.8611363)+0.6521452f(βˆ’0.3399810)+0.6521452f(0.3399810)+0.3478548f(0.8611363)\]

Menghitung fungsi f(x) pada setiap xi

\[f(βˆ’0.8611363) = \frac{15}{2}(\frac{βˆ’0.8611363}{2}+\frac{βˆ’0.8611363}{2})^5(1-(\frac{βˆ’0.8611363}{2}+\frac{1}{2})^5)^2 = 0.6793\]

\[f(βˆ’0.3399810) = \frac{15}{2}(\frac{βˆ’0.3399810}{2}+\frac{βˆ’0.3399810}{2})^5(1-(\frac{βˆ’0.3399810}{2}+\frac{1}{2})^5)^2 = 0.0291\]

\[f(0.3399810) = \frac{15}{2}(\frac{0.3399810}{2}+\frac{0.3399810}{2})^5(1-(\frac{0.3399810}{2}+\frac{1}{2})^5)^2 = 0.7576\]

\[f(0.8611363) = \frac{15}{2}(\frac{0.8611363}{2}+\frac{0.8611363}{2})^5(1-(\frac{0.8611363}{2}+\frac{1}{2})^5)^2 = 0.4780\]

sehingga

\[I=0.3478580.67931+0.65214520.0291+0.6521452β‹…0.75769+0.3478580.47805=0.6793\]

\[\int_{0}^{1} 15x^5(1-x)^2 \; dx β‰ˆ I = 0.6793\]

1.b Expected Value

Jika diketahui nilai exact dari

\[𝐸(𝑋)=𝑏Γ(1+1/a)Ξ“(𝑏)/Ξ“(1+1/a+𝑏)\]

metode mana yang paling mendekati untuk menghitung nilai 𝐸(𝑋) dengan toleransi 0.0001? Gunakan R!

Hitung Nilai Eksak

nilai.harapan<-(3*gamma(6/5)*gamma(3))/gamma(21/5)
nilai.harapan
## [1] 0.7102273

Didapatkan nilai eksak dari E(X) = 0,7102273. Selanjutnya akan dibandingkan dengan beberapa metode integrasi numerik.

Metode Trapezoidal

Metode Trapezoidal menggunakan nilai n = 4 dan toleransi = 0,0001 untuk dibandingkan mana nilai yang paling mendekati perhitungan dengan nilai eksak.

exact_value= nilai.harapan
tol <-  0.0001
err <- 1
n = 4

while(err>tol){
  res_trap <- trapezoid(g3,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.07894039
## n=5, result=0.6738123, error=0.03641494
## n=6, result=0.6914928, error=0.01873451
## n=7, result=0.6997126, error=0.0105147
## n=8, result=0.7039057, error=0.006321576
## n=9, result=0.7062116, error=0.004015628
## n=10, result=0.7075597, error=0.002667566
## n=11, result=0.7083885, error=0.001838794
## n=12, result=0.7089199, error=0.001307412
## n=13, result=0.7092729, error=0.0009543875
## n=14, result=0.7095147, error=0.0007126217
## n=15, result=0.7096846, error=0.0005426467
## n=16, result=0.7098069, error=0.0004203769
## n=17, result=0.7098966, error=0.0003306343
## n=18, result=0.7099637, error=0.0002635799
## n=19, result=0.7100146, error=0.0002126742
## n=20, result=0.7100538, error=0.0001734721
## n=21, result=0.7100844, error=0.0001428915
## n=22, result=0.7101085, error=0.000118756
## n=23, result=0.7101278, error=9.950361e-05

Berdasarkan output tersebut diketahui bahwa pendekatan dengan metode trapezoidal n=4, untuk mendapatkan nilai dengan toleransi tersebut dibutuhkan 20 iterasi.

Metode Simpson

Metode Simpson juga menggunakan nilai n = 4 untuk dibandingkan mana nilai yang paling mendekati perhitungan dengan fungsi integrate.

exact_value= nilai.harapan
tol <-  0.0001
err <- 1
n = 4

while(err>tol){
  res_simp <- simpson_n(g3,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.05817008
## n=5, result=0.7683974, error=0.05817008
## n=6, result=0.7497082, error=0.03948097
## n=7, result=0.7497082, error=0.03948097
## n=8, result=0.728112, error=0.0178847
## n=9, result=0.728112, error=0.0178847
## n=10, result=0.7188088, error=0.008581559
## n=11, result=0.7188088, error=0.008581559
## n=12, result=0.7147289, error=0.00450162
## n=13, result=0.7147289, error=0.00450162
## n=14, result=0.712782, error=0.002554739
## n=15, result=0.712782, error=0.002554739
## n=16, result=0.711774, error=0.001546689
## n=17, result=0.711774, error=0.001546689
## n=18, result=0.7112144, error=0.0009871029
## n=19, result=0.7112144, error=0.0009871029
## n=20, result=0.7108852, error=0.0006578924
## n=21, result=0.7108852, error=0.0006578924
## n=22, result=0.7106819, error=0.0004545901
## n=23, result=0.7106819, error=0.0004545901
## n=24, result=0.7105511, error=0.0003238091
## n=25, result=0.7105511, error=0.0003238091
## n=26, result=0.710464, error=0.0002367075
## n=27, result=0.710464, error=0.0002367075
## n=28, result=0.7104042, error=0.000176941
## n=29, result=0.7104042, error=0.000176941
## n=30, result=0.7103621, error=0.0001348572
## n=31, result=0.7103621, error=0.0001348572
## n=32, result=0.7103318, error=0.0001045471
## n=33, result=0.7103318, error=0.0001045471
## n=34, result=0.7103096, error=8.227772e-05

Berdasarkan output tersebut diketahui bahwa pendekatan dengan metode simpson n=4, untuk mendapatkan nilai dengan toleransi tersebut dibutuhkan 31 iterasi.

Metode Gauss Quadrature

Metode gauss quadratur juga menggunakan nilai n = 4 untuk dibandingkan mana nilai yang paling mendekati perhitungan dengan nilai eksak.

library(pracma)
library(dplyr)
## 
## 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
exact_value= nilai.harapan
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 * g3(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.03092735
## n=5, result=0.707375, error=0.002852251
## n=6, result=0.7101422, error=8.504999e-05

Berdasarkan output tersebut diketahui bahwa pendekatan dengan metode gauss legendre n=4, untuk mendapatkan nilai dengan toleransi tersebut dibutuhkan 3 iterasi. Sehingga secara keseluruhan dapat disimpulkan bahwa metode ini lah yang paling baik dalam menghitung nilai dari fungsi tersebut jika dibandingkan dengan 2 metode integrasi numerik yang lain.

2. CDF Function

Diketahui pdf (probability density function) dari distirbusi Eksponensial adalah sebagai berikut :

\[𝑓(π‘₯|π‘Ž,𝑏)=πœ†expβˆ’πœ†π‘₯, dimana π‘₯∈(0,∞)\]

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.

Hitung Nilai Eksak

g1 <- function(x) {
  (2*exp(-2*x))}

#Hitung dengan integrate
Nilai.Eksak<-integrate(g1,0,4)
Nilai.Eksak1<-Nilai.Eksak$value
Nilai.Eksak1
## [1] 0.9996645
curve(g1)

Dengan fungsi Γ¬ntegrate didapatkan nilai intergal dari fungsi tersebut = 1, selanjutnya akan dibandingkan dengan beberapa metode integrasi numerik.

Metode Monte Carlo

Metode Montecarlo menggunakan beberapa nilai m untuk dibandingkan mana nilai yang paling mendekati perhitungan dengan fungsi integrate dengan m = 4,14,20,30.

library(pracma)
library(dplyr)

g1 <- function(x) {
  (2*exp(-2*x))}

#Metode Monte Carlo m = 10,100,1000,10000
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)
}

g1
## function(x) {
##   (2*exp(-2*x))}
set.seed(123)
int_g1 <- mc_integral(g1,a=0,b=4,m = 10000)
int_g2 <- mc_integral(g1,a=0,b=4,m = 1000)
int_g3 <- mc_integral(g1,a=0,b=4,m = 100)
int_g4 <- mc_integral(g1,a=0,b=4,m = 10)

hasil <-matrix (c(int_g1,int_g2,int_g3,int_g4), nrow =4, ncol =1)
rownames ( hasil ) <- c("m = 10000 ","m = 1000","m = 100","m = 10")
colnames ( hasil ) <- c("Nilai")
hasil<-as.data.frame(hasil)
hasil

Metode Trapezoidal

Metode Trapezoidal juga digunakan menggunakan beberapa nilai n untuk dibandingkan mana nilai yang paling mendekati perhitungan dengan fungsi integrate dengan m = 4,14,20,30.

library(pracma)
library(dplyr)

g1 <- function(x) {
  (2*exp(-2*x))}

#Metode Trapezoidal n=4,10,20,30
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)
}
tr1<-trapezoid(g1,0,4,n = 4)
tr2<-trapezoid(g1,0,4,n = 10)
tr3<-trapezoid(g1,0,4,n = 20)
tr4<-trapezoid(g1,0,4,n = 30)

hasil2 <-matrix (c(tr1,tr2,tr3,tr4), nrow =4, ncol =1)
rownames ( hasil2 ) <- c("n = 4 ","n = 10","n = 20","n = 30")
colnames ( hasil2 ) <- c("Nilai")
hasil2<-as.data.frame(hasil2)
hasil2

Metode Simpson

Metode Simpson juga digunakan menggunakan beberapa nilai n untuk dibandingkan mana nilai yang paling mendekati perhitungan dengan fungsi integrate dengan m = 4,14,20,30.

library(pracma)
library(dplyr)

g1 <- function(x) {
  (2*exp(-2*x))}

#Metode Simpson n=4,10,20,30
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)
}

sp1<-simpson_n(g1,0,4,n = 4)
sp2<-simpson_n(g1,0,4,n = 10)
sp3<-simpson_n(g1,0,4,n = 20)
sp4<-simpson_n(g1,0,4,n = 30)


hasil3 <-matrix (c(sp1,sp2,sp3,sp4), nrow =4, ncol =1)
rownames ( hasil3 ) <- c("n = 4 ","n = 10","n = 20","n = 30")
colnames ( hasil3 ) <- c("Nilai")
hasil3<-as.data.frame(hasil3)
hasil3

Metode Gauss Quadratur

Metode Gauss Quadratur akan dicobakan beberapa nilai n yaitu 4,10,20, dan 30.Selain itu juga akan dihitung dengan pendekatan gauss legendre dengan mendefinsikan nilai toleransinya.

library(pracma)
library(dplyr)

g1 <- function(x) {
  (2*exp(-2*x))}


#Metode Gauss Quadrature

gL <- gaussLegendre(n = 4,a = 0,4)
Ci <- gL$w # koefisien
Ci
## [1] 0.6957097 1.3042903 1.3042903 0.6957097
xi <- gL$x # gauss point
xi
## [1] 0.2777274 1.3200379 2.6799621 3.7222726
I <- sum(Ci * g1(xi))


gL2 <- gaussLegendre(n = 10,a = 0,4)
Ci2 <- gL2$w # koefisien
Ci2
##  [1] 0.1333427 0.2989027 0.4381727 0.5385334 0.5910484 0.5910484 0.5385334
##  [8] 0.4381727 0.2989027 0.1333427
xi2 <- gL2$x # gauss point
xi2
##  [1] 0.05218694 0.26987327 0.64118086 1.13320921 1.70225132 2.29774868
##  [7] 2.86679079 3.35881914 3.73012673 3.94781306
I2 <- sum(Ci2 * g1(xi2))


gL3 <- gaussLegendre(n = 20,a = 0,4)
Ci3 <- gL3$w # koefisien
Ci3
##  [1] 0.03522801 0.08120286 0.12534410 0.16655348 0.20386024 0.23638906
##  [7] 0.26337728 0.28419222 0.29834597 0.30550677 0.30550677 0.29834597
## [13] 0.28419222 0.26337728 0.23638906 0.20386024 0.16655348 0.12534410
## [19] 0.08120286 0.03522801
xi3 <- gL3$x # gauss point
xi3
##  [1] 0.01374280 0.07205615 0.17553114 0.32176606 0.50733619 0.72789264
##  [7] 0.97826600 1.25258782 1.54442830 1.84694696 2.15305304 2.45557170
## [13] 2.74741218 3.02173400 3.27210736 3.49266381 3.67823394 3.82446886
## [19] 3.92794385 3.98625720
I3<- sum(Ci3 * g1(xi3))


gL4 <- gaussLegendre(n = 30,a = 0,4)
Ci4 <- gL4$w # koefisien
Ci4
##  [1] 0.01593638 0.03693294 0.05756942 0.07759839 0.09680535 0.11498631
##  [7] 0.13194846 0.14751195 0.16151179 0.17379957 0.18424504 0.19273747
## [13] 0.19918684 0.20352478 0.20570531 0.20570531 0.20352478 0.19918684
## [19] 0.19273747 0.18424504 0.17379957 0.16151179 0.14751195 0.13194846
## [25] 0.11498631 0.09680535 0.07759839 0.05756942 0.03693294 0.01593638
xi4 <- gL4$x # gauss point
xi4
##  [1] 0.006213032 0.032663753 0.079956270 0.147599905 0.234878928 0.340868475
##  [7] 0.464445136 0.604299010 0.758947634 0.926751704 1.105932461 1.294590549
## [13] 1.490726148 1.692260173 1.897056315 2.102943685 2.307739827 2.509273852
## [19] 2.705409451 2.894067539 3.073248296 3.241052366 3.395700990 3.535554864
## [25] 3.659131525 3.765121072 3.852400095 3.920043730 3.967336247 3.993786968
I4 <- sum(Ci4 * g1(xi4))


hasil4 <-matrix (c(I,I2,I3,I4), nrow =4, ncol =1)
rownames ( hasil4 ) <- c("n = 4 ","n = 10","n = 20","n = 30")
colnames ( hasil4 ) <- c("Nilai")
hasil4<-as.data.frame(hasil4)
hasil4
#Menhitung menggunakan R hingga hasil integral mendekati hasil exact-nya dengan toleransi 0.0000001
exact_value= 0.9996645
tol <- 0.0000001
err <- 1
n = 4

while(err>tol){
  
  gL <- gaussLegendre(n = n,a = 0,4)

 Ci <- gL$w # koefisien
 xi <- gL$x # gauss point
  
  res_gl <- sum(Ci * g1(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.9976267, error=0.002037806
## n=5, result=0.9995785, error=8.59847e-05
## n=6, result=0.999662, error=2.471959e-06
## n=7, result=0.9996645, error=1.619311e-08

Compare Hasil

Untuk mengetahui metode integrasi numerik yang paling mendekati hasilnya dengan fungsi integrate berikut disajikan dalam data frame perbandinggan antara hasil integral fungsi dengan beberapa metode integrasi numerik terhadap nilai eksak nya.

#Komparasi Hasil
a<-0.999645
hasil5 <-matrix (c(Nilai.Eksak1,int_g1,int_g2,int_g3,int_g4,tr1,tr2,tr3,tr4,I,I2,I3,I4,sp1,sp2,sp3,sp4), nrow =17, ncol =1)
rownames ( hasil5 ) <- c("Nilai Eksak","Monte Carlo m =10000 ","Monte Carlo m =1000 ","Monte Carlo m =100 ","Monte Carlo m =10 ","Trapezoid n =4","Trapezoid n =10","Trapezoid n =20","Trapezoid n =30","Legendre n =4","Legendre n =10","Legendre n =20","Legendre n =30","Simpson n =4","Simpson n =10","Simpson n =20","Simpson n =30")
colnames ( hasil5 ) <- c("Nilai")
hasil5<-as.data.frame(hasil5)
hasil6<-mutate(hasil5, NialiEksak = a)
hasil6

Berdasarkan nilai tersebut dapat disimpulkan bahwa metode Legendre Gauss Quadratur adalah metode terbaik, hal itu terlihat nilai integralnya sangat dekat dengan nilai eksaknya.