Anda di halaman 1dari 12

Integrasi Numeris dengan Metode Trapezoidal

Rule dan Simpson’s Rule


Pemrograman Komputer STTN BATAN

oleh
Gde Pandhe Wisnu Suyantara
(visnhu.suyantara@gmail.com)

A. Metode Integrasi Numeris


Misalkan suatu persamaan y=f(x) ingin diintegrasikan terhadap x dalam batas-batas xa
dan xb sebagai berikut :
𝑥𝑏 𝑥𝑏

𝐼= 𝑓 𝑥 𝑑𝑥 = 𝑦𝑑𝑥
𝑥𝑎 𝑥𝑎
maka apabila digambar dalam bentuk kurva y terhadap x, hasil integrasi merupakan
area dibawah kurva y terhadap x seperti yang ditampilkan pada gambar 1.
y

y=f(x)

xa xb x

Gambar 1. Area hasil integrasi

Metode integrasi secara numeris dapat dilakukan dengan beberapa cara diantaranya
adalah :
1. Trapezoidal rule
2. Simpson’s 1/3 rule
3. Simpson’s 3/8 rule

Ketiga metode berasal dari rumus Newton-Cotes untuk integrasi sebagai berikut:
𝑥 − 𝑥0 𝑥 − 𝑥0 (𝑥 − 𝑥1 ) 2 𝑥 − 𝑥0 (𝑥 − 𝑥1 )(𝑥 − 𝑥2 ) 3
𝑦 = 𝑦0 + ∆𝑦0 + ∆ 𝑦0 + ∆ 𝑦0 + ⋯
∆𝑥 2!∆𝑥 2 3!∆𝑥 3
Persamaan Newton-Cotes merupakan persamaan yang berusaha mendekati nilai y
dengan ekspansi aljabar.

Perbedaan mendasar ketiga metode numeris tersebut adalah pada pendekatan


terhadap nilai y atau pengambilan hingga suku tertentu pada rumus Newton-Cotes
tersebut. Sebagai contoh trapezoidal rule hanya mendekati nilai y dengan mengambil
hingga suku kedua sedangkan Simpson’s 1/3 rule mendekati nilai y dengan
menggunakan hingga suku ketiga. Simpson’s 3/8 mengambil pendekatan nilai y hingga
suku keempat. Pada tutorial ini akan digunakan dua metode pertama saja yaitu
trapezoidal rule dan Simpson’s 1/3 rule.

1. Trapezoidal rule
y y

y1
y=f(x) y=f(x)
y0 y0 yn-1

y1 yn
Δx

I1 I2 In-1 In

x0 x1 x x0 x1 xn-1 xn x

Gambar 2. Metode integrasi dengan trapezoidal rule. 2a (kiri) prinsip dasar pendekatan
trapezoidal; 2b (kiri) pendekatan dengan metode trapezoidal sebanyak n
inkremen

Sesuai dengan namanya metode trapezoidal mendekati suatu fungsi y=f(x) sebagai
trapezoid seperti yang ditampilkan pada gambar 2a. Apabila fungsi y=f(x) dibagi dalam n
inkremen dengan tebal sebesar Δx dan didekati dengan metode trapezoid maka akan
diperoleh gambar 2b.

Luas 1 trapezoid pada gambar 2a adalah :

𝑦0 + 𝑦1 𝑥1 − 𝑥0 𝑦0 + 𝑦1
𝐼1 = = ∆𝑥
2 2
Untuk n inkremen seperti pada gambar 2b maka luas area dibawah kurva merupakan
penjumlahan dari setiap trapezoid sehingga:

𝐼 = 𝐼1 + 𝐼2 + ⋯ + 𝐼𝑛−1 + 𝐼𝑛

𝑦0 + 𝑦1 𝑦1 + 𝑦2 𝑦𝑛−2 + 𝑦𝑛−1 𝑦𝑛−1 + 𝑦𝑛


𝐼= ∆𝑥1 + ∆𝑥2 + ⋯ + ∆𝑥𝑛−1 + ∆𝑥𝑛
2 2 2 2

apabila tebal inkremen (Δx) dibuat sama maka :

𝑖=𝑛−1
∆𝑥
𝐼= 𝑦0 + 2 𝑦𝑖 + 𝑦𝑛
2
𝑖=1

Rumus tersebut merupakan rumus integrasi numeris untuk metode trapezoid untuk n
inkremen. Pada bahasa pemrograman Matlab, indeks i=0 tidak ada, sehingga
perhitungan dimulai pada i=1 sehingga persamaan diatas dimodifikasi untuk Matlab
menjadi sebagai berikut :

𝑖=𝑁−1
∆𝑥
𝐼= 𝑦1 + 2 𝑦𝑖 + 𝑦𝑁
2
𝑖=2

dengan N adalah jumlah titik perhitungan bukan inkremen (n) seperti pada persamaan
sebelumnya berlaku N=n+1.

2. Simpson’s 1/3 rule


y
y

y2 y3
y1 y1
y=f(x) y=f(x)

y0 y0
yn-1

y2 yn
Δx Δx Δx Δx Δx

x0 x1 x2 x x0 x1 x2 x3 xn-1 xn x

Gambar 3. Metode integrasi dengan Simpson’s 1/3 rule.


Metode Simpson’s 1/3 mendekati luas dibawah kurva dengan tiga titik, berbeda
dengan trapezoidal yang hanya membutuhkan dua titik. Luas area dengan metode
Simpson’s 1/3 adalah sebagai berikut :
𝑦0 + 4𝑦1 + 𝑦2 𝑥1 − 𝑥0 𝑦0 + 4𝑦1 + 𝑦2
𝐼1 = = ∆𝑥
3 3
Untuk n inkremen maka dapat dituliskan rumus umum dari integrasi dengan metode
Simpson’s 1/3 sebagai berikut:
𝑖=𝑛 /2 𝑖=𝑛/2−1
∆𝑥
𝐼= 𝑦0 + 4 𝑦2𝑖−1 + 2 𝑦2𝑖 + 𝑦𝑛
3
𝑖=1 𝑖=1

Catatan : jumlah inkremen yang digunakan pada metode Simpson’s harus GENAP!

Pada bahasa pemrograman Matlab, indeks i=0 tidak ada, sehingga perhitungan
dimulai pada i=1 sehingga persamaan diatas dimodifikasi untuk Matlab menjadi
sebagai berikut :
𝑖= 𝑁−1 /2 𝑖= 𝑁−1 /2−1
∆𝑥
𝐼= 𝑦1 + 4 𝑦2𝑖 + 2 𝑦2𝑖−1 + 𝑦𝑁
3
𝑖=1 𝑖=2

dengan N adalah jumlah titik perhitungan bukan inkremen (n) seperti pada
persamaan sebelumnya, berlaku N=n+1. Dengan menggunakan rumus ini, maka nilai
N harus selalu GANJIL!

B. Pemrograman Metode Integrasi Numeris dengan MATLAB


Misalnya ingin dicari nilai integral suatu persamaan kuadrat sebagai berikut:

𝑦 = 10𝑥 2 + 12𝑥 + 2
pada interval xa=0 hingga xb=2.
Hitunglah nilai integrasi persamaan tersebut dengan metode trapezoidal rule dan
Simpson’s 1/3 rule!

1. Penyelesaian dengan trapezoidal rule


a. Cara manual
Langkah perhitungan secara manual untuk metode trapezoidal rule adalah sebagai
berikut :
1. Masukkan nilai xa,xb,dan jumlah titik perhitungan (N)
2. Hitung nilai Δx :
𝑥𝑏 − 𝑥𝑎
∆𝑥 =
𝑁−1
Nilai pembagi adalah N-1, bukan N karena yang digunakan adalah jumlah titik
perhitungan bukan inkremen selain itu indeks pada matlab dimulai dari 1, tidak dari
0.
3. Misalkan luas (A) awal bernilai 0
4. Mulai hitungan iterasi for dari i = 1 hingga i = N
Perhitungan looping for pada Matlab dilakukan dari indeks i=1 tidak dari i=0!
a. Hitung x=xa+ (i-1)Δx
b. Hitung nilai y=f(x) dengan menggunakan subprogram/subroutine
c. Untuk i = 1 maka A=A+y
d. Untuk i = N maka A=A+y
e. Untuk i = 2 hingga N-1 maka A=A+2y
5. Akhiri perhitungan iterasi
6. Hitung Area integrasi
∆𝑥
𝐴𝑟𝑒𝑎_𝑖𝑛𝑡𝑒𝑔𝑟𝑎𝑠𝑖 = 𝐴𝑟𝑒𝑎
2
7. Tampilkan hasil hitungan
8. Selesai
Diagram alir algoritma hitung ditampilkan pada gambar 4.

Contoh program dengan algoritma manual pada gambar 4 adalah sebagai berikut:

Main Program
% mencari nilai integrasi secara numeris dengan metode trapezoidal rule
% input data
xa=0; % batas kiri dari integrasi
xb=2; % batas kanan dari integrasi
N=11; % jumlah titik perhitungan
% memulai perhitungan integrasi trapezoidal
delx=(xb-xa)/(N-1) % delta x
A=0; % luas awal
for i=1:N
x(i)=xa+(i-1)*delx; % menghitung nilai x pada inkremen ke i
y(i)=hitung_y(x(i)); % menghitung nilai y pada x(i)
if i==1
A=A+y(i);
elseif i==N
A=A+y(i);
else
A=A+y(i)*2;
end
end
Integ=A*delx/2;
fprintf('Hasil integrasi adalah %6.4f \n',Integ)
Subprogram

function y=hitung_y(x)
y=10*x^2+12*x+2;

Hasil
Hasil integrasi adalah 54.8000

Mulai Program

Masukkan nilai
xa,xb, N

Hitung nilai delx=(xb-xa)/N


Definisikan nilai luas awal A=0

Hitungan loop for i=1:N


Hitung x=xa+i*delx

subprogram
Hitung nilai y=f(x) dengan x function y=hitungy(x)
subprogram
y y=10*x^2+12*x+1

TIDAK TIDAK
YA Apakah i=0? Apakah
YAi=N?
LOOP FOR

YA
YA
Hitung nilai luas (A) Hitung nilai luas (A)
A=A+y A=A+2*y

Ulangi untuk i
selanjutnya?

TIDAK

Hitung hasil integrasi :


y=A*delx/2

Tampilkan
Hasil
Perhitungan

Akhir Program

Gambar 4. Algoritma perhitungan metode trapezoidal rule


b. Cara Matriks

Oleh karena pemrograman Matlab berbasis pada matriks, prosedur looping for untuk
mencari jumlahan nilai y sesuai dengan persamaan trapezoidal rule dapat diganti
dengan menerapkan metode matriks. Langkah hitungnya adalah sebagai berikut :

1. Masukkan nilai xa,xb,dan jumlah titik perhitungan (N)


2. Buat array untuk x tiap titik ke i dalam variabel xi menggunakan linspace:
xi=linspace(xa,xb,N)
3. Hitung nilai delx sebagai beda antara elemen kedua xi dengan elemen pertama xi
delx=xi(2)-xi(1)
4. Hitung nilai yi pada setiap xi dengan menggunakan subprogram. Ingat pada langkah
ini subprogram akan menghitung nilai yi pada setiap xi yang berupa array sehingga
gunakan operasi elemen matriks di dalam subprogram!
5. Sesuai dengan persamaan trapezoidal rule, nilai yi selain pada batas-batas nilai x (xa
dan xb) harus dikalikan 2.
𝒊=𝒏−𝟏
∆𝑥
𝐼= 𝑦0 + 𝟐 𝒚𝒊 + 𝑦𝑛
2
𝒊=𝟏
sehingga lakukan perkalian hanya untuk elemen kedua hingga N-1 sesuai cara array:
yi(2:N-1)=yi(2:N-1)*2
dengan perintah diatas berarti melakukan perkalian dengan angka 2 untuk elemen yi
kedua hingga N-1 yang hasilnya disimpan pada elemen yi yang sama.
6. Hitung integrasi dengan persamaan :
∆𝑥
𝐼= 𝒚𝒊
2
𝒊
karena yi sudah sesuai dengan bentuk
𝒊=𝒏−𝟏

𝑦0 + 𝟐 𝒚𝒊 + 𝑦𝑛
𝒊=𝟏
maka nilai 𝒊 𝒚𝒊 dapat dihitung langsung sebagai berikut
I=sum(yi)*delx/2

dengan menggunakan konsep matriks maka perintahnya menjadi lebih singkat dan lebih
efektif daripada menggunakan looping for!
Mulai Program

Masukkan nilai
xa,xb, N

Buat array xi dengan linspace


Hitung nilai delx dari array xi

subprogram
Hitung nilai yi=f(xi) dengan x
function y=hitungy(x)
subprogram y y=10*x.^2+12*x+1

Kalikan nilai yi untuk i=2


hingga i=N-1 dengan
konstanta 2

Hitung hasil integrasi :


y=sum(yi)*delx/2

Tampilkan
Hasil
Perhitungan

Akhir Program

Gambar 5. Algoritma program metode trapezoidal rule dengan cara matriks

Contoh program dengan menggunakan konsep matriks sebagai berikut:

Main Program
% mencari nilai integrasi secara numeris dengan metode trapezoidal rule
% input data
xa=0; % batas kiri dari integrasi
xb=2; % batas kanan dari integrasi
N=11; % jumlah titik perhitungan
% memulai perhitungan integrasi trapezoidal
xi=linspace(xa,xb,N); % membuat nilai xi pada setiap inkremen
delx=xi(2)-xi(1); % delta x
yi=hitung_y(xi); % menghitung nilai y pada setiap xi
yi(2:N-1)=yi(2:N-1)*2; % nilai yi untuk i=2 hingga i=N-1 maka
yi*2
Integ=sum(yi)*delx/2;
fprintf('Hasil integrasi adalah %6.4f \n',Integ)

Subprogram
function y=hitung_y(x)
y=10*x.^2+12*x+2;

Hasil
Hasil integrasi adalah 54.8000

Hasil yang diperoleh dengan cara manual maupun dengan cara matriks sama.

2. Penyelesaian dengan Simpson’s 1/3 rule


Langkah perhitungan dengan cara matriks untuk metode Simpson’s 1/3 rule :
1. Masukkan nilai xa,xb,dan jumlah titik perhitungan (N)
ingat ada syarat N harus ganjil!
2. Buat array untuk x tiap titik ke i dalam variabel xi menggunakan linspace:
xi=linspace(xa,xb,N)
3. Hitung nilai delx sebagai beda antara elemen kedua xi dengan elemen pertama xi
delx=xi(2)-xi(1)
4. Hitung nilai yi pada setiap xi dengan menggunakan subprogram. Ingat pada langkah
ini subprogram akan menghitung nilai yi pada setiap xi yang berupa array sehingga
gunakan operasi elemen matriks di dalam subprogram!
5. Sesuai dengan persamaan Simpson’s rule, nilai yi selain pada batas-batas nilai x (xa
dan xb) harus dikalikan 2 jika berada pada titik ganjil dan dikalikan 4 jika berada pada
titik genap.
𝑖= 𝑁−1 /2 𝑖= 𝑁−1 /2−1
∆𝑥
𝐼= 𝑦1 + 4 𝑦2𝑖 + 2 𝑦2𝑖−1 + 𝑦𝑁
3
𝑖=1 𝑖=2

sehingga lakukan perkalian sebagai berikut:


untuk titik genap setelah titik i=1 sebelum titik N
yi(2:2:N-1)=yi(2:2:N-1)*4
untuk titik ganjil setelah titik i=1 sebelum titik N
yi(3:2:N-1)=yi(3:2:N-1)*2
dengan perintah diatas berarti melakukan perkalian dengan angka 2 untuk ganjil dan
angka 4 untuk genap pada setiap elemen yi pada titik yang sesuai dan hasilnya
disimpan dalam variabel yi sendiri.
6. Hitung integrasi dengan persamaan :
∆𝑥
𝐼= 𝒚𝒊
3
𝒊
karena yi sudah sesuai dengan bentuk
𝑖= 𝑁−1 /2 𝑖= 𝑁−1 /2−1

𝑦1 + 4 𝑦2𝑖 + 2 𝑦2𝑖−1 + 𝑦𝑁
𝑖=1 𝑖=2

maka nilai 𝒊 𝒚𝒊 dapat dihitung langsung sebagai berikut


I=sum(yi)*delx/3

Main Program

% mencari nilai integrasi secara numeris dengan metode simpson’s rule


% input data
xa=0; % batas kiri dari integrasi
xb=2; % batas kanan dari integrasi
N=11; % jumlah titik perhitungan
% memulai perhitungan integrasi trapezoidal
xi=linspace(xa,xb,N); % membuat nilai xi pada setiap inkremen
delx=xi(2)-xi(1); % delta x
yi=hitung_y(xi); % menghitung nilai y pada setiap xi
yi(2:2:N-1)=yi(2:2:N-1)*4; % nilai yi untuk i genap untuk i
lebih dari 1 kurang dari N maka yi*4
yi(3:2:N-1)=yi(3:2:N-1)*2; % nilai yi untuk i ganjil untuk i
lebih dari 1 kurang dari N maka yi*2
Integ=sum(yi)*delx/3;
fprintf('Hasil integrasi adalah %6.4f \n',Integ)

Subprogram
function y=hitung_y(x)
y=10*x.^2+12*x+2;
Hasil

Hasil integrasi adalah 54.6667

Metode Hasil (N=11)


Trapezoidal 54.8000
Simpson 54.6667
Analitis 54.6667
Hasil perhitungan pada tabel diatas menunjukkan bahwa metode Simpson’s 1/3 memiliki hasil
yang sama dengan metode analitis, sedangkan metode trapezoidal dengan jumlah inkremen
yang sama masih memiliki kesalahan sebesar 0,24 % terhadap hasil analitis. Bahkan jika nilai
inkremen (n) dibuat lebih besar yaitu 100, nilai integrasi persamaan sebesar 54.6680

LATIHAN

Buatlah algoritma hitung Simpson’s Rule untuk persoalaan diatas dengan cara manual (bukan
matriks). Kemudian buatlah penyelesaian persoalan diatas dalam bentuk program Matlab
sesuai dengan algoritma hitung yang sudah dibuat!
TUGAS 2
PEMROGRAMAN KOMPUTER
STTN BATAN
Suatu reaktor batch beroperasi secara adiabatic untuk reaksi fasa cair order 2: A  B dengan
persamaan reaksi sebagai berikut:
𝑟𝐴 = 𝑘𝐶𝐴 2
dengan
𝐸
𝑘 = 𝐴 𝑒𝑥𝑝 −
𝑅𝑇
perubahan entalpi reaksi (ΔHR), volum reaktor (VR) dan kapasitas panas larutan (Cp) dianggap
tetap. Umpan masuk pada suhu Tf dan konsentrasi A mula-mula CA0. Reaksi dihentikan pada
saat xR dengan konversi mula-mula xR0. Ingin dicari waktu tinggal di dalam reaktor yang
memberikan nilai xR sebesar 0.6269371.
Diketahui :
VR = 10000 L E=14 kcal/mol
CA0=1 mol/L ΔHR=-6 kcal/mol
ρ = 1 kg/L R=0.001987 kcal/mol/K
Cp=1,0 kcal/kg/K Tf=350 K
7
A=1x10 L/mol/menit xR0=0
waktu tinggal di dalam reaktor dapat dihitung dengan persamaan sebagai berikut :
𝑥𝑜𝑢𝑡
1 1
𝑡𝑅 = 2
𝑑𝑥
𝐶𝐴0 𝑘 1−𝑥
𝑥𝑖𝑛
dengan
𝐸
𝑘 = 𝐴 𝑒𝑥𝑝 −
𝑅𝑇
𝐶𝐴0 ∆𝐻𝑅
𝑇 = 𝑇𝑓 − 𝑥
𝜌𝐶𝑝

Jawaban
Waktu tinggal di dalam reaktor = 80.8101 menit

Syarat Pengumpulan Tugas

1. Tugas dikumpulkan paling lambat tanggal : 20 Maret 2014


2. Tugas dikumpulkan dalam bentuk soft copy berupa:
a. diagram algoritma
b. copy kode matlab
c. hasil run
d. kode matlab (m-file)
a, b, dan c ditulis dalam 1 file MS word (bukan terpisah)
dikirim ke email prokomsttnbatan@gmail.com.
3. Penulisan nama file softcopy (MS word) : Tugas2 Nama
4. Tuliskan pada subject email : Tugas2 Nama

Anda mungkin juga menyukai