Anda di halaman 1dari 32

LABORATORIUM TEKNIK KIMIA

FAKULTAS TEKNIK
UPN “VETERAN” JAWA TIMUR Nama : VITA KARTIKA SARI
NPM/Semester : 1631010039 / IV
Praktikum : MATEMATIKA TEKNIK Sesi :V
Percobaan : METODE RUNGE KUTTA Paralel :A
Tanggal : 02 MEI 2018
Pembimbing : IR. L. URIP WIDODO, MT

LAPORAN RESMI

SOAL
1. Jelaskan apa yang dimaksud dengan Metode Runge Kutta pada Persamaan
Differensial Biasa. Jelaskan secara lengkap dengan memberikan pengertian,
algoritma, kelebihan, dan kekurangan dari metode sebelumnya.
2. Buatlah Listing Program, Hasil Run, dan Flowchart dengan menggunakan
Bahasa Pemrograman Turbo Pascal dari Metode Runge Kutta Orde 4.
Berikut persamaannya :
𝑑𝑦
a. = 2.97𝑡 3 − 1.5 𝑡
𝑑𝑡
𝑥
𝑑𝑦 10 𝑥 exp( )
100
b. =
𝑑𝑥 1+𝑥 2

3. Buatlah Listing Program, Hasil Run, dan Flowchart dengan menggunakan


Matrix Laboratory (MatLab) dari Metode Runge Kutta Orde 2, Orde 3, dan
Orde 4 (TIAP PRAKTIKAN WAJIB BERBEDA INPUT
PERSAMAANNYA). Berikan perbandingan dari hasil yang didapatkan
tiap Metode.
4. Buatlah Listing Program, Hasil Run, dan Flowchart dengan menggunakan
Matrix Laboratory (MatLab) dari Metode Runge Kutta Orde 4.
Reaksi fase gas homogen : A  2P berlangsung dalam sebuah reaktor batch
𝑔𝑚𝑜𝑙
isotermal pada tekanan tetap, dengan : 𝑟 = 0.1 𝐶𝐴2 [=] 𝑙𝑖𝑡𝑒𝑟 . 𝑑𝑒𝑡𝑖𝑘

Mula-mula reaktor berisi 0.01 gmol A dan 0.01 gmol gas inert dengan
volume 0.5 liter. Tentukan volume reaktor setelah reaksi berlangsung
selama 25 detik. Neraca mol A pada unsteady state dinyatakan sebagai :
2
𝑑𝑛𝐴 0.1𝑛𝐴
= 𝑉(−𝑟) = −
𝑑𝑡 𝑉

Gas dianggap sebagai gas ideal, sehingga :

1
𝑛𝑡 0.01 + 𝑛𝐴 + 2(0.01 − 𝑛𝐴 )
𝑉 = 𝑉0 ( ) = 0.5 ( )
𝑛𝑡0 0.02
= 0.75 − 25 𝑛𝐴 [=] 𝑙𝑖𝑡𝑒𝑟
𝑑𝑛𝐴 0.1 𝑛2
Dengan demikian : = − 0.75−25𝐴𝑛 … … … … … … … … … … (∗)
𝑑𝑡 𝐴

Dengan syarat awal : nA = 0.01 pada t = 0


Petunjuk : integrasikan persamaan (*) secara numerik untuk menentukan
nA pada t = 25 detik. Selanjutnya gunakan hasil yang diperoleh untuk
menghitung volume reaktor.
5. Buatlah Listing Program, Hasil Run, dan Flowchart dengan menggunakan
Matrix Laboratory (MatLab) dari Metode Runge Kutta Orde 4. Tinjaulah
sebuah reaktor semi batch : Reaksi fase cair yang terjadi adalah : A  P
Dengan : 𝑟 = 𝑘 𝐶𝐴2
Mula-mula reaktor diisi dengan cairan inert dengan volume V0. Pada t = 0,
cairan yang mengandung A dengan konsentrasi CA0 diumpankan ke dalam
reaktor dengan laju alir volumetrik Q0. Neraca mol A pada unsteady state :
𝑑𝑛𝐴
𝑄0 𝐶𝐴0 − 𝑘𝐶𝐴2 𝑉𝑅 = 𝑑𝑡
2
𝑛 𝑘𝑛𝐴 𝑑𝑛𝐴
Karena : 𝐶𝐴 = 𝑉𝐴, maka : 𝑄0 𝐶𝐴0 − = … … … … … … … … … … (∗)
𝑅 𝑉𝑅 𝑑𝑡

Cairan ditambahkan ke dalam reaktor, sehingga volume reaktor (VR) akan


bertambah sepanjang waktu. Neraca massa keseluruhan di dalam reaktor :
𝑑
(𝜌𝑉𝑅 ) = 𝑄0 𝜌
𝑑𝑡
𝑑𝑉𝑅
Jika ρ dianggap tetap, maka : = 𝑄0
𝑑𝑡

Dan diintegrasikan menjadi : 𝑉𝑅 = 𝑄0 𝑡 + 𝑉0 … … … … … … … … … (∗∗)


2
𝑘𝑛𝐴 𝑑𝑛𝐴
Subtitusikan (**) ke (*), sehingga diperoleh : 𝑄0 𝐶𝐴0 − =
𝑄0 𝑡+𝑉0 𝑑𝑡

Dengan : nA = 0 pada t = 0. Gunakan integrasi numerik untuk mengetahui


perilaku reaktor ini hingga t = 100 detik. Diketahui : CA0 = 1.0 gmol/liter;
k = 0.1 liter/gmol.detik; Q0 = 10 liter/detik; dan V0 = 50 liter
6. Berikan kesimpulan tentang praktikum Metode Runge Kutta.
============SELAMAT MENGERJAKAN=============

240
1. Metode Runge-Kutta merupakan salah satu dari satu perangkat metode yang
penting untuk menyelesaikan persamaan diferensial dengan syarat awal
𝑦 ′ = 𝑓(𝑥, 𝑦)
𝑦(𝑥0 ) diberikan
Untuk memecahkan persoalan ini, pada sumbu waktu 𝑥 dipilih simpul-simpul
waktu diskret
𝑥0 , 𝑥1 , 𝑥2 , … , 𝑥𝑟 , 𝑥𝑟+1 , … , 𝑥𝑛 dan seterusnya
dengan 𝑥𝑟+1 = 𝑥𝑟 + ℎ𝑟 , dengan ℎ𝑟 merupakan “step length” dari saat ke-r ke saat
ke-(r+1). Pada umumnya “step length” tergantung pada r, tetapi untuk mudahnya
diperlakukan konstan, yaitu h.
Metode Runge-Kutta memberikan solusi dengan ketelitian hasil yang lebih
besar dan tidak memerlukan turunan dari fungsi. Bentuk umum metode Runge-
Kutta orde-𝑛 adalah:
𝒚𝒓+𝟏 = 𝒚𝒓 + 𝒂𝟏 𝒌𝟏 + 𝒂𝟐 𝒌𝟐 + … + 𝒂𝒏 𝒌𝒏
dengan 𝑎1 , 𝑎2 , … , 𝑎𝑛 adalah tetapan dan
𝑘1 = ℎ𝑓(𝑥𝑟 , 𝑦𝑟 )
𝑘2 = ℎ𝑓(𝑥𝑟 + 𝑝1 ℎ, 𝑦𝑟 + 𝑞11 𝑘1 )
𝑘3 = ℎ𝑓(𝑥𝑟 + 𝑝1 ℎ, 𝑦𝑟 + 𝑞21 𝑘1 + 𝑞22 𝑘2 )
𝑘𝑛 = ℎ𝑓(𝑥𝑟 + 𝑝𝑛−1 ℎ, 𝑦𝑟 + 𝑞𝑛−1,1 𝑘1 + 𝑞𝑛−1,2 𝑘2 + . . . + 𝑞𝑛−1,𝑛−1 𝑘𝑛−1
Nilai (𝑎𝑖 , 𝑝𝑖 𝑞𝑖𝑗 ) dipilih sedemikian rupa sehingga meminimumkan galat per
langkah, dan persamaan untuk umum metode Runge-Kutta orde-n akan sama
dengan metode deret Taylor dari orde setinggi mungkin.

Berikut beberapa jenis Metode Runge-Kutta :


1. Metode Runge-Kutta Orde Satu
Metode Runge-Kutta tingkat satu berbentuk

241
2. Metode Runge-Kutta Orde Dua
Metode Runge-Kutta tingkat satu berbentuk

3. Metode Runge-Kutta Orde Tiga


Metode Runge-Kutta yang terkenal dan banyak dipakai dalam praktek adalah
metode Runge-Kutta orde tiga dan metode Runge-Kutta orde empat. Kedua metode
ini terkenal karena tingkat ketelitian solusinya tinggi (dibandingkan metode Runge-
Kutta orde sebelumnya, mudah diprogram, dan stabil)
Metode Runge-Kutta orde tiga berbentuk

242
4. Metode Runge-Kutta Orde Empat
Metode Runge-Kutta orde tiga berbentuk

5. Metode Runge-Kutta Orde Lima

243
Algoritma Metode Runge-Kutta :
1. Start untuk memulai program.
2. Memasukkan persamaan f(x,y) , nilai x awal, y awal, batas x, dan delta x.
3. Untuk cam = x awal sampai batas maka:
a. yi+1 = yi+h.f(xi,yi)
b. x = x+h
4. Mencari nilai y baru
5. Menampilkan nilai x baru, y baru, dan nilai k
6. End

244
2. Listing Program
𝒅𝒚
a. Persamaan = 𝟐. 𝟗𝟕𝒕𝟑 − 𝟏. 𝟓 𝒕
𝒅𝒕

Program metode_runge_kutta;
uses crt;
var
xa,ya,h,batas,u,k1,k2,k3,k4,x2,x3,x4,y2,y3,y4,yb:real;
function persamaan(x,y:real):real;
var pers:real;
begin
pers:=(2.97*x*x*x)-(1.5*x);
persamaan:=pers;
end;
begin
clrscr;
writeln('===============================================
==========');
writeln(' METODE RUNGE KUTTA ORDE 4 ');
writeln('===============================================
==========');
writeln('Menyelesaikan Persamaan berikut :(2.97*x*x*x)-(1.5*x) ');
writeln('---------------------------------------------------------');
write('Masukan Nilai X =');readln(xa);
write('Masukan Nilai Y =');readln(ya);
write('Masukan Delta X =');readln(h);
write('Masukan Batas X =');readln(batas);
writeln('--------------------------------------------------------');
writeln(' x y k1 k2 k3 k4 ');
writeln('--------------------------------------------------------');
xa:=xa;
repeat
xa:=xa;

245
k1:=persamaan(xa,ya);
x2:=xa+(1/2*h);
y2:=ya+((1/2)*k1*h);
k2:=persamaan(x2,y2);
x3:=xa+(1/2*h);
y3:=ya+((1/2)*k2*h);
k3:=persamaan(x3,y3);
x4:=xa+h;
y4:=ya+(k3*h);
k4:=persamaan(x4,y4);
yb:=ya+((h/6)*(k1+(2*k2)+(2*k3)+k4));
xa:=x4;
ya:=yb;
writeln(xa:5:2,ya:10:2,k1:10:2,k2:10:2,k3:10:2,k4:10:2);
until(xa=batas);
readln;
end.

246
Hasil Run Program

247
Flowchart
Start

var
xa,ya,h,batas,u,k1,k2,k3,k4,x2,x3,x4,y2,y3,y4,yb:real;
function persamaan(x,y:real):real;
var pers:real;

pers:=(2.97*x*x*x)-(1.5*x);

Input Nilai X, Input Nilai Y, Input Nilai


Batas X dan Input Nilai delta X

xa:=xa;

Repeat

xa:=xa;
k1:=persamaan(xa,ya);
x2:=xa+(1/2*h);
y2:=ya+((1/2)*k1*h);
k2:=persamaan(x2,y2);
x3:=xa+(1/2*h);
y3:=ya+((1/2)*k2*h);
k3:=persamaan(x3,y3);
x4:=xa+h;
No y4:=ya+(k3*h);
k4:=persamaan(x4,y4);
yb:=ya+((h/
6)*(k1+(2*k2)+(2*k3)+k4));
xa:=x4;
ya:=yb;

Output Nilai x , y . k1 . k2 , k3 dan k4

Until
Xa:=batas

Yes

End

248
𝒙
𝒅𝒚 𝟏𝟎 𝒙 𝐞𝐱𝐩( )
𝟏𝟎𝟎
b. Persamaan =
𝒅𝒙 𝟏+𝒙𝟐

Listing Program
Program metode_runge_kutta;
uses crt;
var
xa,ya,h,batas,u,k1,k2,k3,k4,x2,x3,x4,y2,y3,y4,yb:real;
function persamaan(x,y:real):real;
var pers:real;
const e=2.71;
begin
pers:=(10*x*e*(x/100))/(1+x*x);
persamaan:=pers;
end;
begin
clrscr;
writeln('===============================================
==========');
writeln(' METODE RUNGE KUTTA ORDE 4 ');
writeln('===============================================
==========');
writeln('Menyelesaikan Persamaan berikut :(10*x*e*(x/100))/(1+x*x) ');
writeln('---------------------------------------------------------');
write('Masukan Nilai X =');readln(xa);
write('Masukan Nilai Y =');readln(ya);
write('Masukan Delta X =');readln(h);
write('Masukan Batas X =');readln(batas);
writeln('--------------------------------------------------------');
writeln(' x y k1 k2 k3 k4 ');
writeln('--------------------------------------------------------');
xa:=xa;

249
repeat
xa:=xa;
k1:=persamaan(xa,ya);
x2:=xa+(1/2*h);
y2:=ya+((1/2)*k1*h);
k2:=persamaan(x2,y2);
x3:=xa+(1/2*h);
y3:=ya+((1/2)*k2*h);
k3:=persamaan(x3,y3);
x4:=xa+h;
y4:=ya+(k3*h);
k4:=persamaan(x4,y4);
yb:=ya+((h/6)*(k1+(2*k2)+(2*k3)+k4));
xa:=x4;
ya:=yb;
writeln(xa:5:2,ya:10:2,k1:10:2,k2:10:2,k3:10:2,k4:10:2);
until(xa=batas);
readln;
end.

250
Hasil Run Program

251
Flowchart Program
Start

var
xa,ya,h,batas,u,k1,k2,k3,k4,x2,x3,x4,y2,y3,y4,yb:real;
function persamaan(x,y:real):real;
var pers:real;
Const e=2.71;

pers:=(10*x*e*(x/100))/(1+x*x);

Input Nilai X, Input Nilai Y, Input Nilai


Batas X dan Input Nilai delta X

xa:=xa;

Repeat

xa:=xa;
k1:=persamaan(xa,ya);
x2:=xa+(1/2*h);
y2:=ya+((1/2)*k1*h);
k2:=persamaan(x2,y2);
x3:=xa+(1/2*h);
y3:=ya+((1/2)*k2*h);
k3:=persamaan(x3,y3);
x4:=xa+h;
No y4:=ya+(k3*h);
k4:=persamaan(x4,y4);
yb:=ya+((h/
6)*(k1+(2*k2)+(2*k3)+k4));
xa:=x4;
ya:=yb;

Output Nilai x , y . k1 . k2 , k3 dan k4

Until
Xa:=batas

Yes

End

252
3. METODE RUNGE KUTTA ORDE 2
Listing Program
clear all;
clc;
syms x;
syms y;
disp('=========================================');
disp(' Metode Runge-Kutta Orde 2');
disp('=========================================');
f=input('Persamaan = ');
xa=input('Nilai x = ');
ya=input('Nilai y = ');
batas=input('Batas x = ');
h=input('Delta x = ');
disp(' x y k1 k2');
disp('---------------------------------------------');
u=xa;
for cam=xa:h:batas
k1=subs(f,{x,y},{xa,ya});
x2=xa+(3/4)*h;
y2=ya+(3/4)*k1*h;
k2=subs(f,{x,y},{x2,y2});
yb=ya+(h*((1/3)*k1+(2/3)*k2));
disp([ xa' yb' k1' k2']);
xa=xa+h;
end;

253
Hasil Run Program

254
Flowchart

Start

Syms x
Syms y

Input persamaan, nilai


x awal, y awal, batas
x, delta x

u=xa;

For
cam=xa:h:batas;

k1=subs(f,{x,y},{xa,ya});
yes
x2=xa+(3/4)*h;
y2=ya+(3/4)*k1*h;
k2=subs(f,{x,y},{x2,y2});
yb=ya+(h*((1/3)*k1+(2/3)*k2));
xa=xa+h;

no

disp([ xa' yb' k1' k2']);

End

255
METODE RUNGE KUTTA ORDE 3
Listing Program
clear all;
clc;
syms x;
syms y;
disp('=========================================');
disp(' Metode Runge-Kutta Orde 3');
disp('=========================================');
f=input('Persamaan = ');
xa=input('Nilai x = ');
ya=input('Nilai y = ');
batas=input('Batas x = ');
h=input('Delta x = ');
disp(' x y k1 k2 k3');
disp('--------------------------------------');
u=xa;
for cam=xa:h:batas
k1=subs(f,{x,y},{xa,ya});
x2=xa+(1/2*h);
y2=ya+((1/2)*k1*h);
k2=subs(f,{x,y},{x2,y2});
x3=xa+h;
y3=ya+(k1*h+2*k2*h);
k3=subs(f,{x,y},{x3,y3});
yb=ya+((h/6)*(k1+(4*k2)+k3));
disp([xa' ya' k1' k2' k3']);
xa=xa+h;
end;

256
Hasil Run Program

257
Flowchart

Start

Syms x
Syms y

Input persamaan, nilai


x awal, y awal, batas
x, delta x

u=xa;

For
cam=xa:h:batas;

k1=subs(f,{x,y},{xa,ya});
x2=xa+(1/2*h);
yes y2=ya+((1/2)*k1*h);
k2=subs(f,{x,y},{x2,y2});
x3=xa+h;
y3=ya+(k1*h+2*k2*h);
k3=subs(f,{x,y},{x3,y3});
yb=ya+((h/6)*(k1+(4*k2)+k3));
xa=xa+h;
no

disp([ xa' yb' k1' k2' k3']);

End

258
METODE RUNGE KUTTA ORDE 4
Listing Program
clear all;
clc;
syms x;
syms y;
disp('=========================================');
disp(' Metode Runge-Kutta Orde 4');
disp('=========================================');
f=input('Persamaan = ');
xa=input('Nilai x = ');
ya=input('Nilai y = ');
batas=input('Batas x = ');
h=input('Delta x = ');
disp(' x y k1 k2 k3 k4');
disp('----------------------------------------------------------------');
u=xa;
for cam=xa:h:batas
k1=subs(f,{x,y},{xa,ya});
x2=xa+(1/2*h);
y2=ya+((1/2)*k1*h);
k2=subs(f,{x,y},{x2,y2});
y3=ya+((1/2)*k2*h);
k3=subs(f,{x,y},{x2,y3});
x4=xa+h;
y4=ya+(k3*h);
k4=subs(f,{x,y},{x4,y4});
yb=ya+((h/6)*(k1+(2*k2)+(2*k3)+k4));
disp([xa' ya' k1' k2' k3' k4']);
xa=xa+h;
end;

259
Hasil Run Program

260
Flowchart

Start

Syms x
Syms y

Input persamaan, nilai


x awal, y awal, batas
x, delta x

u=xa;

For
cam=xa:h:batas;

k1=subs(f,{x,y},{xa,ya});
x2=xa+(1/2*h);
y2=ya+((1/2)*k1*h);
yes k2=subs(f,{x,y},{x2,y2});
y3=ya+((1/2)*k2*h);
k3=subs(f,{x,y},{x2,y3});
x4=xa+h;
y4=ya+(k3*h);
k4=subs(f,{x,y},{x4,y4});
yb=ya+((h/6)*(k1+(2*k2)+(2*k3)+k4));
Xa=xa+h;
no

disp([ xa' yb' k1' k2' k3' k4' ]);

End

261
4. Listing Program
clear all;
clc;
syms x;
disp('====================================');
disp(' VOLUME REAKTOR RUNGEKUTTA ORDE 4 ');
disp('====================================');
f=input('Persamaan = ');
xa=input('t awal = ');
xk=input('t akhir = ');
ya=input('nA(0) = ');
dx=input('Delta t = ');
disp(' t k1 k2 k3 k4 nA ');
disp('===============================================');
for cam=xa:dx:xk
k1=subs(f,x,xa);
x2=xa+(1/2*dx);
y2=ya+(1/2*k1*dx);
k2=subs(f,x,x2);
x3=xa+(1/2*dx);
y3=ya+((1/2)*k2*dx);
k3=subs(f,x,x3);
x4=xa+dx;
y4=ya+(k3*dx);
k4=subs(f,x,x4);
ys=ya+(1/6*k1+(2*k2)+(2*k3)+k4)*dx;
ya=ys;
disp([xa' k1' k2' k3' k4' ys']);
xa=xa+dx;
end
v=0.75-(25*ys);

262
disp(['Volume reaktor = ',num2str(v),' liter']);

263
Hasil Run Program

264
Flowchart Program

Start

Syms x

Input persamaan, t awal, t akhir nilai


nA(0) dan delta t

for cam=xa:dx:xk

k1=subs(f,x,xa);
x2=xa+(1/2*dx);
y2=ya+(1/2*k1*dx);
k2=subs(f,x,x2);
x3=xa+(1/2*dx);
y3=ya+((1/2)*k2*dx);
Yes
k3=subs(f,x,x3);
x4=xa+dx;
y4=ya+(k3*dx);
k4=subs(f,x,x4);
ys=ya+(1/6*k1+(2*k2)+(2*k3)+k4)*dx;
ya=ys;
xa=xa+dx;

Output Nilai xa, k1, k2, k3, k4 dan ys

No

v=0.75-(25*ys);

Output Volume Reaktor

End

265
5. Listing Program
clear all;
clc;
syms x;
syms y;
disp('==========================================');
disp(' SIFAT REAKTOR DENGAN RUNGEKUTTA ORDE 4 ');
disp('==========================================');
f=input('Persamaan = ');
xa=input('t awal = ');
xk=input('t akhir = ');
ya=input('nA awal = ');
dx=input('Delta t = ');
disp(' ');
disp(' t k1 k2 k3 k4 nA ');
disp('=================================================');
for cam=xa:dx:xk
k1=subs(f,{x,y},{xa,ya});
x2=xa+(1/2*dx);
y2=ya+((1/2)*k1*dx);
k2=subs(f,{x,y},{x2,y2});
y3=ya+((1/2)*k2*dx);
k3=subs(f,{x,y},{x2,y3});
x4=xa+dx;
y4=ya+(k3*dx);
k4=subs(f,{x,y},{x4,y4});
ys=ya+((dx/6)*(k1+(2*k2)+(2*k3)+k4));
ya=ys;
disp([xa' k1' k2' k3' k4' ys']);
xa=xa+dx;
end

266
disp(['mol A = ',num2str(ys)]);

267
Hasil Run Program

268
Flowchart Program

Start

Syms x
Syms y

Input persamaan, t awal, t akhir nilai nA


awal dan delta t

for cam=xa:dx:xk

k1=subs(f,{x,y},{xa,ya});
x2=xa+(1/2*dx);
y2=ya+((1/2)*k1*dx);
k2=subs(f,{x,y},{x2,y2});
y3=ya+((1/2)*k2*dx);
k3=subs(f,{x,y},{x2,y3});
Yes x4=xa+dx;
y4=ya+(k3*dx);
k4=subs(f,{x,y},{x4,y4});
ys=ya+((dx/6)*(k1+(2*k2)+(2*k3)+k4));
ya=ys;
xa=xa+dx;

Output Nilai xa, k1, k2, k3, k4 dan ys

No

Output Mol A

End

269
6. Kesimpulan dari metode Runge-kutta adalah, Metode Runge-kutta memiliki
beberapa orde. Yaitu Orde 2, 3, dan 4, Semakin tinggi order dari metode
tersebut maka ketelitian dari perhitungan akan semakin besar. Pada teknik
kimia dapat pula digunakan untuk menghitung volume dari reactor.

270

Anda mungkin juga menyukai