BAB I PENDAHULUAN 1.1 Latar belakang
MatLab (Matrix Laboratory) Laboratory) merupakan komputasi numerikal dan bahasa pemrograman komputer generasi keempat yang dikembangkan oleh The MathWorks. MathWorks. Matlab memungkinkan adanya manipulasi matriks, matriks, plot grafik dari fungsi dan data dan implementasi algoritma. implementasi algoritma. Matlab Matlab merupakan metode numerik yang memiliki toolbox toolbox dengan menggunakan mesin simbolik MuPAD, 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 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 saj a 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. y. Untuk mengambarkan gelombang tersebut dalam bentuk 3 dimensi, tentunya akan sulit jika digambar dengan cara manual, teta pi jika menggunakan Matlab, hal ini menjadi lebih mudah Permasalahan persamaan differensial ini merupakan permasalahan yang banyak ditemui ketika analisa yang dilakukan tergantung pada waktu dan nilainya mengalami perubahan-perubahan berdasarkan waktu. Hampir banyak model
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 :
dx d 2 x d n x F x, dt , dt 2 , dt n , t 0 Persamaan differensial adalah pesamaan yang memuat turunan satu (atau beberapa) fungsi yang tidak diketahui. Suatu persamaan diferensial yang terdiri dari satu variabel bebas saja dinamakan perasamaan diferensial biasa (Ordinary ( Ordinary Differential Equation-ODE). Equation-ODE). Sedangkan persamaan diferensial yang terdiri dari dua atau lebih variabel bebas dinamakan persamaan diferensial parsial ( Partial Partial Differential Equation-PDE). Equation-PDE). Persamaan differensial mempunyai banyak ragam dan jenis mulai dari yang mudah diselesaikan hingga yang sulit diselesaikan, mulai dari yang sederhana sampai yang sangat kompleks. Ada beberapa metode yang dapat digunakan untuk menyelesaikan persamaan differensial, antara lain: metode Euler, metode pendekatan dengan deret Taylor, metode runge-kutta dan metode-metode prediktor-korektor seperti metode Adam Moulton. Hanya saja metode-metode pendekatan ini menyebabkan penyelesaian yang dihasilkan bukanlah penyelesaian umum dari persamaan differensial, tetapi penyelesaian khusus dengan nilai awal dan nilai batas yang ditentukan. Pada pembahasan makalah ini akan membahas persamaan diferensial biasa (ODE) dengan metode Euler atau orde satu. Penyelesaian persamaan diferensial biasa (ODE) mempunyai bentuk umum yaitu: yaitu: dy dx
f x y ,
Penyelesaian PDB secara numerik berarti menghitung nilai fungsi di xr+1 = xr + h, dengan h
adalah ukuran langkah ( step) step) setiap lelaran. Pada metode
analitik, nilai awal berfungsi untuk memperoleh solusi yang unik, sedangkan pada
2
metode numeric nilai awal (initial (initial value) 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” Dua” yang akan diaplikasikan dengan menggunakan matlab.
1.2 Rumusan Masalah
1. Bagaimana
penggunaan
metode
Euler
dengan
Matlab
untuk
menyelesaikan persamaan differensial orde 2? 2. Bagaimana penggunaan metode Runge Kutta dengan Matlab untuk menyelesaikan persamaan differensial orde 2?
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
2.1 Persamaan Diferensial Orde Dua (Buku Prof. Sahyar)
Bentuk umum persamaan diferensial orde dua
2 + (, ) + (, ) = ℎ(, ) 2 Persamaan diferensial orde dua banyak digunakan dalam bidang sains seperti persamaan getaran, persamaan gaya, persamaan rangkaian RLC pada listrik AC dan lainnya.persamaan diferensial orde dua dapat diselesaikan secara analitik dan non analitik.
2.1.1 Metode Euler
Penyelesaian
persamaan
diferensial
orde
dua
dilakukan
dengan
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= − t = v;
c m
x−
k m
x
dx = v; dx = vdt dt
x2 = x + v2 h ̂v= f (t,v,x) = − dv dt
c m
x−
k m
x
= 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
1
Lebar segmen
m
Real
Input
2
Nilai awal simpangan
x
Real
Input
3
Nilai awal kecepatan
v
Real
Input
4
Lama pengamatan
tm
Real
Input
5
Nilai fungsi eksternal getaran
dt
Real
Input
Algoritma
1. Mulai 2. Input Data
x = input (‘nilai awal x=f’)
v = input (‘nilai awal v=’)
tm=input(‘lama pengamatan=’)
n = Input (‘jumlah segmen =’)
3. Proses
5
dt←tm/n;
t←0;
for i ←l: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
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’) v = input (‘nilai awal v=’) tm=input(‘lama pengamatan=’) n = Input (‘jumlah segmen =’) dt←tm/n;
t=0; for i=l: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,’t’,xt,xd,’k’);grid on;xlabel(‘t’); ylabel(‘x.v’);title(‘getaran teredam’); legend(‘x’,’v’); fprint(‘waktu=%8,3f,’n’,t’) fprint(‘x=%8,3f,’n’,t’) fprint(‘v=%8,3f,’n’,t’)
Function dg=fg(t,v,x) m=1;k=2;c=0,5; dg=-(c/m*v-(k/m)*x
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:
Pr ogram MA TL AB
Kotak dialog MA TL AB
Comman Window
2. Buat M-file baru pada Comman Window dengan cara mengklik menu File pada Comman Window dan pilih New kemudian M-File seperti gambar di bawah ini:
Buat file baru pada Comman Window : File New M-File
7
3. Maka akan muncul kotak M-File baru seperti pada gambar di bawah ini:
4. Masukkan kode program ke program MATLAB sebagai berikut dengan cara mengketikkannya pada kotak dialog M-File. 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;
Koding yang telah di input sebagai berikut:
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:
8. Kemudian masukkan nilai awal x = 10, nilai awal v = 0, lama pengamatan = 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 Jumlah segmen = 400 n = 400 waktu= 15.000 x= -0.080 v= -0.278 >>
10
Gambar pada Comman Window:
Gambar grafik 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 Penerapan metode Runge-Kutta model untuk getaran:
̂=− x t = v;
c m
x−
k m
dx = v; dx = vdt dt
̂v= f (t,v,x) = − dv dt
x
c m
x−
k m
x
= f (t,v,x);
Variabel utama/struktur data
No.
Besaran
Variabel
Tipe data
Keterangan
1
Lebar segmen
m
Real
Input
2
Nilai awal simpangan
x
Real
3
Nilai awal kecepatan
v
Real
4
Lama pengamatan
tm
Real
5
Nilai fungsi eksternal getaran
dt
Real
12
Input
Algoritma
1. Mulai 2. Input Data
x = input (‘nilai awal x=f’)
v = input (‘nilai awal v=’)
tm=input(‘lama pengamatan=’)
n = Input (‘jumlah segmen =’)
3. Proses
t←0;
dt←tm/n;
for i←1:n
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
t←t+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; dt←tm/n;
for i=1:n k1=dt*g(t,v,x);r 1=dt*f(t,v,x) k2=dt*g(t+dt/2,v+r 1/2, x+k1/2) r2=dt*g(t+dt/2,v+r 2/2, x+k1/2) k3=dt*g(t+dt/2,v+r 2/2, x+k2/2) r3=dt*g(t+dt/2,v+r 2/2, x+k2/2) k4=dt*g(t+dt,v+r 3,x+k3) r4=dt*g(t+dt,v+r 3,x+k3) k=(k1+2*k2+2*k3+k4)/6 r=(r1+2*r2+2*r3+r4)/6 x=x+k; v←v+r t←t+dt xc(i) ←x;xd(i) ←v; xt(i) ←t;
end plot(xt,xc,’t’,xt,xd,’k’);grid on;xlabel(‘t’); ylabel(‘x.v’);title(‘getaran teredam’); legend(‘x’,’v’); fprint(‘waktu=%8,3f,’n’,t’) fprint(‘x=%8,3f,’n’,t’) fprint(‘v=%8,3f,’n’,t’)
Function dg=fg(t,v,x) m=1;k=2;c=0,5; dg=-(c/m*v-(k/m)*x function dv=fv(t,v,x); dv=v
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:
Pr ogram MA TL AB
Kotak dialog MA TL AB
Comman Window
2. Buat M-file baru pada Comman Window dengan cara mengklik menu File pada Comman Window dan pilih New kemudian M-File seperti gambar di bawah ini:
Buat file baru pada Comman Window : File New M-File
15
3. Maka akan muncul kotak M-File baru seperti pada gambar di bawah ini:
4. Masukkan kode program ke program MATLAB sebagai berikut dengan cara mengketikkannya pada kotak dialog M-File. 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);
Koding yang telah di input sebagai berikut:
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 =
Gambar pada comman window:
8. Kemudian masukkan nilai simpangan = 10, nilai kecepatan awal = 0, lama pengamatan = 15, jumlah segmen = 150. Setelah itu tekan ‘Enter’ pada keyboard, maka akan muncul nilai integral tersebut 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 DOSEN PENGAMPU : Dr.Rita Juliani,M.Si ________________________________________________________ Nilai simpangan Nilai kecepatan Lama pengamatan Jumlah segmen = waktu= 15.000 X= -0.066 V= -0.303 >>
= 10 awal = 0 = 15 150
18
Gambar pada Comman Window:
Gambar grafik pada Comman Window:
Melalui testing diatas disimpulkan bahwa dengan metode Euler menggunakan segmen 400 sedangkan pada metode Runge Kutta menggunakan jumlah segmen 150. Komputasi dengan metode Runge-Kutta lebih efektif dan lebih akurat dibandingkan dengan metode Euler.
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
+ (, ) = ℎ(, )
misal y = y; y2 =
dy dx
; maka persamaan menjadi
+ (, )2 + (, ) = (, )
Aplikasi 1 Penyelesaian persamaan diferensial orde 2 getaran teredam Bentuk umum persamaan diferensial getaran teredam
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
2 2 =−
+
+ = cos()
− + 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’);
Hasil grafik pada comman window
Aplikasi 3 Penyelesaian persamaan diferensial orde 2 getaran Van Der Pol
2 2 + (1 − ) + = 0 2 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’);
Hasil grafik pada comman window
2.2 Persamaan Diferensial Orde Dua (Buku Chapra) 2.2.1 Metode Klasik Orde – keempat Runge-Kutta(RK )
Metode RK yang paling populer adalah urutan keempat. Pada pendekatan urutan kedua, ada versi jumlah tak terbatas. Berikut ini adalah bentuk paling umum digunakan, dan karena itu kita menyebutnya metode klasik RK orde keempat:
23
yi
1
yi
1
6
k
1
2k 2
2k 3
k 4 h
Dimana k 1 f t i , y i 1 1 h, y i k 1 h 2 2 1 1 k 3 f t i h, y i k 2 h 2 2 k 4 f t i h, y i k 3 h
k 2 f t i
Perhatikan bahwa untuk ODE (Operaional Diferential Parsial) yang merupakan fungsi t saja, metode klasik RK orde keempat ini mirip dengan aturan 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. Pernyataan soal. Gunakan metode RK urutan keempat klasik untuk diintegrasikan. Untuk kasus ini, kemiringan pada awal interval dihitung sebagai y
'
4e
0.8t
0.5 y
dari t = 0 sampai t = 1 menggunakan step ukuran 1 dengan
y(0)=2.
24
k 2
f (0.5 3.5) 4e 0.8(0.5)
0.5(3.5) 4.217299
Kemiringan ini pada gilirannya digunakan untuk menghitung nilai lain, dan kemiringan lain pada titik tengah: y (0.5) 2 3(0.5) 3.5 k 3
f 0.5 4.108649 4e 0.8( 0.5)
0.5 (4.108649) 3.912974
Selanjutnya : y 10 2 3.912974 (1.0) 5.912974 k 4
f (1.0 5.912974) 4e 0.8(1.0)
0.5(5.912974) 5.945677
Akhirnya, Akhirnya, orde keempat dari setiap kemiringan digabungkan untuk menghasilkan kemiringan rata-rata. Derajat kemiringan rata-rata ini kemudian digunakan untuk membuat prediksi pada akhir interval.
1
3 2(4.217299) 2(3.912974) 5.945677 4.201037 6 y 1.0 2 4.201037 (1.0) 6.201037
Yang lebih baik dibandingkan dengan solusi yang sebenarnya yaitu 6.194631(ε1=0.103%) Tentunya dapat untuk mengembangkan metode RK orde kelima dan lebih tinggi. Sebagai contoh, Butler (1964) metode RK urutan kelima ditulis sebagai :
yi
1
y1
1
90
7k
1
32k 3
12
k 4
32k 5
7k 6
Dimana :
25
h
k 1 f t i , y i 1 h, y i k 1 h 4 1 1 1 f t i h, y i k 1 h k 2 h 4 8 8 1 1 f t i h, y i k 2 h k 3 h 2 2 3 3 9 f t 1 h, y i k 1 h k 4 h 4 16 16 3 2 12 12 8 f t i h, y i k 1h k 2 h k 3 h k 4 h k 5 h 7 7 7 7 7
k 2 f t i k 3 k 4 k 5 k 6
Dengan Aplikasi Matlab clc; clear all; disp ( ' PERSAMAAN DIFFERENSIAL ORDE 2 ' ); 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 (' '); if nargin<4,error ('at least 4 input arguments required'),end if any (diff(tspan)<=0), error('tspan not ascending order'), end n = length(tspan); ti=tspan(1);tf=tspan(n); if n==2 t=(ti:h:tf)';n=length(t); if t(n)h,hh=h;end while(1) if tt+hh>tend,hh=tend-tt;end k1=dydt(tt,y(i,:),varargin(:))'; ymid=y(i,:)+k1.*hh./2; k2=dydt(tt+hh/2,ymid,varargin(:))'; ymid=y(i,:)+k2.*hh./2; k3=dydt(tt+hh/2,ymid,varargin(:))'; yend=y(i,:)+k3.*hh; k4=dydt(tt+hh,yend,varargin{:})'; phi=(k1+2*(k2+k3)+k4)/6; y(i+1,:)=y(i,:)+phi*hh; tt=tt+hh; i=i+1; if tt>=tend,break,end
26
); ); );
end np=np+1;tp(np)=tt;yp(np,:)=y(i,:); if tt>=tf,break,end end
Kode pada halaman selanjutnya function [tp,Yp]=rk4sys(dydt,tspan,y0,h,vavargin) %rk4sys:fourth-order Runge-Kutta for a system of ODEs %[t,y]= rk4sys(dydt,tspan,y0,h,p1,p2,....): integrates %a system of ODEs with fourth-order RK method %input : dydt=name of the M-file that evaluates the ODEs %tspan = [ti,tf];initial and final times with output %generated at interval of h, or %={t0,t1.....tf]; spesific times where solution output %y0=initial values of dependent variables %h=step size p1,p2,....=additional parameters used by dydt %output %tp=vector of independent variable %yp=vector of solution for dependent variables
Dengan memasukkan persamaan fungsi pada function:
Maka:
2.2.1 Metode Euler
Semua metode yang dibahas dalam bab ini untuk persamaan tunggal dapat diperluas ke sistem ODEs. Aplikasi teknik bisa melibatkan ribuan persamaan simultan. Dalam setiap kasus, prosedur untuk memecahkan sistem persamaan 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
y(xr+1) = y(xr ) +
x r 1
xr
1!
y’(xr ) +
x
xr
r 1
2!
2
y”(t),
xr
berdasarkan persamanan bentuk baku PDB orde orde satu maka y’(xr ) = f(xr , yr ) dan xr+1 – xr = h maka persamaan 2 dapat ditulis menjadi y(xr+1) ≈y(xr )+hf(xr ,yr )+ suku pertama persamaan di atas yaitu : y(xr+1) = y(xr ) + hf(xr , yr ) ; dapat ditulis
h
2
2
y”(t) dua
r = 0, 1, 2,…,n atau
yr+1 = yr + hf r yang merupakan metode Euler.
Metode Euler mempunyai ketelitian yang rendah karena galatnya besar (sebanding dengan h). buruknya galat ini dapat dikurangi dengan menggunakan metode Heun, yang merupakan perbaikan metode Euler (modifified Euler’s method ). Pada metode Heun , solusi dari metode Euler dijadikan sebagai solusi perkiraan awal (prediktor), selanjutnya solusi perkiraan awal diperbaiki dengan metode Heun (Corrector). Metode Heun diturunkan sebagai berikut: Pandang PDB orde Satu y ' ( x)
f ( x, y ( x))
Integrasikan kedua ruas persamaan dari x r sampai xr+1 :
xr 1
xr
f ( x, y ( x))dx
xr 1
xr
y ' ( x) dx
= y(xr+1)-y(xr ) = yr+1-yr Nyatakan yr+1 di ruas kiri dan suku-suku lainnya di ruas kanan: xr 1
yr 1 yr
f ( x, y ( x ))dx
x r
Suku yang mengandung integral di ruas kanan ,
28
xr 1
f (x, y(x))dx ,
x r
dapat diselesaikan dengan kaidah trapezium menjadi xr 1
x r
h f ( x, y ( x))dx [ f ( xr , y r ) f ( xr 1, y r 1)] 2
Sulihkan persamaan (p.7) ke dalam persamaan (p.8) , menghasilkan persamaan
yr
1
h y r [ f ( xr , yr ) f ( xr 1, yr 1 )] 2
Yang nerupakan metode Heun , atau metode Euler-Cauchy yang diperbaiki.
2.3 Perbandingan Buku Chapra Dengan Buku Prof. Sahyar
Buku Chapra dan buku Prof. Sahyar masing-masing memiliki kelebihan dan kekurangannya masing-masing. Pada buku Chapra sangat spesifik menjelaskan konsep dasar dari metode Euler. Buku Chapra menjelaskan dari teori terlebih dahulu kemudian diikuti dengan persamaan-persamaan dan terakhir disertai dengan contoh secara analitik. Perbandingan antara hitungan analitik dan secara Matlab juga disajikan dalam buku. Sementara kelemahannya adalah pada buku Chapra satu contoh digunakan untuk semua materi pada metode Euler, sehingga hanya terdapat satu contoh saja dalam buku Chapra. Sementara itu pada buku Prof. Sahyar konsep dasar dari metode Euler tidak begitu dijelasakan. Sementara itu contoh yang diberikan lebih banyak dibandingkan dengan buku Chapra. Antara buku Chapra dan buku Prof. Sahyar kedua-duanya menyajikan contoh langsung ke materi fi sikanya, pada buku Chapra contoh yang disajikan adalah mencari kecepatan benda yang jatuh bebas. Sementara pada buku Prof. Sahyar contoh yang disajikan adalah materi gerak jatuh benda pada fluida. Pada buku Chapra secara eksplisit disebutkan bahwa metode Euler merupakan metode orde satu. Metode Euler juga disebutkan sebagai metode yang memiliki kekurangan yaitu kurang dapat menentukan solusi sebenarnya jika diujikan untuk angka yang semakin besar sehingga dapat dibantu dengan metode Hunt atau Rungge-Kutta. Sedangkan pada buku Sahyar tidak disebutkan secara
29
eksplisit maupun implisit bahwa metode Euler merupakan metode orde dua sehingga memberikan kesulitan kepada pembaca untuk memahami kedua hal tersebut. Kelebihan Dan Kekurangan Dari Ke-2 Buku Yang Digunakan 1. Buku Steven Chapra 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.
2. Buku Prof. Sahyar Kelebihan Pada buku Sahyar sangat spesifik menjelaskan konsep dasar dari metode Runge Kutta dan metode Euler untuk diferensial orde 2. Buku Sahyar menjelaskan dari teori terlebih dahulu secara singkat kemudian diikuti dengan persamaan persamaan dan terakhir disertai dengan contoh secara numerik menggunakan
Kekurangan Secara jelas dikatakan bahwa masalah diferensial orde dua dapat diselesaikan dengan metode euler dan metode Runge-Kutta. Untuk contoh-contoh soal kurang lengkap secara analitis matematisnya karena langsung dengan penyelesaian metode numerik menggunakan MATLAB namun semua Koding dapat
30
MATLAB.
diuji cobakan
Koding yang di sajikan cukup Koding yang di muat dalam buku 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 MATLAB, hanya terdapat pada Runge-Kutta kurang jelas di jabarkan perbedaan angka dibelakang koma. misalnya perolehan persamaan metode Runge-Kutta orde empat Contoh langsung kepada contoh-contoh masalah fisika seperti gerak jatuh bebas dan fluida. Kemudian dilengkapi juga untuk tampilan bagaimana getran teredam dan getaran terpaksa
Tidak ada dijelaskan persamaan untuk metode metode Runge-Kutta yang untuk difrensial orde satu untuk orde dua.
31
perbedaan Euler dan digunakan dan yang
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