Metode Integral Numerik
Metode Integral Numerik
Metode integrasi numerik adalah suatu pendekatan yang digunakan untuk memberikan hasil dari pengintegralan yang tidak didapatkan secara analitik. Biasanya prndekatanya ini dengan menghitung luas daerah dibawah suatu kurva suatu persamaan dengan batas tertentu.
Metode Trapezoidal
Metode trapezodia merupakan suatu pendekatan area dibawah kurva dengan fungsi \(y=f(x)\) dengan subinterval \([x_{i},x_{i+1}]\). Menggunakan pendeketan \(\int_{a}^{b} f(x) \ dx = T\) didefinisikan sebagai : \[ \int_{q}^{b}f(x) \ dx ≈ \ T_{n} = \frac{h}{2}[f(x_{0})+2f(x_{1})+2f(x_{2})+...+2(f(x_{n-1})+f(x_{n})]\]
dimana \(h=\frac{b-a}{n}\) dan \(x_{i} = a+ih\) Setiap daerah \(x_{0}\) dan \(x_{1}\) l
Metode ini secara berurutan akan dibangun ruang trapesium dan dihitung luasnya. Semakin banyak intervalnya akan semakin baik dimana errornya akan semakin kecil dan luasnya akan semakin kecil.
Function Metode Trapezoidal di R
<- function(ftn, a, b, n = 100) {
trapezoid <- (b-a)/n
h <- seq(a, b, by = h)
x.vec <- sapply(x.vec, ftn) # ftn(x.vec)
f.vec <- h*(f.vec[1]/2 + sum(f.vec[2:n]) + f.vec[n+1]/2)
Trap return(Trap)
}
Metode Simpson
Metode simpson adalah metode yang membagi subinterval menjadi \([a,b]\) menjadi \(n\) yang merupakan bilangan genap. Menaksir luas dibawah kurva suatu fungsi menggunakan pendeketan \(f(x)\) menggunakan polinomial derajat dua. Adapun pendekatan luasnya digunakan \(\int_{a}^{b} f(x) \ dx\) didefinisikan sebagai : \[\int_{a}^{b} f(x) \ dx ≈ S_{n} = \frac{h}{3}[f(x_{0})+4f(x_{1})+2f(x_{2})+4f(x_{3})+...+4f(x_{n-1}+f(x_{n})]\] dimana \(h=\frac{b-a}{n}\)
Metode simpson pada suatu \(f(x)\) dengan interval \([a,b]\) dapat ditulis :
- Tentukan nilai n dan h dimana \(h = \frac{b-a}{n}\)
- Tentukan nilai awal \(x_{0}=a\) dan \(x_{n}= b\) dan dilanjutkan dengan menghitung \(f(a)\) dan $f(b).
- Semua nilai \(x = 1,2,...,n-1\) akan dihitung jika nilai ganjil \(4f(x)\) dan genap \(2f(x)\)
Function Metode Simpson di R
<- function(ftn, a, b, n = 100) {
simpson_n <- max(c(2*(n %/% 2), 4))
n <- (b-a)/n
h <- seq(a+h, b-h, by = 2*h) # ganjil
x.vec1 <- seq(a+2*h, b-2*h, by = 2*h) # genap
x.vec2 <- sapply(x.vec1, ftn) # ganjil
f.vec1 <- sapply(x.vec2, ftn) # genap
f.vec2 <- h/3*(ftn(a) + ftn(b) + 4*sum(f.vec1) + 2*sum(f.vec2))
S return(S)
}
Metode Gauss Quadrature
Persamaan yang digunakan pada metode gauss quadrature adalah : \[\int_{a}^{b}f(x) \ dx ≈ \sum_{n=1}^{n}C_{i}f(x_{i})\] dimana koefisien \(C_{i}\) adalah nilai bobot dan \(x_{i}\) adalah titik gauss yang berada dalam interval \([-1,1]\). Jika domain integral \([a,b]\) suatu nilai sembarang, maka akan ditranformasikan menjadi nilai \([-1,1]\)
\[\int_{a}^{b}f(x)dx\ → \int_{-1}^{1}f(t)dt\] Dimana : \[ x = \frac{1}{2}[t(b-a)+a+b] \\ dx = \frac{1}{2}(b-a)dt \] Sehingga Fungsi ntegrralnya menjadi :
\[\int_{-1}^{1} \ f(\frac{1}{2}[t(b-a)+a+b])\frac{1}{2}(b-a)\]
Function Metode Gauss Quadrature di R
library(pracma)
# Untuk n = 5
gaussLegendre(n=5,a=-1,b=1)
## $x
## [1] -9.061798e-01 -5.384693e-01 5.551115e-16 5.384693e-01 9.061798e-01
##
## $w
## [1] 0.2369269 0.4786287 0.5688889 0.4786287 0.2369269
# untuk n = 10
gaussLegendre(n=10,a=-1,b=1)
## $x
## [1] -0.9739065 -0.8650634 -0.6794096 -0.4333954 -0.1488743 0.1488743
## [7] 0.4333954 0.6794096 0.8650634 0.9739065
##
## $w
## [1] 0.06667134 0.14945135 0.21908636 0.26926672 0.29552422 0.29552422
## [7] 0.26926672 0.21908636 0.14945135 0.06667134
Metode Monte Carlo
Persamaan fungsi dar metode monte carlo adalah : \[\int_{a}^{b}f(x)dx \ ≈ (b-a)\frac{1}{N}\sum_{i=1}^{n}f(x_{i})\]
Function Monte Carlo di R
<- function(ftn, a, b,m=1000){
mc_integral #Membangkitkan x berdistribusi U(a,b)
<- runif(m,a,b)
x # Menghitung rata-rata dari output fungsi
<- ftn(x)
Gx <- mean(Gx)
Gx_m <- (b-a)*Gx_m
theta.hat return(theta.hat)
}
Tugas
- Diketahui pdf (probability density function) dari distirbusi Kumaraswamy adalah sebagai berikut \[f(x|a,b) = ab x^{a-1} (1-x^a)^{b-1} \ dimana \ {x \in (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. (Boleh diketik ataupun ditulis tangan kemudian difoto)
Jika diketahui nilai exact dari\(E(x) = \frac{b\Gamma(1+\frac{3}{a})\Gamma(b)}{\Gamma(1+\frac{1}{a}+b)}\) metode mana yang paling mendekati untuk menghitung nilai \(𝐸(𝑋)\) dengan toleransi 0.0001? Gunakan R
- Diketahui pdf (probability density function) dari distirbusi Eksponensial adalah sebagai berikut \[f(x|a,b) = \lambda \exp - \lambda x , \ dimana\ 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.
Nomor 1
Part A
Metode Trapezoidal
Suatu fungsi \(x \in (0,1)\)
\[f(x|a,b) = ab x^{a-1} (1-x^a)^{b-1}\ ; \ a = 5,\ b = 3 \ \]
maka :
\[ f(x|a,b) = 15 x^{4} (1-x^5)^{2} ; \ x \in (0,1) \] \[ E(x) = \int_{a}^{b}x \ f(x)dx ≈ \int_{0}^{1} 15x^5(1-x^5)^2 dx \]
Dengan nilai \(n = 4\) menggunakan pendekatan Trapezoidal adalah \[ T_{4} = \frac{h}{2}[f(x_{0})+2f(x_{1})+2f(x_{2})+2f(x_{3})+2f(x_{4})]\]
Nilai subinterval : \[ \ h = \frac{b-a}{n} \ = \frac{1-0}{4} \ = \frac{1}{4}\]
Menghitung setiap \(f(xi)\) adalah
\(f(x_{0}) = f(0) = 15(0)^5(1-(0)^5)^2 = 0\)’
\(f(x_{1}) = f(0.25) = 15(0.25)^5(1-(0.25)^5)^2 = 0.014\)
\(f(x_{2}) = f(0.5) = 15(0.5)^5(1-(0.5)^5)^2 = 0.4\)
\(f(x_{3}) = f(0.75) = 15(0.75)^5(1-(0.75)^5)^2 = 2.07\)
\(f(x_{4}) = f(1) = 15(1)^5(1-(1)^5)^2 = 0\)
Sehingga :
\[ T_{4} = \frac{1}{8}[0+2 \ .\ 0 +2 \ .\ 0.014+2 \ .\ 0.4+ \ .\ 2.07 ] = 0.6312\]
Metode Simpson
Diketahui suatu fungsi
\[ f(x|a,b) = 15 x^{4} (1-x^5)^{2} ; \ x \in (0,1) \] \[ E(x) = \int_{a}^{b}x \ f(x)dx ≈ \int_{0}^{1} 15x^5(1-x^5)^2 dx \]
Dengan nilai \(n = 4\) menggunakan pendekatan Simpson adalah \[ S_{4} = \frac{h}{3}[f(x_{0})+4f(x_{1})+2f(x_{2})+4f(x_{3})+f(x_{4})]\]
Nilai subinterval : \[ \ h = \frac{b-a}{n} \ = \frac{1-0}{4} \ = \frac{1}{4}\]
Menghitung setiap \(f(xi)\) adalah
\(f(x_{0}) = f(0) = 15(0)^5(1-(0)^5)^2 = 0\)’
\(f(x_{1}) = f(0.25) = 15(0.25)^5(1-(0.25)^5)^2 = 0.014\)
\(f(x_{2}) = f(0.5) = 15(0.5)^5(1-(0.5)^5)^2 = 0.4\)
\(f(x_{3}) = f(0.75) = 15(0.75)^5(1-(0.75)^5)^2 = 2.07\)
\(f(x_{4}) = f(1) = 15(1)^5(1-(1)^5)^2 = 0\)
Sehingga
\[ S_{4} = \frac{1}{12}[0 +4 \ . \ 0+2 \ .\ 0.014+4 \ .\ 0.4+ \ 0 ] = 0.768 \]
Metode Gauss
Tranformasi domain menjadi \([-1,1]\)
\(x = \frac{1}{2}[t(b-a)+a+b] = \frac{1}{2}(t+1)\)
\(dx =\frac{1}{2}(b-a) = \frac{1}{2}\)
Sehingga
\[ \int_{0}^{1} 15 x^{5} (1-x^5)^{2} = \int_{-1}^{1} \frac{15}{2} (\frac{1}{2}[t+1])^5(1 - (\frac{1}{2}[t+1]))^5)^2 dt \\ \ \ \ \ ≈ I = C_{1}f(t_{1})+C_2f(t_{2})+C_3f(t_{3})+C_4f(t_{4}) \]
Menentukan nilai koefisien pada batas \([-1,1]\) dapat dilihat pada table gauss Quadrature
Atau dapat menggunakan R
gaussLegendre(n = 4,a = -1,1)
## $x
## [1] -0.8611363 -0.3399810 0.3399810 0.8611363
##
## $w
## [1] 0.3478548 0.6521452 0.6521452 0.3478548
Setiap nilai t adalah sebagai berikut :
\(f(-0.86) = \frac{15}{2}(\frac{1}{2}[(-0.86)+1])^5(1 - (\frac{1}{2}[(-0.86)+1]))^5)^2dt = 0.000051\)
\(f(-0.339) = \frac{15}{2}(\frac{1}{2}[(-0.339)+1])^5(1 - (\frac{1}{2}[(-0.339)+1]))^5)^2dt = 0.029\)
\(f( \ 0.339) = \frac{15}{2}(\frac{1}{2}[(0.339)+1])^5(1 - (\frac{1}{2}[(0.339)+1]))^5)^2dt = 0.755\)
\(f( \ 0.861) = \frac{15}{2}(\frac{1}{2}[(0.861)+1])^5(1 - (\frac{1}{2}[(0.861)+1]))^5)^2dt = 0.47\)
Hasil Nilai I
\[ I = (0.34)f(-0.86)+(0.65)f(-0.339)+(0.65)f(0.339)+(0.347)f(0.861) = 0.6763\]
Metode Pendekatan Terbaik
Nilai exact yang diadapatkan dari fungsi adalah :
\[\int_{0}^{1} 15 x^{5} (1-x^5)^{2} dx = 15[\frac{1}{6}x^6+\frac{2}{11}x^{11}+\frac{1}{16}x^{16} \ ]_{0}^{1} = 0.7102\]
Berdasarkan hasil yang didaptkan dari 3 methode tersebut :
Berdasarkan hasil manual yang dilakukan dapat diambil kesimpulan bahwa metode terbaik adalah metode gauss Quadrature dengan selisih angka yang lebih kecil daripada Trapezoid dan Simppson.
Part B
Diketahui :
\[E(x) = \frac{b\Gamma(1+\frac{3}{a})\Gamma(b)}{\Gamma(1+\frac{1}{a}+b)} \ a = 5 \ dan \ b = 3 \\ = \frac{3 \Gamma(\frac{6}{5})\Gamma(3)}{\Gamma(\frac{21}{5})} = 0.7102\]
Metode Trapezoidal
- Mendefinisikan fungsi \(f(x)\)
<- function(x){
f 15*x^5*(1-x^5)^2
}
trapezoid(f,0,1,n = 4)
## [1] 0.6312869
= 0.7102
exact_value<- 0.0001
tol <- 1
err = 4
n
while(err>tol){
<- trapezoid(f,0,1,n = n)
res_trap
<- abs(res_trap-exact_value)
err
cat("n=",n,", result=",res_trap,", error=",err,"\n",sep = "")
=n+1
nif(n==1000){
break
}
}
## n=4, result=0.6312869, error=0.07891312
## n=5, result=0.6738123, error=0.03638767
## n=6, result=0.6914928, error=0.01870724
## n=7, result=0.6997126, error=0.01048743
## n=8, result=0.7039057, error=0.006294303
## n=9, result=0.7062116, error=0.003988356
## n=10, result=0.7075597, error=0.002640293
## n=11, result=0.7083885, error=0.001811522
## n=12, result=0.7089199, error=0.001280139
## n=13, result=0.7092729, error=0.0009271148
## n=14, result=0.7095147, error=0.000685349
## n=15, result=0.7096846, error=0.0005153739
## n=16, result=0.7098069, error=0.0003931042
## n=17, result=0.7098966, error=0.0003033616
## n=18, result=0.7099637, error=0.0002363072
## n=19, result=0.7100146, error=0.0001854014
## n=20, result=0.7100538, error=0.0001461994
## n=21, result=0.7100844, error=0.0001156188
## n=22, result=0.7101085, error=9.148331e-05
Metode Simpson
simpson_n(f,0,1,n = 4)
## [1] 0.7683974
= 0.7102
exact_value<- 0.0001
tol <- 1
err = 4
n
while(err>tol){
<- simpson_n(f,0,1,n = n)
res_simp
<- abs(res_simp-exact_value)
err
cat("n=",n,", result=",res_simp,", error=",err,"\n",sep = "")
=n+1
nif(n==100){
break
}
}
## n=4, result=0.7683974, error=0.05819736
## n=5, result=0.7683974, error=0.05819736
## n=6, result=0.7497082, error=0.03950824
## n=7, result=0.7497082, error=0.03950824
## n=8, result=0.728112, error=0.01791197
## n=9, result=0.728112, error=0.01791197
## n=10, result=0.7188088, error=0.008608832
## n=11, result=0.7188088, error=0.008608832
## n=12, result=0.7147289, error=0.004528893
## n=13, result=0.7147289, error=0.004528893
## n=14, result=0.712782, error=0.002582012
## n=15, result=0.712782, error=0.002582012
## n=16, result=0.711774, error=0.001573962
## n=17, result=0.711774, error=0.001573962
## n=18, result=0.7112144, error=0.001014376
## n=19, result=0.7112144, error=0.001014376
## n=20, result=0.7108852, error=0.0006851651
## n=21, result=0.7108852, error=0.0006851651
## n=22, result=0.7106819, error=0.0004818628
## n=23, result=0.7106819, error=0.0004818628
## n=24, result=0.7105511, error=0.0003510819
## n=25, result=0.7105511, error=0.0003510819
## n=26, result=0.710464, error=0.0002639803
## n=27, result=0.710464, error=0.0002639803
## n=28, result=0.7104042, error=0.0002042138
## n=29, result=0.7104042, error=0.0002042138
## n=30, result=0.7103621, error=0.0001621299
## n=31, result=0.7103621, error=0.0001621299
## n=32, result=0.7103318, error=0.0001318198
## n=33, result=0.7103318, error=0.0001318198
## n=34, result=0.7103096, error=0.0001095505
## n=35, result=0.7103096, error=0.0001095505
## n=36, result=0.7102929, error=9.28971e-05
Metode Gauss Quadrature
<- gaussLegendre(n = 4,a = -1,1)
gL <- gL$w
Ci <- gL$x
xi
<- sum(Ci * f(xi))
I I
## [1] -4.68105
=0.7102
exact_value<- 0.00001
tol <- 1
err = 4
n
while(err>tol){
<- gaussLegendre(n = n,a = 0,1)
gL
<- gL$w
Ci <- gL$x
xi
<- sum(Ci * f(xi))
res_gl
<- abs(res_gl-exact_value)
err
cat("n=",n,", result=",res_gl,", error=",err,"\n",sep = "")
=n+1
nif(n==50){
break
}
}
## n=4, result=0.6792999, error=0.03090008
## n=5, result=0.707375, error=0.002824979
## n=6, result=0.7101422, error=5.777726e-05
## n=7, result=0.7102266, error=2.663598e-05
## n=8, result=0.7102273, error=2.727273e-05
## n=9, result=0.7102273, error=2.727273e-05
## n=10, result=0.7102273, error=2.727273e-05
## n=11, result=0.7102273, error=2.727273e-05
## n=12, result=0.7102273, error=2.727273e-05
## n=13, result=0.7102273, error=2.727273e-05
## n=14, result=0.7102273, error=2.727273e-05
## n=15, result=0.7102273, error=2.727273e-05
## n=16, result=0.7102273, error=2.727273e-05
## n=17, result=0.7102273, error=2.727273e-05
## n=18, result=0.7102273, error=2.727273e-05
## n=19, result=0.7102273, error=2.727273e-05
## n=20, result=0.7102273, error=2.727273e-05
## n=21, result=0.7102273, error=2.727273e-05
## n=22, result=0.7102273, error=2.727273e-05
## n=23, result=0.7102273, error=2.727273e-05
## n=24, result=0.7102273, error=2.727273e-05
## n=25, result=0.7102273, error=2.727273e-05
## n=26, result=0.7102273, error=2.727273e-05
## n=27, result=0.7102273, error=2.727273e-05
## n=28, result=0.7102273, error=2.727273e-05
## n=29, result=0.7102273, error=2.727273e-05
## n=30, result=0.7102273, error=2.727273e-05
## n=31, result=0.7102273, error=2.727273e-05
## n=32, result=0.7102273, error=2.727273e-05
## n=33, result=0.7102273, error=2.727273e-05
## n=34, result=0.7102273, error=2.727273e-05
## n=35, result=0.7102273, error=2.727273e-05
## n=36, result=0.7102273, error=2.727273e-05
## n=37, result=0.7102273, error=2.727273e-05
## n=38, result=0.7102273, error=2.727273e-05
## n=39, result=0.7102273, error=2.727273e-05
## n=40, result=0.7102273, error=2.727273e-05
## n=41, result=0.7102273, error=2.727273e-05
## n=42, result=0.7102273, error=2.727273e-05
## n=43, result=0.7102273, error=2.727273e-05
## n=44, result=0.7102273, error=2.727273e-05
## n=45, result=0.7102273, error=2.727273e-05
## n=46, result=0.7102273, error=2.727273e-05
## n=47, result=0.7102273, error=2.727273e-05
## n=48, result=0.7102273, error=2.727273e-05
## n=49, result=0.7102273, error=2.727273e-05
Metode Terbaik
Metode terbaik yang dilihat dari eror yang minimum adalah dengan menggunakan metode Gauss Quadrature
dengan nilai 0.67 dan error 0.0309 yang juga memiliki nilai yang paling dekat dengan nilai exactnya yaitu 0.712
Nomor 2
CDF dari fungsi
\[\int_{0}^{\infty} f(x|a,b) =\int_{0}^{\infty} \lambda \exp ^{- \lambda x} dx\ ; \ \lambda = 2 \ dan \ n = 4\] \[\int_{0}^{\infty} 2 \exp ^{- 2x} dx\]
Nilai exact dari
\[\int_{0}^{4} 2 \exp ^{- 2x} dx = 0.99966\]
Metode Trapezoid
Dengan nilai \(n = 4\) menggunakan pendekatan Trapezoidal adalah
\[ T_{4} = \frac{h}{2}[f(x_{0})+2f(x_{1})+2f(x_{2})+2f(x_{3})+2f(x_{4})]\]
Nilai subinterval : \[\ h = \frac{b-a}{n} \ = \frac{4-0}{4} \ = 1 \]
Menghitung setiap \(f(xi)\) adalah
\(f(x_{0}) = f(0) = 15(0)^5(1-(0)^5)^2 = 2\)’
\(f(x_{1}) = f(1) = 15(1)^5(1-(1)^5)^2 = 0.27\)
\(f(x_{2}) = f(2) = 15(2)^5(1-(2)^5)^2 = 0.036\)
\(f(x_{3}) = f(3) = 15(3)^5(1-(3)^5)^2 = 0.004\)
\(f(x_{4}) = f(4) = 15(4)^5(1-(4)^5)^2 = 0.0006\)
Sehingga :
\[ T_{4} = \frac{1}{2}[ 2+2 \ .\ 0.27 +2 \ .\ 0.036+2 \ .\ 0.004+ 0.0006] = 1.31\]
Trapezoid di R
<- function(x){
f 2*exp(2*-x)
}
trapezoid(f,0,4,n = 4)
## [1] 1.312595
= 0.99966
exact_value<- 0.0001
tol <- 0.05
err = 4
n
while(err>tol){
<- trapezoid(f,0,4,n = n)
res_trap
<- abs(res_trap-exact_value)
err
cat("n=",n,", result=",res_trap,", error=",err,"\n",sep = "")
=n+1
nif(n==100){
break
}
}
## n=4, result=1.312595, error=0.3129348
## n=5, result=1.204348, error=0.2046884
## n=6, result=1.143553, error=0.1438927
## n=7, result=1.106174, error=0.1065143
## n=8, result=1.081614, error=0.08195374
## n=9, result=1.064635, error=0.06497528
## n=10, result=1.05242, error=0.05275981
## n=11, result=1.043343, error=0.04368329
## n=12, result=1.036418, error=0.03675776
## n=13, result=1.031015, error=0.0313548
## n=14, result=1.026719, error=0.0270594
## n=15, result=1.023249, error=0.02358871
## n=16, result=1.020405, error=0.02074462
## n=17, result=1.018045, error=0.01838505
## n=18, result=1.016066, error=0.016406
## n=19, result=1.01439, error=0.0147299
## n=20, result=1.012958, error=0.01329799
## n=21, result=1.011725, error=0.01206507
## n=22, result=1.010656, error=0.01099592
## n=23, result=1.009723, error=0.01006281
## n=24, result=1.008904, error=0.009243595
## n=25, result=1.00818, error=0.008520485
## n=26, result=1.007539, error=0.00787902
## n=27, result=1.006967, error=0.007307362
## n=28, result=1.006456, error=0.006795742
## n=29, result=1.005996, error=0.006336041
## n=30, result=1.005581, error=0.005921466
## n=31, result=1.005206, error=0.005546302
## n=32, result=1.004866, error=0.005205708
## n=33, result=1.004556, error=0.004895565
## n=34, result=1.004272, error=0.00461235
## n=35, result=1.004013, error=0.004353033
## n=36, result=1.003775, error=0.004115001
## n=37, result=1.003556, error=0.003895987
## n=38, result=1.003354, error=0.003694018
## n=39, result=1.003167, error=0.00350737
## n=40, result=1.002995, error=0.003334533
## n=41, result=1.002834, error=0.003174177
## n=42, result=1.002685, error=0.003025129
## n=43, result=1.002546, error=0.00288635
## n=44, result=1.002417, error=0.002756918
## n=45, result=1.002296, error=0.002636013
## n=46, result=1.002183, error=0.002522902
## n=47, result=1.002077, error=0.002416928
## n=48, result=1.001978, error=0.002317505
## n=49, result=1.001884, error=0.002224103
## n=50, result=1.001796, error=0.002136246
## n=51, result=1.001714, error=0.002053503
## n=52, result=1.001635, error=0.001975485
## n=53, result=1.001562, error=0.001901839
## n=54, result=1.001492, error=0.001832245
## n=55, result=1.001426, error=0.00176641
## n=56, result=1.001364, error=0.001704069
## n=57, result=1.001305, error=0.001644979
## n=58, result=1.001249, error=0.001588917
## n=59, result=1.001196, error=0.001535681
## n=60, result=1.001145, error=0.001485083
## n=61, result=1.001097, error=0.001436952
## n=62, result=1.001051, error=0.001391131
## n=63, result=1.001007, error=0.001347473
## n=64, result=1.000966, error=0.001305845
## n=65, result=1.000926, error=0.001266123
## n=66, result=1.000888, error=0.001228192
## n=67, result=1.000852, error=0.001191946
## n=68, result=1.000817, error=0.001157287
## n=69, result=1.000784, error=0.001124124
## n=70, result=1.000752, error=0.001092371
## n=71, result=1.000722, error=0.00106195
## n=72, result=1.000693, error=0.001032787
## n=73, result=1.000665, error=0.001004815
## n=74, result=1.000638, error=0.000977968
## n=75, result=1.000612, error=0.0009521878
## n=76, result=1.000587, error=0.0009274182
## n=77, result=1.000564, error=0.0009036072
## n=78, result=1.000541, error=0.000880706
## n=79, result=1.000519, error=0.0008586686
## n=80, result=1.000497, error=0.0008374523
## n=81, result=1.000477, error=0.0008170168
## n=82, result=1.000457, error=0.0007973242
## n=83, result=1.000438, error=0.0007783389
## n=84, result=1.00042, error=0.0007600275
## n=85, result=1.000402, error=0.0007423584
## n=86, result=1.000385, error=0.000725302
## n=87, result=1.000369, error=0.0007088303
## n=88, result=1.000353, error=0.0006929168
## n=89, result=1.000338, error=0.0006775365
## n=90, result=1.000323, error=0.000662666
## n=91, result=1.000308, error=0.000648283
## n=92, result=1.000294, error=0.0006343663
## n=93, result=1.000281, error=0.0006208961
## n=94, result=1.000268, error=0.0006078534
## n=95, result=1.000255, error=0.0005952204
## n=96, result=1.000243, error=0.00058298
## n=97, result=1.000231, error=0.0005711162
## n=98, result=1.00022, error=0.0005596136
## n=99, result=1.000208, error=0.0005484578
Metode Simpson
Dengan nilai \(n = 4\) menggunakan pendekatan Simpson adalah \[ S_{4} = \frac{h}{3}[f(x_{0})+4f(x_{1})+2f(x_{2})+4f(x_{3})+f(x_{4})]\]
Nilai subinterval : \[\ h = \frac{b-a}{n} \ = \frac{4-0}{4} \ = 1 \]
Menghitung setiap \(f(xi)\) adalah
\(f(x_{0}) = f(0) = 15(0)^5(1-(0)^5)^2 = 2\)’
\(f(x_{1}) = f(1) = 15(1)^5(1-(1)^5)^2 = 0.27\)
\(f(x_{2}) = f(2) = 15(2)^5(1-(2)^5)^2 = 0.036\)
\(f(x_{3}) = f(3) = 15(3)^5(1-(3)^5)^2 = 0.004\)
\(f(x_{4}) = f(4) = 15(4)^5(1-(4)^5)^2 = 0.0006\)
Sehingga
\[ S_{4} = \frac{1}{3}[ 2+4 \ .\ 0.27 +2 \ .\ 0.036+4\ .\ 0.004+ 0.0006] = 1.058\]
Simpson di R
simpson_n(f,0,4,n = 4)
## [1] 1.058815
= 0.99966
exact_value<- 0.0001
tol <- 1
err = 4
n
while(err>tol){
<- simpson_n(f,0,4,n = n)
res_simp
<- abs(res_simp-exact_value)
err
cat("n=",n,", result=",res_simp,", error=",err,"\n",sep = "")
=n+1
nif(n==100){
break
}
}
## n=4, result=1.058815, error=0.05915525
## n=5, result=1.058815, error=0.05915525
## n=6, result=1.014089, error=0.01442885
## n=7, result=1.014089, error=0.01442885
## n=8, result=1.00462, error=0.004960055
## n=9, result=1.00462, error=0.004960055
## n=10, result=1.001777, error=0.002116944
## n=11, result=1.001777, error=0.002116944
## n=12, result=1.000706, error=0.00104611
## n=13, result=1.000706, error=0.00104611
## n=14, result=1.000234, error=0.0005744298
## n=15, result=1.000234, error=0.0005744298
## n=16, result=1.000002, error=0.000341577
## n=17, result=1.000002, error=0.000341577
## n=18, result=0.9998762, error=0.0002162416
## n=19, result=0.9998762, error=0.0002162416
## n=20, result=0.999804, error=0.0001440486
## n=21, result=0.999804, error=0.0001440486
## n=22, result=0.9997601, error=0.0001001368
## n=23, result=0.9997601, error=0.0001001368
## n=24, result=0.9997322, error=7.2205e-05
Gauss Quadrature
Tranformasi domain menjadi \([-1,1]\)
\(x = \frac{1}{2}[t(b-a)+a+b] = 2(t+1)\)
\(dx =\frac{1}{2}(b-a) = 2\)
Sehingga
\[\int_{0}^{4}2exp^{-2x}dx = \int_{0}^{4}4exp^{-4(t+1)}dt ≈ I = C_{1}f(t_{1})+C_2f(t_{2})+C_3f(t_{3})+C_4f(t_{4}) \]
Menentukan nilai koefisien pada batas \([-1,1]\) dapat dilihat pada table gauss Quadrature
Setiap nilai \(ti\) adalah
\(f(-0.861) = 4exp^{-4(-0.861+1)} = 2.293\)
\(f(-0.339) = 4exp^{-4(-0.339+1)} = 0.284\)
\(f( \ 0.339) = 4exp^{-4(0.339+1)} = 0.018\)
\(f( \ 0.86) = 4exp^{-4(0.86+1)} = 0.002\)
Hasil Nilai I
\[ I = (0.34)f(-0.86)+(0.65)f(-0.339)+(0.65)f(0.339)+(0.347)f(0.861) = 0.9963\]
Gauss Quadrature
<- gaussLegendre(n = 4,a = -1,1)
gL <- gL$w
Ci <- gL$x
xi
<- sum(Ci * f(xi))
I I
## [1] 7.253558
= 0.99966
exact_value<- 0.00001
tol <- 1
err = 4
n
while(err>tol){
<- gaussLegendre(n = n,a = 0,4)
gL
<- gL$w
Ci <- gL$x
xi
<- sum(Ci * f(xi))
res_gl
<- abs(res_gl-exact_value)
err
cat("n=",n,", result=",res_gl,", error=",err,"\n",sep = "")
=n+1
nif(n==100){
break
}
}
## n=4, result=0.9976267, error=0.002033306
## n=5, result=0.9995785, error=8.14847e-05
## n=6, result=0.999662, error=2.028041e-06
Monte Carlo
<- function(x){
f1 2*exp(2*-x)
}
set.seed(123)
<- mc_integral(f1,a=0,b=4,m = 1000)
mcf1 mcf1
## [1] 1.001826
Metode terbaik
Pendekatan yang paling baik pada fungsi \(2exp^{-2x}\) adalah metode Monte Carlo
dengan nilai 1 yang juga memiliki nilai yang paling dekat dengan nilai exactnya yaitu 0.99966
Referensi
Dito,Gerry.2021.Metode Integral Numerik.ttps://gerrydito.github.io/Metode-Integral-Numerik-dengan-R/
Rosidi,Moh.Diferensial dan integrasi Numerik.https://bookdown.org/moh_rosidi2610/Metode_Numerik/diffinteg.html