1 Pengenalan Integral Metode Trapezoid

Penerapan integral dapat berguna di beberapa permasalahan, seperti menghitung luas di bawah suatu kurva atau mencari nilai peluang. Namun, tidak semua fungsi dapat diintegralkan dengan mudah. Oleh sebab itu, digunakan pendekatan numerik dalam melakukan integral.

Pada pembahasan kali ini, akan dibahas salah satu metode integral numerik, yaitu metode Trapezoid. Metode Trapezoid mempartisi suatu fungsi menjadi n bagian lalu membentuk partisi-partisi tersebut sedemikian rupa sehingga menjadi bentuk trapesium. Untuk lebih jelasnya, lihat gambar berikut

Gambar 1. Ilustrasi Integral dengan Metode Trapezoid

Ilustrasi di atas adalah mempartisi suatu fungsi menjadi n bagian. Luas di bawah kurva mulai dari \(x_0\) hingga \(x_n\) dapat ditulis sebagai berikut: \[ \int_{a}^{b}f(x)dx \] di mana

\(a=x_0\)
\(b=x_n\)

Luas tersebut dapat diaproksimasi secara numerik dengan meghitung luas setiap trapesium. Luas trapesium adalah \[ \frac{1}{2}\times tinggi\times jumlahsisisejajar \]

Misal untuk partisi trapesium pertama
Gambar 2. Partisi Trapesium Pertama
Maka luas trapesium di atas adalah
\(\frac{1}{2}h[f(x_0)+f(x_1)]\)

h untuk setiap trapesium bernilai sama yaitu \(\frac{b-a}{n}\)

Begitu pula untuk partisi trapesium kedua, yaitu \(\frac{1}{2}h[f(x_1)+f(x_2)]\), partisi trapesium ketiga, yaitu \(\frac{1}{2}h[f(x_2)+f(x_3)]\) hingga partisi trapesium ke-n, yaitu \(\frac{1}{2}h[f(x_{n-1})+f(x_n)]\)

Sehingga, total dari seluruh luas trapesium
\(=\frac{1}{2}h[f(x_0)+f(x_1)]+\frac{1}{2}h[f(x_1)+f(x_2)]+\frac{1}{2}h[f(x_2)+f(x_3)]+...+\frac{1}{2}h[f(x_{n-1})+f(x_n)]\)

Faktorkan \(\frac{1}{2}h\) sehingga menjadi
\(=\frac{1}{2}h[f(x_0)+f(x_1)+f(x_1)+f(x_2)+f(x_2)+f(x_3)+...+f(x_{n-1})+f(x_n)]\)

Perhatikan bahwa \(f(x_1)\), \(f(x_2)\), hingga \(f(x_{n-1})\) muncul sebanyak 2 kali. Sehingga
\(=\frac{1}{2}h[f(x_0)+2f(x_1)+2f(x_2)+2f(x_3)+...+2f(x_{n-1})+f(x_n)]\)
\(=\frac{1}{2}h[f(x_0)+2(f(x_1)+f(x_2)+f(x_3)+...+f(x_{n-1}))+f(x_n)]\)

Secara ringkas, aproksimasi integral dengan metode Trapezoid adalah

\(\int_{a}^{b}f(x)dx \approx\) \(\frac{1}{2}h[f(x_0)+2\sum_{i=1}^{n-1}f(x_i)+f(x_n)]\)

2 Error dalam Integral Metode Trapezoid

Error dalam integral Metode Trapezoid dinyatakan sebagai:
\[ E_n=-\frac{(b-a)^3}{12n^2}f''(c) \]

Titik c berada di [a,b] dan yang menyebabkan nilai \(|f''(c)|\) paling maximum di [a,b]

3 Contoh

Tentukan nilai dari \(\int_{1}^{2}\frac{1}{\sqrt{x}}dx\). Gunakan n=10 untuk metode trapezoid.

3.1 Metode Eksak (dengan fungsi built-in integrate())

> f<-function(x){
+   1/sqrt(x)
+ }
> integral<-integrate(f, lower = 1, upper = 2)
> integral$value
[1] 0.8284271

3.2 Metode Trapezoid (manual)

> f<-function(x){
+   1/sqrt(x)
+ }
> a=1
> b=2
> n=10
> h=(b-a)/n
> xs<-seq(from=a, to=b, by=h)
> ys<-f(xs)
> df<-data.frame(x=xs, y=f(xs))
> df
     x         y
1  1.0 1.0000000
2  1.1 0.9534626
3  1.2 0.9128709
4  1.3 0.8770580
5  1.4 0.8451543
6  1.5 0.8164966
7  1.6 0.7905694
8  1.7 0.7669650
9  1.8 0.7453560
10 1.9 0.7254763
11 2.0 0.7071068
> 
> trapezoid<-function(n,h,ys){
+   i<-seq(from=2, to=n,by=1)
+   integ<-h/2*(ys[1]+2*sum(ys[i])+ys[n+1])
+   return(integ)
+ }
> trapezoid(n,h,ys)
[1] 0.8286962
  • xs adalah titik-titik x yang menjadi interval
  • ys adalah nilai fungsi di setiap xs

3.3 Metode Trapezoid (dengan fungsi built-in trapz())

> library(pracma)
> xt<-seq(from=1, to=2, length.out=n+1)
> yt<-f(xt)
> df2<-data.frame(x=xt, y=yt)
> df2
     x         y
1  1.0 1.0000000
2  1.1 0.9534626
3  1.2 0.9128709
4  1.3 0.8770580
5  1.4 0.8451543
6  1.5 0.8164966
7  1.6 0.7905694
8  1.7 0.7669650
9  1.8 0.7453560
10 1.9 0.7254763
11 2.0 0.7071068
> trapz(xt,yt)
[1] 0.8286962

3.4 Error

Turunan kedua \(\frac{1}{\sqrt{x}}\) adalah
\(f''(x)=\frac{3}{4x^2\sqrt{x}}\) dengan grafik sebagai berikut

> library(ggplot2)
> x <- seq(1,2,length=10001)
> y <- 3/(4*x^2*sqrt(x))
> df <- data.frame(x = x, y = y)
> ggplot(data = df, aes(x = x, y = y)) + geom_line()

Dari grafik, tampak bahwa nilai fungsi akan maksimum saat x=c=1

> df$x[which.max(df$y)]
[1] 1
> max<-abs(max(df$y))
> max
[1] 0.75
> df$x[which.min(df$y)]
[1] 2
> min<-abs(min(df$y))
> min
[1] 0.1325825

df$x[which.max(df$y)] untuk mencari nilai c pembuat fungsi bernilai maksimum
abs(max(df$y)) untuk mencari nilai maksimum fungsi (secara mutlak)
df$x[which.min(df$y)] untuk mencari nilai c pembuat fungsi bernilai minimum
abs(min(df$y)) untuk mencari nilai minimum fungsi (secara mutlak)

Dari output, terlihat nilai maksimumnya adalah saat \(f''(c)=f''(1)=0.75\)

\(E_n=-\frac{(b-a)^3}{12n^2}f''(c)\)
\(E_n=-\frac{(2-1)^3}{12(10)^2}0.75\)

> En<--(b-a)^3*max/(12*n^2)
> abs(En)
[1] 0.000625

Nilai error=0.000625 artinya untuk fungsi di atas jika integral dihitung dengan metode Trapezoid dengan n=10, paling tinggi selisih antara nilai eksak dengan nilai metode Trapezoid tersebut adalah 0.000625