PENDAHULUAN
1.1 Latar belakang
MatLab (Matrix Laboratory) merupakan komputasi numerikal dan
bahasa pemrograman komputer generasi keempat yang dikembangkan oleh The
MathWorks. Matlab memungkinkan adanya manipulasi matriks, plot grafik dari
fungsi dan data dan implementasi algoritma. Matlab merupakan metode numerik
yang memiliki toolbox dengan menggunakan mesin simbolik MuPAD, yang
memberikan akses terhadap aljabar komputer. Sebagai tambahan, adanya
Simulink pada Matlab mampu memberikan tampilan simulasi grafis multiranah
dan desain berdasarkan model untuk sistem kinematika dan dinamika. Pada tahun
2004, MathWorks mengklaim bahwa Matlab telah dimanfaatkan oleh lebih dari
satu juta pengguna di dunia pendidikan dan industry.
Pada dasarnya, metode numerik dari Matlab ini fungsinya adalah untuk
mempermudah perhitungan-perhitungan yang ssulit diselesaikan dengan cara
analitis. Disamping itu, kelebihan lain fungsi dari Matlab ini adalah mampu
menampilkan plot grafik yang diinginkan apakah dalam 2 dimensi atau 3 dimensi,
berwarna atau tidak berwarna. Hal ini tentunya, dapat dijadikan sebagai alasan
bagi seorang guru misalnya untuk mengunakan Matlab sebagai sebuah media
peembelajaran, yang mampu membantu siapa saja yang menggunakannya apakah
guru atau siswa untuk mempeajari materi-materi fisika dengan lebih mudah dan
menarik.
Sebagai contoh, untuk menampilkan bentuk plot grafik gelombang
transversal dalam pelaksanaannya secara analitis akan diperoleh tampilan grafik
yang terbatas hanya pada dua dimensi yang diproyeksikan terhadap sumbu x dan
y. Untuk mengambarkan gelombang tersebut dalam bentuk 3 dimensi, tentunya
akan sulit jika digambar dengan cara manual, tetapi jika menggunakan Matlab, hal
ini menjadi lebih mudah
1
matematis di dalam ilmu teknik menggunakan pernyataan dalam persamaan
differensial.
Persamaan differensial merupakan persamaan yang menghubungkan suatu
besaran dengan perubahannya. Persamaan differensial dinyatakan sebagai
persamaan yang mengandung suatu besaran dan differensialnya, dan dituliskan
dengan :
2 n
dx d x d x
F x, , , ,t 0
2 n
dt dt dt
dx
2
metode numeric nilai awal (initial value) pada persamaan di atas berfungsi untuk
memulainya dengan matlab. Oleh karena itu, pada bagian ini penulis akan menulis
penggunaan Matlab untuk menyelesaikan masalah integral yang berjudul
Persamaan Diferensial Orde Dua yang akan diaplikasikan dengan menggunakan
matlab.
1.3 Tujuan
1. Untuk mengetahui penggunaan metode Euler dengan Matlab untuk
menyelesaikan persamaan differensial orde 2
2. Untuk mengetahui penggunaan metode Runge Kutta dengan Matlab untuk
menyelesaikan persamaan differensial orde 2
3
BAB II
PEMBAHASAN
memodifikasi persamaan diferensial orde dua menjadi dua persamaan orde satu.
Persamaan iterasi metode euler untuk menyelesaikan persamaan diferensial orde
dua adalah sebagai berikut:
2
2 = ( , , )
2
= : =
2
=
= ,
=
=
= : = ( , , )
Persamaan iterasi :
2 = +
2 = ( , , )
4
Penerapan Metode Euler
Contoh 1
Masalah : penyelesaian model untuk getaran teredam
x = c k
mx mx
t = v;dx
dt = v; dx = vdt
x2 = x + v2h
v = f t,v,x ) = c k
mx mx
dv
dt = f (t,v,x );dv = dt f (t,v,x )
Defenisi fungsi
Function dg=fg(t,v,x)
m=1;k=2;c=0,5;
dg=-(c/m*v-(k/m)*x
Variabel utama/struktur data
No. Besaran Variabel Tipe data Keterangan
Algoritma
1. Mulai
2. Input Data
tm=input(lama pengamatan=)
n = Input (jumlah segmen =)
3. Proses
5
dttm/n;
t0;
for i l:n
xx+dt*v;
vv+dt*fg(t,v,x);
tt+dt
xc(i) x;xd(i) v;
xt(i) t;
end
4. Tampil
Plot (xt,xc);
Plot (xt,xd);
5. Stop
Koding
%metode euler
%persamaan diff orde 2
%dengan syarat awal
%dy/dx=f(x,y)
%fungsi getaran teredam
%x^=-(c/m)v-(k/m)x
clc;
clear;
x = input (nilai awal x=f)
6
Aplikasi Dengan Matlab
Langkah-langkah dengan MATLAB:
1. Buka program Matlab pada desktop sehingga akan terbuka program dengan
memunculkan kotak dialog MATLAb dan Comman Window seperti gambar:
7
3. Maka akan muncul kotak M-File baru seperti pada gambar di bawah ini:
Kode Program :
%Metode Euler
%Persamaan diff. orde 2
%dengan syarat awal
%dy/dx=f(x,y)
%fungsi getaran teredam
%x"=-(c/m)v-(k/m)x
clc;
clear all;
disp ( ' PERSAMAAN DIFFERENSIAL ORDE 2 DENGAN METODE EULER ' );
disp ( ' OLEH : KELOMPOK 1 ' );
disp ( ' NAMA : ANSELVINUS HALLAWA (NIM 8166175001) ' );
disp ( ' NORA HAWARI DAULAY (NIM 8166175016) ' );
disp ( ' SALWA DWI RATNA (NIM 8166175020)' );
disp ( ' KELAS : REG-A 2016 PROG.PASCA SARJANA' );
disp ( ' DOSEN PENGAMPU : Dr.Rita Juliani,M.Si ' );
disp ('________________________________________________________');
disp (' ')
x=input('Nilai awal x = ')
v=input ('Nilai awal v = ')
tm=input('Lama pengamatan = ')
n=input('Jumlah segmen = ')
dt=tm/n;
t=0;
for i=1:n
x=x+dt*v;
v=v+dt*fg(t,v,x);
t=t+dt;
xc(i)=x;xd(i)=v;
xt(i)=t;
end
plot(xt,xc,'r',xt,xd,'k');grid on;xlabel('t');
ylabel('x,v');title('getaran teredam');
legend('x','v');
fprintf('waktu=%8.3f\n',t);
fprintf('x=%8.3f\n',x);
fprintf('v=%8.3f\n',v);
8
Kode pada halaman selanjutnya
function dg=fg(t,v,x);
m=1;k=2;c=0.5;
dg=-(c/m)*v-(k/m)*x;
5. Setelah selesai mengetik script program, simpanlah hasil kerja (work ) dengan
mengklik menu File kemudian Save pada kotak dialog M-File. Gantilah nama
file dari Untitled menjadi MetodeEuler2 (tanpa spasi). Catatan : nama file
tidak boleh menggunakan spasi, jika menggunakan spasi maka file akan eror
jika dijalankan.
6. Pada work path klik Debug kemudian Run untuk menjalankan program.
7. Maka akan muncul pada Comman Window sebagai berikut:
>> PERSAMAAN DIFFERENSIAL ORDE 2 DENGAN METODE EULER
OLEH : KELOMPOK 1
NAMA : ANSELVINUS HALLAWA (NIM 8166175001)
NORA HAWARI DAULAY (NIM 8166175016)
SALWA DWI RATNA (NIM 8166175020)
KELAS : REG-A 2016 PROG.PASCA SARJANA
DOSEN PENGAMPU : Dr.Rita Juliani,M.Si
________________________________________________________
Nilai awal x =
9
Gambar pada comman window:
15, jumlah segmen = 400. Setelah itu tekan Enter pada keyboard, maka
akan muncul nilai integral tersebut sebagai berikut.
>> PERSAMAAN DIFFERENSIAL ORDE 2 DENGAN METODE EULER
OLEH : KELOMPOK 1
NAMA : ANSELVINUS HALLAWA (NIM 8166175001)
NORA HAWARI DAULAY (NIM 8166175016)
SALWA DWI RATNA (NIM 8166175020)
KELAS : REG-A 2016 PROG.PASCA SARJANA
DOSEN PENGAMPU : Dr.Rita Juliani,M.Si
________________________________________________________
Nilai awal x = 10
x = 10
Nilai awal v = 0
v=0
Lama pengamatan = 15
tm = 15
waktu= 15.000
x= -0.080
v= -0.278
>>
10
Gambar pada Comman Window:
11
2.1.2 Metode Runge-Kutta Orde 4
Bentuk persamaan iterasi penyelesaian persamaan differensial orde dua dengan
meyode Runge-Kutta orde 4 adalah sbb;
= ( , , ); =
= ( , , );
= ( , , )
k 1=dt*g(t,v,x);r 1=dt*f(t,v,x)
k 2=dt*g(t+dt/2,v+r 1/2, x+k 1/2)
r 2=dt*g(t+dt/2,v+r 2/2, x+k 1/2)
k 3=dt*g(t+dt/2,v+r 2/2, x+k 2/2)
r 3=dt*g(t+dt/2,v+r 2/2, x+k 2/2)
k 4=dt*g(t+dt,v+r 3,x+k 3)
r 4=dt*g(t+dt,v+r 3,x+k 3)
k=(k 1+2*k 2+2*k 3+k 4)/6
r=(r 1+2*r 2+2*r 3+r 4)/6
x=x+k; v=v+r
x = mx k
mx
dx
t = v; dt = v; dx = vdt
v = f t,v,x ) = c k
mx mx
dv
dt = f (t,v,x );
Variabel utama/struktur data
No. Besaran Variabel Tipe data Keterangan
12
Algoritma
1. Mulai
2. Input Data
tm=input(lama pengamatan=)
t0;
dttm/n;
for i1:n
k 1=dt*g(t,v,x);r 1=dt*f(t,v,x)
k 4dt*g(t+dt,v+r 3,x+k 3)
r 4dt*g(t+dt,v+r 3,x+k 3)
vv+r
tt+dt
xc(i) x;xd(i) v;
xt(i) t;
end
4. Tampil
Plot (xt,xc)
Plot (xt,xd)
5. Stop
13
Koding
%metode Runge-Kutta orde 2
%dengan syarat awal
%dy/dx=f(x,y)
%fungsi getaran teredam
%x^=-(c/m)v-(k/m)x
clc;
clear;
x = input (nilai awal x=f)
v = input (nilai awal v=)
tm=input(lama pengamatan=)
n = Input (jumlah segmen =)
t=0;
dttm/n;
for i=1:n
k1=dt*g(t,v,x);r1=dt*f(t,v,x)
k2=dt*g(t+dt/2,v+r1/2, x+k1/2)
r2=dt*g(t+dt/2,v+r2/2, x+k1/2)
k3=dt*g(t+dt/2,v+r2/2, x+k2/2)
14
Aplikasi Dengan Matlab
Langkah-langkah dengan MATLAB:
1. Buka program Matlab pada desktop sehingga akan terbuka program
dengan memunculkan kotak dialog MATLAb dan Comman Window
seperti gambar:
15
3. Maka akan muncul kotak M-File baru seperti pada gambar di bawah ini:
Kode Program :
%Metode Runge Kutta orde 2
%dengan syarat awal
% dy/dx=f(x,y)
% Fungsi getaran teredam
% x"=-(c/m)v-(k/m)x
clc;
clear all;
disp ( ' PERSAMAAN DIFFERENSIAL ORDE 2 DENGAN METODE RUNGE KUTTA ORDE 4 '
);
disp ( ' OLEH : KELOMPOK 1 ' );
disp ( ' NAMA : ANSELVINUS HALLAWA (NIM 8166175001) ' );
disp ( ' NORA HAWARI DAULAY (NIM 8166175016) ' );
disp ( ' SALWA DWI RATNA (NIM 8166175020)' );
disp ( ' KELAS : REG-A 2016 PROG.PASCA SARJANA' );
disp ( ' DOSEN PENGAMPU : Dr.Rita Juliani,M.Si ' );
disp ('________________________________________________________');
disp (' ')
x=input('Nilai simpangan = ');
v=input ('Nilai kecepatan awal = ');
tm=input('Lama pengamatan = ');
n=input('Jumlah segmen = ');
t=0;
dt=tm/n;
for i=1:n
k1=dt*fv(t,v,x);
r1=dt*fg(t,v,x);
k2=dt*fv(t+dt/2,v+r1/2,x+k1/2);
r2=dt*fg(t+dt/2,v+r1/2,x+k1/2);
k3=dt*fv(t+dt/2,v+r2/2,x+k2/2);
r3=dt*fg(t+dt/2,v+r2/2,x+k2/2);
k4=dt*fv(t+dt,v+r3,x+k3);
r4=dt*fg(t+dt,v+r3,x+k3);
k=(k1+2*k2+2*k3+k4)/6;
r=(r1+2*r2+2*r3+r4)/6;
x=x+k;
v=v+r;
16
t=t+dt;
xc(i)=x;xd(i)=v;
xt(i)=t;
end
plot(xt,xc,'r',xt,xd,'k');grid on;xlabel('t');
ylabel('x,v');title('Getaran teredam');
fprintf(' waktu=%8.3f\n',t);
fprintf(' X=%8.3f\n',x);
fprintf(' V=%8.3f\n',v);
5. Setelah selesai mengetik script program, simpanlah hasil kerja (work ) dengan
mengklik menu File kemudian Save pada kotak dialog M-File. Gantilah nama
file dari Untitled menjadi RungeKutta2 (tanpa spasi). Catatan : nama file
tidak boleh menggunakan spasi, jika menggunakan spasi maka file akan eror
jika dijalankan.
6. Pada work path klik Debug kemudian Run untuk menjalankan program.
7. Maka akan muncul pada Comman Window sebagai berikut:
>> PERSAMAAN DIFFERENSIAL ORDE 2 DENGAN METODE RUNGE KUTTA
ORDE 4
OLEH : KELOMPOK 1
NAMA : ANSELVINUS HALLAWA (NIM 8166175001)
NORA HAWARI DAULAY (NIM 8166175016)
SALWA DWI RATNA (NIM 8166175020)
KELAS : REG-A 2016 PROG.PASCA SARJANA
17
DOSEN PENGAMPU : Dr.Rita Juliani,M.Si
________________________________________________________
Nilai simpangan =
Nilai simpangan = 10
Nilai kecepatan awal = 0
Lama pengamatan = 15
Jumlah segmen = 150
waktu= 15.000
X= -0.066
V= -0.303
>>
18
Gambar pada Comman Window:
19
Penyelesaian Persamaan Diferensial orde 2 menggunakan fungsi standar
Matlab menyediakan beberapa fungsi standar untuk menyelesaikan
persamaan diferensial orde dua, maka harus dilakukan modifikasi sehingga
menjadi bentuk persamaan diferensial orde satu.
Perubahan bentuk persamaan diferensial orde dua ke satu
2 = ( . )
2 + ( , ) = ( , )
=dy
misal y = y; y2 dx;maka persamaan menjadi
+ ( , ) 2 + ( , ) = ( , )
Aplikasi 1
= 2
+
2 + =0
2
2 =
Fungsi eksternal getaran teredam
%getaran teredam
%my+cy2+ky=0
Function dy/dt=getar(t,y);
m=1;c=0,5;k=2
dy/dt=[y(2);-c/m*y(2)-k/m*y(1)]
Koding
%getaran teredam
%my+cy2+ky=0
%nama file getar.m
[t,y]=ode45(getar,0,30,[5:0
y1=y(t,1);
y2=y(t,2);
plot(t,y1,t,y2);
grid on;
title(getaran teredam);
xlabel(t=waktu);
ylabel(y/v);
legend(y,v);
20
Hasil grafik pada comman window
Aplikasi 2
Penyelesaian persamaan diferensial orde 2 getaran paksa
Bentuk umum persamaan getaran paksa
2
= 2 + + = cos( )
2
2 = + cos( )
Fungsi eksternal getaran paksa
%getaran paksa
%my+cy2+ky=a cos wt
%nama file getar.m
Function dy/dt=getar(t,y);
m=1;c=0,5;k=2
dy/dt=[y(2);-c/m*y(2)-k/m*y(1)+2*cos(3*t)];
Koding
%getar paksa
%my+cy2+ky=0
%nama file getar.m
[t,y]=ode45(getar,0,30,[10:2
21
y1=y(t,1);
y2=y(t,2);
plot(t,y1,t,y2);
grid on;
title(getar paksa);
xlabel(t=waktu);
ylabel(y/v);
legend(y,v);
Aplikasi 3
Penyelesaian persamaan diferensial orde 2 getaran Van Der Pol
2 )
2 + (1 2 + =0
2 )
2 = (1 2
0 < < 10
Fungsi eksternal getaran Van der Pol
%getaran Van der Pol
%y2=-m(1-y^2)y^2-5
%nama file getaran Van.m
Function dy/dt=getar(t,y);
m=1;c=0,5;k=2
dy/dt=[y(2);-c/m*(1-y(1)^2)*y(2)-y(1)];
22
Koding
%getar Van der Pol
%y2=-m(1-y^2)y^2-5
[t,y]=ode45(van,0,30,[2:0
y1=y(t,1);
y2=y(t,2);
plot(t,y1,k,t,y2,t);
grid on;
title(getaran Van Der Pol);
xlabel(t=waktu);
ylabel(y/v);
legend(y,v);
umum digunakan, dan karena itu kita menyebutnya metode klasik RK orde
keempat:
23
1
yi 1 yi k1 2k 2 2k 3 k4 h
6
Dimana
k f i
, yi
1 1
k2 f ti h, y i kh
2 2
1 1
k3 f i t ,hyi k2 h
2 2
k4 f i h, y i k3 h
Simpson 1/3. Selain itu, metode RK orde keempat mirip dengan pendekatan Heun
dalam beberapa taksiran derajat kemiringan dikembangkan untuk menghasilkan
derajat kemiringan rata-rata yang lebih baik untuk interval tersebut. Seperti yang
digambarkan pada Gambar. 20,7, masing-masing k mewakili kemiringan.
Persamaan (20.44) kemudian menunjukkan rata-rata hitung untuk mencapai
kemiringan yang disesuai.
24
8( 5)
k2 f ( 5 5) 4e 5( 5) .217299
Kemiringan ini pada gilirannya digunakan untuk menghitung nilai lain, dan
y( 5) 2 ( 5) 5
8( 5)
k3 f 5 . 108649 4e 5( .108649) .912974
Selanjutnya :
y 10 2 .912974 0) .912974
8 0)
k4 f 0 .912974 ) 4e 5( .912974) .945677
1
2( .217299) 2( .912974) .945677 .201037
6
y 2 .201037 0) .201037
1
yi 1 y1 k
1
32 k3 12 k4 32 5 k7 6 k h
90
Dimana :
25
k f i , yi
1
k2 f ti h, y i k h
4
1 1 1
k3 f t h, y i kh k h2
4 8 8
1 1
k4 f ti h, y i k 2 h k 3h
2 2
3 3 9
k5 f t h, y i kh k h4
4 16 16
3 2 12 12 8
k6 f t i
h,y i
kh k 2h k h3 k h4 k h5
7 7 7 7 7
26
end
np=np+1;tp(np)=tt;yp(np,:)=y(i,:);
if tt>=tf,break,end
end
Maka:
hanya melibatkan penerapan. Satu teknik untuk setiap persamaan pada setiap
langkah sebelum melanjutkan ke langkah berikutnya. Ini paling baik digambarkan
dengan contoh berikut untuk metode Euler.
27
2
x
r 1 xr
y(xr+1) = y(xr ) + r 1
y(xr ) + r
y(t), xr <t<xr+1
1! 2!
berdasarkan persamanan bentuk baku PDB orde orde satu maka y(xr ) = f(xr , yr ) dan xr+1
2
h
xr = h maka persamaan 2 dapat ditulis menjadi y(xr+1) y(xr )+hf(xr ,yr )+ y(t) dua
2
suku pertama persamaan di atas yaitu : y(xr+1) = y(xr ) + hf(xr , yr ) ; r = 0, 1, 2,,n atau
dapat ditulis
method ). Pada metode Heun , solusi dari metode Euler dijadikan sebagai solusi
perkiraan awal (prediktor), selanjutnya solusi perkiraan awal diperbaiki dengan
metode Heun (Corrector).
y 'x fxyx
xr1 xr1
'
f x y x dx ( ) y x dx
r xr
= y(xr+1)-y(xr )
= yr+1-yr
xr 1
y 1 y ( , ( ))
xr
28
xr 1
f x y x dx,
xr
29
eksplisit maupun implisit bahwa metode Euler merupakan metode orde dua
sehingga memberikan kesulitan kepada pembaca untuk memahami kedua hal
tersebut.
Kelebihan Kekurangan
Pada buku Chapra sangat spesifik Tidak secara jelas dikatakan bahwa
menjelaskan konsep dasar dari metode masalah diferensial orde dua juga dapat
runge kutta untuk diferensial orde 2. diselesaikan dengan metode euler.
Buku Chapra menjelaskan dari teori Untuk contoh-contoh soal kurang sudah
terlebih dahulu kemudian diikuti disertai secara analitis matematisnya
dengan persamaan-persamaan dan dan langsung dengan penyelesaian
terakhir disertai dengan contoh secara metode numerik menggunakan
numerik. MATLAB hanya dengan Koding yang
tidak dapat di uji cobakan.
Koding yang di muat dalam buku Koding yang di sajikan terlalu panjang
bukan Koding yang fleksibel dan dan rumit untuk dimengerti dan hanya
berlaku untuk berbagai persoalan dan ada Koding untuk metode runge kutta
berbagai bentuk persamaan, karna
syarat dalam Koding hanya untuk
syarat sesuai soal dan harus mengganti
terlebih dahulu pada functionnya
Hasil analitik metode numerik secara Dari penjelasan seolah-olah masalah
manual hampir mendekati hasil secara diferensiasi orde dua hanya dapat
MATLAB, hanya terdapat pada diselesaikan dengan metode runge
perbedaan angka dibelakang koma. kutta, dan tidak dapat dengan metode
euler.
Kelebihan Kekurangan
Pada buku Sahyar sangat spesifik Secara jelas dikatakan bahwa masalah
menjelaskan konsep dasar dari metode diferensial orde dua dapat diselesaikan
Runge Kutta dan metode Euler untuk dengan metode euler dan metode
diferensial orde 2. Runge-Kutta.
Buku Sahyar menjelaskan dari teori Untuk contoh-contoh soal kurang
terlebih dahulu secara singkat lengkap secara analitis matematisnya
kemudian diikuti dengan persamaan- karena langsung dengan penyelesaian
persamaan dan terakhir disertai dengan metode numerik menggunakan
contoh secara numerik menggunakan MATLAB namun semua Koding dapat
30
MATLAB. diuji cobakan
sederhana dan mudah untuk dimengerti bukan Koding yang fleksibel dan
dan ada Koding untuk metode Euler berlaku untuk berbagai persoalan dan
dan metode Runge Kutta sehingga berbagai bentuk persamaan, karna
dapat dibedakan perbedaan hasilnya. syarat dalam Koding hanya untuk
syarat sesuai soal dan harus mengganti
terlebih dahulu pada functionnya.
Tetapi semua Koding baik metode
Euler maupun metode Runge-Kutta
dapat di uji cobakan.
Hasil analitik metode numerik secara Untuk penjelasan teori penemuan
manual hampir mendekati hasil secara persamaan metode Euler dan metode
31
BAB III
PENUTUP
3.1 Kesimpulan
1. Melalui testing diatas disimpulkan bahwa dengan metode Euler
menggunakan segmen 400 sedangkan pada metode Runge Kutta
menggunakan jumlah segmen 150 menghasilkan keakuratan yang sama.
2. Menurut penulis, dapat disimpulkan bahwa metode Runge Kutta adalah
metode yang lebih akurat dibandingkan metode Euler dalam memberikan
solusi persamaan diferensial orde 2. Hal ini dapat dilihat dari hasil uji
testing program.
32
DAFTAR PUSTAKA
Chapra, Steven. 2002. Apllied Numeric Methods with MATLAB. New York : Mc
Graw Hill
Sahyar. 2013. Algoritma dan Pemrograman Mengunakan Matlab. Medan :
UNIMED Press
33