Anda di halaman 1dari 66

LABORATORIUM TEKNIK KIMIA Nama : RAHMADITA AULYA R

FAKULTAS TEKNOLOGI NPM/ Semester :17031010003 / IV


UPN “VETERAN” JAWA TIMUR Sesi :V
Paralel :A
Praktikum :MATEMATIKA TEKNIK KIMIA
Percobaan :METODE RUNGE-KUTTA
lllllllllllllllllllllllllllllllllllllllllllllllllllll
Tanggal :24 APRIL 2019
Pembimbing : LILIK SUPRIANTI, ST,MSc
LAPORAN RESMI

Soal:
1. Rangkum materi modul 5 sampai 8 secara sederhana. Jelaskan fungsi
setiap modul untuk persamaan apa?
2. Buatlah soal tiap kelompok berbeda masing-masing 3 soal dengan metode
runge kutta orde 2 sampai 4! Lengkapi dengan algoritma, flowchart dan
perhitungan manualnya!

176
Jawaban :
1. Modul 5
 Metode jacobi

Metode jacobi ini dapat disebut metode tidak langsung karena nilai yang
didapatkan tidak langsung dioperasikan kembali.Untuk mencari nilai variabel
yang dicari, maka nilai variabel yang pertama di ubah menjadi. Untuk mencari
nilai variabel selanjutnya, variabel yang sudah di dapatkan tadi dimasukkan ke
persamaan sehingga didapatkan persamaan selanjutnya.
 Metode Gauss Seidel

Metode Gauss Seidel biasa disebut metode langsung karena metode ini langsung
mensubstitusikan bilangan yang sudah didapatkan di perhitungan awal. Dalam
metode gauss seidel sama seperti metode jacobi dimana nilai variabel awal diubah
menjadi 0 namun nilai yang sudah didapatkan langsung dimasukkan untuk
mencari nilai variabel kedua.
Fungsi metode jacobi dan gauss siedel sendiri untuk membantu
mempermudah melakukan operasi perhitungan dalam mencari nilai x,y,dan z baru
sampai iterasi yang diinginkan.

Modul 6
 Metode Trapesium

Metode trapesium secara umum terbagi menjadi 2. Yaitu metode trapesium untuk
satu pias dan metode trapesium banyak pias. Metode trapesium satu pias
Merupakan metode pendekatan integral numerik dengan persamaan polynomial
orde 1. Sedangkan metode trapesium banyak pias adalah perbaikan dari metode
satu pias. Karena persen yang didapatkan dengan menggunakan metode satu pias
masih terlalu besar maka mertode ini memiliki persen kesalahan yang relatif kecil.

177
 Metode Simpson

Secara umum ada 3 macam metode simpson. Diantaranya:


1. Metode Simpson 1/3
Aturan ini digunakan untuk polinomial order dua yang melalui titik f(xi-1),
f(x), dan f(xi+1) untuk mendekati fungsi. Rumus simpson diturunkan
berdasarkan deret Taylor.
ba
x 
2
Untuk satu pias, maka:
ba
Ai   f (a)  4 f (c)  f (b).
6
Dimana c adalah titik tengah antara a dan b.
Aturan Simpson 1/3 dengan banyak pias
x  n 1 n2

b

 f ( x)dx 
3  f ( a )  f (b)  4i 1
f ( xi)  2i 2
f ( xi).

a

2. Metode Simpson 3/8

Metode ini diturunkan dengan menggunakan persamaan polinomial order 3


yang melalui empat titik.
b  a
x 
3

Untuk satu pias maka:


3x
I  f ( x 0 )  3 f ( x1 )  3 f ( x 2 )  f ( x3 )
8
Untuk banyak pias maka:
 f ( x0 )  3 f ( x1 )  3 f ( x 2 )  f ( x3 )
I  (b  a)
8
3. Metode Simpson Campuran

Digunakan saat jumlah piasnya ganjil untuk banyak pias. Dimana untuk
sejumlah genap pias dihitung dengan menggunakan metode simpson 1/3 dan
3 pias sisanya dengan menggunakan metode simpson 3/8.

178
Fungsi metode simpsons dan trapesium bagi mahasiswa teknik kimia ini bisa
digunakan untuk membantu menyelesaikan tugas akhir sebagai perhitungan
proses alat yang digunakan.

Modul 7
1. Metode Satu Langkah
Metode satu langkah merupakan metode differensial biasa. Dengan
menggunakan perkiraan kemiringan yang digunakan untuk ekstrapolasi dari
nilai y yang ditentukan sehingga dapat dihitung nilai y secara bertahap.
2. Metode Euler
Merupakan salah satu metode satu langkah yang paling sederhana. Dalam
metode ini persamaan di integralkan untuk mencari nilai perhitungan secara
numeris dengan mensubstitusikan nilai x awal. Dengan begitu kita bisa
menentukan nilai y1 dengan ketentuan rumus metode euler sehingga nantinya
bisa kita gunakan untuk mencari nilai x selanjutnya sampai batas yang
diinginkan dengan interval yang ditentukan.

Fungsi metode euler dan satu langkah adalah untuk menyelesaikan


persamaan persamaan baik linier atau pangkat 2 hingga pangkat tak hingga.

Modul 8
 Metode Runge Kutta

Secara umum metode ini terdiri dari beberapa orde dengan berbagai metode-
metode penyelesaian. Disini yang membedakan hanyalah nilai k. Dimana saat
orde 2 ada nilai k1 dan k2. Dan untuk orde 3 terdapat nilai k1,k2,k3 dan untuk
ordw 4 ada nilai k1,k2,k3,k4. Disinilah letak perbedaan metode ini karena untuk
mencari nilai k rumusnya berbeda-beda.
Fungsi metode ini adalah untuk mempermudah menyelesaikan persamaan
persamaan yang ada. Dengan berbagai variasi metode ini bisa dijadikan sebagai
acuan hasil yang paling mendekati karena memiliki ketelitian yang lebih tinggi
dari metode euler.

179
2. Soal 1
Suatu hari mimin sedang belanja ke supermarket. Dia berniat membuat kue
ulang tahun untuk ibunya. Ada banyak belanjaan yang harus dibeli mimin.
Diantaranya tepung terigu 4 kg sebanyak 3 bungkus, lalu mimin masih
merasa kurang dan akhirnya membeli lagi 4kg tepung sebanyak 2 bungkus
dan 20 butir telur. Namun telur 11 tersebut busuk sehingga harus di buang.
Tak lupa juga Mimin membeli keju sebanyak 6 bungkus. Mimin bergegas
membuat sebuah kue dan kue itupun jadi. Mimin membagikan ke anggota
keluarga lainnya karena mimin menyayangi semua keluarganya. Namun
sayang, jika diakumulasikan dari orang yang makan kue mimin hanya 0.2%
orang yang menyukainya.mereka semua berpendapat bahwa mimin tidak
membuatkue tetapi membuat tepung telur. Miminpun sedih dan mencoba
memberikan kue ke pacarnya untuk mendapat penilaian lain. Kabar
bahagianya pacar mimin sangat menyukainya. Akhirnya mimin merasa
bahagia dan merasa masih ada yang menghargainya.
Ubahlah soal di atas menjadi persamaan dan selesaikan dengan metode runge
kutta!
Keterangan:
Tepung terigu :x
Telur busuk : xy
Keju : konstanta
Delta x : %orang yang tidak suka

180
A. Metode Runge Kutta orde 2
Algoritma
1. Memulai program
2. Masukkan nilai persamaan, x awal, y awal, x akhir, dan delta x
3. Untuk cam=xa:h:xb maka dilakukan proses perhitungan k1,x2,y2,k2dan yb
dengan rumus k1=subs(f,{x,y},{xa,ya}) ; x2=xa+(0.5*h) ; y2=ya+(0.5*k1*h)
;k2=subs(f,{x,y},{x2,y2}); yb=ya+(k2*h);
4. Menampilkan nilai x awal, y awal, y akhir, x2,y2,k1,dan k1
5. Program selesai

181
Flowchart

START

syms x;

syms y;
Masukkan nilai persamaan, x awal,
y awal, x akhir, dan delta x

for
cam=xa:h:xb

k1=subs(f,{x,y},{xa,ya});

x2=xa+(0.5*h);

y2=ya+(0.5*k1*h);

k2=subs(f,{x,y},{x2,y2});

yb=ya+(k2*h);

xa=xa+h;

ya=yb;

i=i+1;

Menampilkan nilai
x awal, y awal, y
akhir, x2,y2,k1,dan
k1

END

182
Script Program
clear all;
clc;
syms x;
syms y;
disp('====================================================
===========================================');
disp(' RUNGE KUTTA ORDE-2 (METODE POLYGON)
');
disp('====================================================
===========================================');
f=input('Masukkan Persamaan =');
xa=input('Masukkan Nilai x Awal (x0) =');
ya=input('Masukkan Nilai y Awal (y0) =');
xb=input('Masukkan Nilai x Akhir (xi+1) =');
h=input('Masukkan Nilai Delta x =');
disp('====================================================
===========================================');
fprintf('%5s%10s%10s%20s%10s%13s%10s%10s\n','no','x awal','y
awal','yakhir(yi+1)','x2','y2','k1','k2');
disp('====================================================
===========================================');
i=1;
for cam=xa:h:xb
k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h);
y2=ya+(0.5*k1*h);
k2=subs(f,{x,y},{x2,y2});
yb=ya+(k2*h);
fprintf('%5.0f%10.3f%10.3f%15.3f%17.3f%13.3f%10.3f%10.3f\n',i,xa,ya,yb,x
2,y2,k1,k2);

183
xa=xa+h;
ya=yb;
i=i+1;
end
disp('====================================================
===========================================');

184
Hasil Run soal 1

185
PERHITUNGAN MANUAL

186
187
B. Metode Runge Kutta orde 3
Algoritma
1. Memulai program
2. Masukkan nilai persamaan, x awal, y awal, x akhir, dan delta x
3. Untuk cam=xa:h:xb maka dilakukan proses perhitungan
k1,x2,y2,k2,x3,y3,k3 dan yb dengan rumus k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h); y2=ya+(0.5*k1*h): k2=subs(f,{x,y},{x2,y2}); x3=xa+h;
y3=ya-(h*k1)+(2*h*k2);k3=subs(f,{x,y},{x3,y3});
yb=ya+((h/6)*(k1+(4*k2)+k3));
4. Menampilkan nilai x awal,y awal,yakhir(yi+1),x2,x3,y2,y3,k1,k2,k3);
5. Program selesai

188
Flowchart

START

syms x;

syms y;
Masukkan nilai persamaan, x awal,
y awal, x akhir, dan delta x

for
cam=xa:h:xb

k1=subs(f,{x,y},{xa,ya});

x2=xa+(0.5*h);

y2=ya+(0.5*k1*h);

k2=subs(f,{x,y},{x2,y2});

x3=xa+h;

y3=ya-(h*k1)+(2*h*k2);

k3=subs(f,{x,y},{x3,y3});

yb=ya+((h6)*(k1+(4*k2)+k3))

xa=xa+h;

ya=yb;

i=i+1;

Menampilkan nilai
x awal, y awal, y
akhir, x2,y2,k1,dan
k1

END

189
Script Program
clear all;
clc;
syms x;
syms y;
disp(' RUNGE KUTTA ORDE- 3 ');
f=input('Masukkan Persamaan =');
xa=input('Masukkan Nilai x Awal (x0) =');
ya=input('Masukkan Nilai y Awal (y0) =');
xb=input('Masukkan Nilai x Akhir (xi+1) =');
h=input('Masukkan Nilai Delta x =');
disp('====================================================
========================================================
=============');
fprintf('%5s%10s%10s%20s%10s%13s%10s%10s%10s%10s%10s\n','no','x
awal','y awal','yakhir(yi+1)','x2','x3','y2','y3','k1','k2','k3');
disp('====================================================
========================================================
=============');
i=1;
for cam=xa:h:xb
k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h);
y2=ya+(0.5*k1*h);
k2=subs(f,{x,y},{x2,y2});
x3=xa+h;
y3=ya-(h*k1)+(2*h*k2);
k3=subs(f,{x,y},{x3,y3});
yb=ya+((1/6)*(k1+(4*k2)+k3)*h);
fprintf('%5.0f%10.3f%10.3f%15.3f%17.3f%13.3f%10.3f%10.3f%10.3f%10.3f
%10.3f\n',i,xa,ya,yb,x2,x3,y2,y3,k1,k2,k3);

190
xa=xa+h;
ya=yb;
i=i+1;
end
disp('====================================================
========================================================
=============');

191
Hasil Run

192
PERHITUNGAN MANUAL

193
194
C. Metode Runge Kutta orde 4
Algoritma
1. Memulai program
2. Masukkan nilai persamaan, x awal, y awal, x akhir, dan delta x
3. Untuk cam=xa:h:xb maka dilakukan proses perhitungan
k1,x2,y2,k2,x3,y3,k3,x4,y4,k4 dan yb dengan rumus :
k1=subs(f,{x,y},{xa,ya});x2=xa+(0.5*h);y2=ya+(0.5*k1*h):
k2=subs(f,{x,y},{x2,y2});x3=xa+h;y3=ya-(h*k1)+(2*h*k2);
k3=subs(f,{x,y},{x3,y3});x4=xa+h;y4=ya+(k3*h);
k4=subs(f,{x,y},{x4,y4}); yb=ya+((1/6)*(k1+(2*k2)+(2*k3)+k4)*h);
4. Menampilkan nilai x awal, y awal, yakhir (yi+1), x2, x3, y2, y3, k1, k2, k3,
x4, y4, k4;
5. Program selesai

195
Flowchart

START

syms x;

syms y;
Masukkan nilai persamaan, x awal,
y awal, x akhir, dan delta x

for
cam=xa:h:xb

k1=subs(f,{x,y},{xa,ya});

x2=xa+(0.5*h);

y2=ya+(0.5*k1*h);

k2=subs(f,{x,y},{x2,y2});

x3=x2;

y3=ya+(0.5*k2*h);

k3=subs(f,{x,y},{x3,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));

Menampilkan nilai
x awal, y awal, y
akhir, x2,y2,k1,dan
k1

END

196
Script Program
clear all;
clc;
syms x;
syms y;
disp(' RUNGE KUTTA ORDE- 4 ');
f=input('Masukkan Persamaan =');
xa=input('Masukkan Nilai x Awal (x0) =');
ya=input('Masukkan Nilai y Awal (y0) =');
xb=input('Masukkan Nilai x Akhir (xi+1) =');
h=input('Masukkan Nilai Delta x =');
disp('====================================================
========================================================
========================================');
fprintf('%5s%10s%10s%20s%10s%13s%10s%10s%10s%10s%10s%10s%10s
%10s\n','no','x awal','y
awal','yakhir(yi+1)','x2','x3','x4','y2','y3','y4','k1','k2','k3','k4');
disp('====================================================
========================================================
========================================');
i=1;
for cam=xa:h:xb
k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h);
y2=ya+(0.5*k1*h);
k2=subs(f,{x,y},{x2,y2});
x3=x2;
y3=ya+(0.5*k2*h);
k3=subs(f,{x,y},{x3,y3});
x4=xa+h;
y4=ya+(k3*h);

197
k4=subs(f,{x,y},{x4,y4});
yb=ya+((h/6)*(k1+(2*k2)+(2*k3)+k4));

fprintf('%5.0f%10.3f%10.3f%15.3f%17.3f%13.3f%10.3f%10.3f%10.3f%10.3f
%10.3f%10.3f%10.3f%10.3f\n',i,xa,ya,yb,x2,x3,x4,y2,y3,y4,k1,k2,k3,k4);
xa=xa+h;
ya=yb;
i=i+1;
end
disp('====================================================
========================================================
========================================');

198
Hasil run

199
PERHITUNGAN MANUAL

200
201
Soal 2
Suatu hari hera sedang membersihkan rumahnya dia mengumpulkan barang-
barang bekas yang tak terpakai menjadi beberapa bungkus. Hera ingin
menjualnya kepada pembeli rongsokan. Dia memiliki 5kg kertas revisian
sebanyak 2 bungkus lalu 3 kg kertas revisian sebanyak 4 bungkus di kamar
tidurnya dan kamar adiknya. Lalu dia berjalan ke gudang rumahnya hera
menemukan besi tua berserakan lalu ia kumpulkan untuk di jual hera berhasil
mengumpulkan 28 biji besi tua, tiba-tiba perut hera sakit bergegaslah ia ke
kamar mandi. Setelah hera dari kamar mandi ia kembali ke gudang untuk
mengambil besi tua yang sudah dikumpulkannya. Alangkah terkejut dan
terheran-heran besi tua yang hera kumpulkan dicuri tukang rongsokan
sebanyak 10 biji. Dia masuk lagi kedalam rumah mengumpulkan gelas gelas
plastik yang tak terpakai dan dia berhasil mengumpulkan 10 biji gelas plastik
bekas. Setelah semua terkumpul bergegaslah hera ke tempat penjualan
rongsokan dan ia mendapat sejumlah uang yang ia gunakan untuk membeli
kado untuk anniversary pernikahan orang tuanya. Namun sayang, jika
diakumulasikan dari barang bekas yang ia jual hanya 99,8% yang ia jual.
Ubahlah soal di atas menjadi persamaan dan selesaikan dengan metode runge
kutta!
Keterangan:
Kertas revisian :x
Besi tua : xy
Gelas plastik : konstanta
Delta x : % barang bekas yang tak terjual

202
A. Metode Runge Kutta orde 2
Algoritma
1. Memulai program
2. Masukkan nilai persamaan, x awal, y awal, x akhir, dan delta x
3. Untuk cam=xa:h:xb maka dilakukan proses perhitungan k1,x2,y2,k2dan yb
dengan rumus k1=subs(f,{x,y},{xa,ya}) ; x2=xa+(0.5*h) ; y2=ya+(0.5*k1*h)
;k2=subs(f,{x,y},{x2,y2}); yb=ya+(k2*h);
4. Menampilkan nilai x awal, y awal, y akhir, x2,y2,k1,dan k1
5. Program selesai

203
Flowchart

START

syms x;

syms y;
Masukkan nilai persamaan, x awal,
y awal, x akhir, dan delta x

for
cam=xa:h:xb

k1=subs(f,{x,y},{xa,ya});

x2=xa+(0.5*h);

y2=ya+(0.5*k1*h);

k2=subs(f,{x,y},{x2,y2});

yb=ya+(k2*h);

xa=xa+h;

ya=yb;

i=i+1;

Menampilkan nilai
x awal, y awal, y
akhir, x2,y2,k1,dan
k1

END

204
Script Program
clear all;
clc;
syms x;
syms y;
disp('====================================================
===========================================');
disp(' RUNGE KUTTA ORDE-2 (METODE POLYGON)
');
disp('====================================================
===========================================');
f=input('Masukkan Persamaan =');
xa=input('Masukkan Nilai x Awal (x0) =');
ya=input('Masukkan Nilai y Awal (y0) =');
xb=input('Masukkan Nilai x Akhir (xi+1) =');
h=input('Masukkan Nilai Delta x =');
disp('====================================================
===========================================');
fprintf('%5s%10s%10s%20s%10s%13s%10s%10s\n','no','x awal','y
awal','yakhir(yi+1)','x2','y2','k1','k2');
disp('====================================================
===========================================');
i=1;
for cam=xa:h:xb
k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h);
y2=ya+(0.5*k1*h);
k2=subs(f,{x,y},{x2,y2});
yb=ya+(k2*h);
fprintf('%5.0f%10.3f%10.3f%15.3f%17.3f%13.3f%10.3f%10.3f\n',i,xa,ya,yb,x
2,y2,k1,k2);

205
xa=xa+h;
ya=yb;
i=i+1;
end
disp('====================================================
===========================================');

206
Hasil run

207
PERHITUNGAN MANUAL

208
209
B. Metode Runge Kutta orde 3
Algoritma
1. Memulai program
2. Masukkan nilai persamaan, x awal, y awal, x akhir, dan delta x
3. Untuk cam=xa:h:xb maka dilakukan proses perhitungan k1, x2, y2, k2, x3,
y3, k3 dan yb dengan rumus
k1=subs(f,{x,y},{xa,ya}); x2=xa+(0.5*h); y2=ya+(0.5*k1*h):
k2=subs(f,{x,y},{x2,y2}); x3=xa+h; y3=ya-(h*k1)+(2*h*k2);
k3=subs(f,{x,y},{x3,y3}); yb=ya+((h/6)*(k1+(4*k2)+k3));
4. Menampilkan nilai x awal,y awal,yakhir(yi+1),x2,x3,y2,y3,k1,k2,k3);
5. Program selesai

210
Flowchart

START

syms x;

syms y;
Masukkan nilai persamaan, x awal,
y awal, x akhir, dan delta x

for
cam=xa:h:xb

k1=subs(f,{x,y},{xa,ya});

x2=xa+(0.5*h);

y2=ya+(0.5*k1*h);

k2=subs(f,{x,y},{x2,y2});

x3=xa+h;

y3=ya-(h*k1)+(2*h*k2);

k3=subs(f,{x,y},{x3,y3});

yb=ya+((h6)*(k1+(4*k2)+k3))

xa=xa+h;

ya=yb;

i=i+1;

Menampilkan nilai
x awal, y awal, y
akhir, x2,y2,k1,dan
k1

END

211
Script Program
clear all;
clc;
syms x;
syms y;
disp(' RUNGE KUTTA ORDE- 3 ');
f=input('Masukkan Persamaan =');
xa=input('Masukkan Nilai x Awal (x0) =');
ya=input('Masukkan Nilai y Awal (y0) =');
xb=input('Masukkan Nilai x Akhir (xi+1) =');
h=input('Masukkan Nilai Delta x =');
disp('====================================================
========================================================
=============');
fprintf('%5s%10s%10s%20s%10s%13s%10s%10s%10s%10s%10s\n','no','x
awal','y awal','yakhir(yi+1)','x2','x3','y2','y3','k1','k2','k3');
disp('====================================================
========================================================
=============');
i=1;
for cam=xa:h:xb
k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h);
y2=ya+(0.5*k1*h);
k2=subs(f,{x,y},{x2,y2});
x3=xa+h;
y3=ya-(h*k1)+(2*h*k2);
k3=subs(f,{x,y},{x3,y3});
yb=ya+((1/6)*(k1+(4*k2)+k3)*h);
fprintf('%5.0f%10.3f%10.3f%15.3f%17.3f%13.3f%10.3f%10.3f%10.3f%10.3f
%10.3f\n',i,xa,ya,yb,x2,x3,y2,y3,k1,k2,k3);

212
xa=xa+h;
ya=yb;
i=i+1;
end
disp('====================================================
========================================================
=============');

213
Hasil run

214
PERHITUNGAN MANUAL

215
216
C. Metode Runge Kutta orde 4
Algoritma
1. Memulai program
2. Masukkan nilai persamaan, x awal, y awal, x akhir, dan delta x
3. Untuk cam=xa:h:xb maka dilakukan proses perhitungan k1, x2, y2, k2, x3,
y3, k3, x4, y4, k4 dan yb dengan rumus :
k1=subs(f,{x,y},{xa,ya});x2=xa+(0.5*h);y2=ya+(0.5*k1*h):
k2=subs(f,{x,y},{x2,y2});x3=xa+h;y3=ya-(h*k1)+(2*h*k2);
k3=subs(f,{x,y},{x3,y3});x4=xa+h;y4=ya+(k3*h);
k4=subs(f,{x,y},{x4,y4}); yb=ya+((1/6)*(k1+(2*k2)+(2*k3)+k4)*h);
4. Menampilkan nilai x awal, y awal, yakhir (yi+1), x2, x3, y2, y3, k1, k2, k3,
x4, y4, k4;
5. Program selesai

217
Flowchart

START

syms x;

syms y;
Masukkan nilai persamaan, x awal,
y awal, x akhir, dan delta x

for
cam=xa:h:xb

k1=subs(f,{x,y},{xa,ya});

x2=xa+(0.5*h);

y2=ya+(0.5*k1*h);

k2=subs(f,{x,y},{x2,y2});

x3=x2;

y3=ya+(0.5*k2*h);

k3=subs(f,{x,y},{x3,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));

Menampilkan nilai
x awal, y awal, y
akhir, x2,y2,k1,dan
k1

END

218
Script Program
clear all;
clc;
syms x;
syms y;
disp(' RUNGE KUTTA ORDE- 4 ');
f=input('Masukkan Persamaan =');
xa=input('Masukkan Nilai x Awal (x0) =');
ya=input('Masukkan Nilai y Awal (y0) =');
xb=input('Masukkan Nilai x Akhir (xi+1) =');
h=input('Masukkan Nilai Delta x =');
disp('====================================================
========================================================
========================================');
fprintf('%5s%10s%10s%20s%10s%13s%10s%10s%10s%10s%10s%10s%10s
%10s\n','no','x awal','y
awal','yakhir(yi+1)','x2','x3','x4','y2','y3','y4','k1','k2','k3','k4');
disp('====================================================
========================================================
========================================');
i=1;
for cam=xa:h:xb
k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h);
y2=ya+(0.5*k1*h);
k2=subs(f,{x,y},{x2,y2});
x3=x2;
y3=ya+(0.5*k2*h);
k3=subs(f,{x,y},{x3,y3});
x4=xa+h;
y4=ya+(k3*h);

219
k4=subs(f,{x,y},{x4,y4});
yb=ya+((h/6)*(k1+(2*k2)+(2*k3)+k4));

fprintf('%5.0f%10.3f%10.3f%15.3f%17.3f%13.3f%10.3f%10.3f%10.3f%10.3f
%10.3f%10.3f%10.3f%10.3f\n',i,xa,ya,yb,x2,x3,x4,y2,y3,y4,k1,k2,k3,k4);
xa=xa+h;
ya=yb;
i=i+1;
end
disp('====================================================
========================================================
========================================');

220
Hasil run

221
PERHITUNGAN MANUAL

222
223
Soal 3

𝑑𝑦
Diketahui : 𝑑𝑥 = −3𝑥 3 + 2𝑥 2 − 4𝑥𝑦 + 6

Dari x=0 sampai x=1 dengan menggunakan ⩟x=0,1. Kondisi awal pada x=0
adalah y=1

224
Algoritma
1. Memulai program
2. Masukkan nilai persamaan, x awal, y awal, x akhir, dan delta x
3. Masukkan pilihan :
1. Menggunakan metode runge kuta orde 2
2. Menggunakan metode runge kutta orde 3
3. Menggunakan metode runge kutta orde 4
4. Jika memilih pilihan 1 maka, untuk cam=xa:h:xb maka dilakukan proses
perhitungan k1,x2,y2,k2dan yb dengan rumus k1=subs(f,{x,y},{xa,ya}) ;
x2=xa+(0.5*h) ; y2=ya+(0.5*k1*h) ;k2=subs(f,{x,y},{x2,y2});
yb=ya+(k2*h);
5. Menampilkan nilai x awal, y awal, y akhir, x2,y2,k1,dan k1
6. Program selesai

225
Flowchart

Begin

Masukkan Persamaan
Masukkan Nilai x Awal (x0)
Masukkan Nilai y Awal (y0)
Masukkan Nilai x Akhir (xi+1)
Masukkan Nilai Delta x
Memasukkan pilihan metode
runge kutta

Case 1 No Case 2 No Case 3

for cam=xa:h:xb for cam=xa:h:xb for cam=xa:h:xb

k1=subs(f,{x,y},{xa,ya}); k1=subs(f,{x,y},{xa,ya});
k1=subs(f,{x,y},{xa,ya});
Yes x2=xa+(0.5*h);
x2=xa+(0.5*h); x2=xa+(0.5*h);
Yes
y2=ya+(0.5*k1*h); y2=ya+(0.5*k1*h);
y2=ya+(0.5*k1*h); Yes
k2=subs(f,{x,y},{x2,y2}); k2=subs(f,{x,y},{x2,y2});
k2=subs(f,{x,y},{x2,y2});
x3=xa+h; x3=x2;
yb=ya+(k2*h);
y3=ya-(h*k1)+(2*h*k2); y3=ya+(0.5*k2*h);
k3=subs(f,{x,y},{x3,y3}); k3=subs(f,{x,y},{x3,y3});
yb=ya+((h/6)*(k1+(4*k2)+k3)); x4=xa+h;
y4=ya+(k3*h);
k4=subs(f,{x,y},{x4,y4});
No
yb=ya+((h/6)*(k1+(2*k2)+(2*k3)+k4));
No

No

Menampilkan Hasil Menampilkan Hasil Menampilkan Hasil


perhitungan dengan perhitungan dengan perhitungan dengan
metode runge kutta metode runge kutta mrtode runge kutta
orde 2 orde 3 orde 4

End

226
Script Program
clear all;
clc;
syms x;
syms y;
disp('====================================================
===========================================');
disp(' METODE RUNGE KUTTA');
disp('====================================================
===========================================');
f=input('Masukkan Persamaan =');
xa=input('Masukkan Nilai x Awal (x0) =');
ya=input('Masukkan Nilai y Awal (y0) =');
xb=input('Masukkan Nilai x Akhir (xi+1) =');
h=input('Masukkan Nilai Delta x =');
disp('====================================================
===========================================');
disp(' 1. Runge Kutta orde 2');
disp(' 2. Runge Kutta orde 3');
disp(' 3. Runge Kutta orde 4');
disp('====================================================
===========================================');
pil=input('masukkan pilihan metode runge kutta:');
switch(pil)
case 1

disp('====================================================
===========================================');
disp(' RUNGE KUTTA ORDE-2 (METODE POLYGON)
');

227
disp('====================================================
===========================================');
disp('====================================================
===========================================');
fprintf('%5s%10s%10s%20s%10s%13s%10s%10s\n','no','x awal','y
awal','yakhir(yi+1)','x2','y2','k1','k2');
disp('====================================================
===========================================');
i=1;
for cam=xa:h:xb
k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h);
y2=ya+(0.5*k1*h);
k2=subs(f,{x,y},{x2,y2});
yb=ya+(k2*h);
fprintf('%5.0f%10.3f%10.3f%15.3f%17.3f%13.3f%10.3f%10.3f\n',i,xa,ya,yb,x
2,y2,k1,k2);
xa=xa+h;
ya=yb;
i=i+1;
end
disp('====================================================
===========================================');
case 2

disp('====================================================
===========================================');
disp(' RUNGE KUTTA ORDE-3 ');
disp('====================================================
===========================================');

228
disp('====================================================
========================================================
=============');
fprintf('%5s%10s%10s%20s%10s%13s%10s%10s%10s%10s%10s\n','no','x
awal','y awal','yakhir(yi+1)','x2','x3','y2','y3','k1','k2','k3');
disp('====================================================
========================================================
=============');
i=1;
for cam=xa:h:xb
k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h);
y2=ya+(0.5*k1*h);
k2=subs(f,{x,y},{x2,y2});
x3=xa+h;
y3=ya-(h*k1)+(2*h*k2);
k3=subs(f,{x,y},{x3,y3});
yb=ya+((h/6)*(k1+(4*k2)+k3));

fprintf('%5.0f%10.3f%10.3f%15.3f%17.3f%13.3f%10.3f%10.3f%10.3f%10.3f
%10.3f\n',i,xa,ya,yb,x2,x3,y2,y3,k1,k2,k3);
xa=xa+h;
ya=yb;
i=i+1;
end
disp('====================================================
========================================================
=============');
case 3
disp('====================================================
===========================================');

229
disp(' RUNGE KUTTA ORDE-4 ');
disp('====================================================
===========================================');
disp('====================================================
========================================================
========================================');
fprintf('%5s%10s%10s%20s%10s%13s%10s%10s%10s%10s%10s%10s%10s
%10s\n','no','x awal','y
awal','yakhir(yi+1)','x2','x3','x4','y2','y3','y4','k1','k2','k3','k4');
disp('====================================================
========================================================
========================================');
i=1;
for cam=xa:h:xb
k1=subs(f,{x,y},{xa,ya});
x2=xa+(0.5*h);
y2=ya+(0.5*k1*h);
k2=subs(f,{x,y},{x2,y2});
x3=x2;
y3=ya+(0.5*k2*h);
k3=subs(f,{x,y},{x3,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));
fprintf('%5.0f%10.3f%10.3f%15.3f%17.3f%13.3f%10.3f%10.3f%10.3f%10.3f
%10.3f%10.3f%10.3f%10.3f\n',i,xa,ya,yb,x2,x3,x4,y2,y3,y4,k1,k2,k3,k4);
xa=xa+h;
ya=yb;
i=i+1;
end

230
disp('====================================================
========================================================
========================================');
end

231
Hasil run orde 2

232
PERHITUNGAN MANUAL

233
234
Hasil run orde 3

235
PERHITUNGAN MANUAL

236
237
Hasil run orde 4

238
PERHITUNGAN MANUAL

239
240
241

Anda mungkin juga menyukai