Computation Process using Scilab
Computation Process using Scilab
Computation Process using Scilab
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Computation</strong> <strong>Process</strong><br />
<strong>using</strong><br />
<strong>Scilab</strong>
Komputasi Proses<br />
1. Pengenalan <strong>Scilab</strong><br />
2. Bahasa pemrograman dengan <strong>Scilab</strong><br />
3. Metoda Numerik<br />
4. Aplikasi Komputasi Proses dengan<br />
<strong>Scilab</strong>
Introduction<br />
Physical &<br />
Mathematical<br />
MODELS<br />
TOOL to solve<br />
PROBLEMS<br />
Simplified<br />
picture of<br />
REALITY<br />
•Forecasting<br />
•Controlling<br />
Software<br />
Engineers are<br />
symbolic analysts
Interactive<br />
program<br />
Numerical computation &<br />
data visualization<br />
Language Programme
<strong>Scilab</strong><br />
Software gratis:<br />
http://www.scilab.org<br />
http:// www.scilab.org<br />
OS: Windows dan Linux<br />
Mirip dengan program Matlab<br />
Tool Bar<br />
Menu Bar
-->r=6<br />
r =<br />
6.<br />
-->luas=0.25*%pi*r^2<br />
luas =<br />
28.274334<br />
deff(‘(out1,out2,…)=modul(in1,in2,…)’,’persamaan’<br />
Fungsi: mendefinisikan persamaan (rumus) pada jendela kerja<br />
-->deff('A=luas(r)','A=0.25*%pi*r^2')<br />
-->ls=luas(3)<br />
ls =<br />
7.0685835<br />
-->
Perintah membuka<br />
Jendela Editor<br />
Dari menu bar: (klik)<br />
Editor<br />
Atau tekan [alt – d]<br />
Dari Tool bar: (klik)<br />
Dari Jendela kerja:<br />
(ketik) scipad()<br />
Hasil
Perlu di eksekusi: -->exec('c:\scinum\luasbs.sci');
Tips:<br />
Cara lebih mudah, dapat dilakukan (pilih salah satu):<br />
Pada menu bar “jendela editor”, pilih Execute (Alt+x) Load into<br />
<strong>Scilab</strong><br />
Pada menu bar “jendela editor”, Ctrl + l<br />
Pada menu bar “jendela kerja”, pilih File Exec… pilih file yang<br />
akan dieksekusi<br />
-->exec('c:\scilabc\luasbs.sci')<br />
-->function hsl=luasbs(r);<br />
--> hsl = 0.25*%pi*r^2;<br />
-->endfunction;<br />
-->
getf()<br />
1 function V=volbs(h,r)<br />
2 getf('c:/scilabc/luasbs.sci')<br />
3 V=h*luasbs(r)<br />
4 endfunction<br />
Fungsi: mengambil / mengaktifkan file *.sci<br />
pada suatu fungsi yang lain
ls file_dir<br />
-->ls c:/scinum<br />
ans =<br />
!volbs.sci !<br />
! !<br />
!luasbs.sci !<br />
--><br />
Fungsi: menampilkan file pada<br />
‘direktori file’<br />
Apabila fungsi atau modul yang akan digunakan cukup<br />
banyak,maka penggunaan getf() tidak efektif<br />
genlib(‘nama’,’file_dir’)<br />
-->genlib('libsbs','c:/scinum')<br />
Fungsi: membangun library dari fungsi (*.sci) pada<br />
‘direktori file’
load(’file_dir/lib’)<br />
-->load('c:/scinum/lib')<br />
Fungsi: memanggil library dari fungsi<br />
pada ‘direktori file’
DIFFERENSIASI NUMERIK<br />
Persamaan differensial merupakan<br />
model matematis yang paling sering<br />
muncul dalam bidang keteknikan<br />
maupun saintifik<br />
Salah satu penyelesaiannya dengan<br />
metode beda hingga (finite<br />
difference)
Definisi turunan (derivatif)<br />
( x)<br />
df<br />
dx<br />
x<br />
0<br />
= f '<br />
( x )<br />
0<br />
=<br />
lim<br />
x→x<br />
0<br />
f<br />
( x)<br />
− f ( x )<br />
x − x<br />
0<br />
0<br />
Jika h = x – x 0 = ∆x maka pendekatan turunan di atas adalah<br />
f '<br />
( x )<br />
0<br />
≈<br />
f<br />
( x)<br />
− f ( x ) f ( x)<br />
− f ( x )<br />
h<br />
0<br />
dy<br />
Diketahui suatu fungsi y = f (x), ingin dicari pada x = x0 .<br />
dx<br />
=<br />
∆x<br />
Penyelesaiannya dapat menggunakan 3 cara yaitu :<br />
1. Forward Difference (Beda Maju)<br />
2. Backward Difference (Beda Mundur)<br />
3. Central Difference (Beda Pusat)<br />
0
1. Metode Beda Maju<br />
(Forward Difference)<br />
Beda hingga maju pertama dari y pada i atau x<br />
didefinisikan :<br />
∆yi = yi+1 –yi atau ∆y(x) = y(x+h) – y(x)<br />
Beda maju kedua pada i atau x didefinisikan :<br />
∆ 2 y i = y i+2 –2y i+1 + y i<br />
atau ∆ 2 y(x) = y(x+2h) – 2y(x+h) + y(x)<br />
Sehingga penyelesaiannya bisa dituliskan :<br />
dy<br />
i<br />
dx<br />
1<br />
= ( yi+<br />
1 − yi<br />
) atau<br />
h<br />
dx<br />
+ ∆x)<br />
−f<br />
( x<br />
∆x<br />
dy 0<br />
0<br />
x =<br />
x<br />
0<br />
f ( x<br />
≅<br />
)
2. Metode Beda Mundur<br />
(Backward Difference)<br />
Beda hingga mundur pertama dari y pada i atau x<br />
didefinisikan :<br />
∇yi = yi –yi-1 atau ∇y(x) = y(x) – y(x-h)<br />
Beda mundur kedua pada i atau x didefinisikan :<br />
∇ 2 y i = y i –2y i-1 + y i-2<br />
atau ∇ 2 y(x) = y(x) – 2y(x-h) + y(x-2h)<br />
Sehingga penyelesaiannya bisa dituliskan :<br />
dy<br />
dx<br />
1<br />
= ( y − ) atau<br />
h<br />
i<br />
i yi−1<br />
dx<br />
) −f<br />
( x<br />
∆x<br />
dy 0 0<br />
x =<br />
x<br />
0<br />
f ( x<br />
≅<br />
− ∆x)
3. Metode Beda Pusat<br />
(Central Difference)<br />
Beda hingga terpusat pertama dari y pada i atau x didefinisikan :<br />
∂<br />
yi yi+<br />
y − − =<br />
1<br />
2 i<br />
atau δy(x) = y(x+1/2 h) – y(x-1/2 h)<br />
Turunan beda terpusat selanjutnya adalah :<br />
dy<br />
i<br />
dx<br />
1<br />
2h<br />
1<br />
2<br />
( y y )<br />
= i<br />
; = ( yi<br />
1 2y<br />
i yi<br />
1 )<br />
2 2 + − + −<br />
i+<br />
1 −<br />
d<br />
3<br />
dx<br />
y<br />
i<br />
3<br />
i−1<br />
=<br />
1<br />
2h<br />
3<br />
d<br />
2<br />
dx<br />
y<br />
( y − 2y<br />
+ 2y<br />
− y )<br />
i+<br />
2<br />
Penyelesaiannya dapat dituliskan<br />
dy<br />
i<br />
dx<br />
=<br />
1<br />
2h<br />
( y y )<br />
i+<br />
1 −<br />
i−1<br />
atau<br />
i+<br />
1<br />
dx<br />
h<br />
1<br />
i−1<br />
i−2<br />
f ( x<br />
≅<br />
+ ∆x)<br />
−f<br />
( x<br />
2∆x<br />
dy 0<br />
0<br />
x =<br />
x<br />
0<br />
− ∆x)
Derivatif Orde Dua<br />
Untuk penurunan (derivatif) pangkat dua dengan<br />
metode beda hingga terpusat digunakan rumus<br />
dengan bentuk :<br />
d<br />
2<br />
dx<br />
y<br />
i<br />
2<br />
Atau dapat juga dituliskan :<br />
d<br />
2<br />
dx<br />
y<br />
2<br />
x =<br />
x<br />
0<br />
≅<br />
=<br />
h<br />
f ( x<br />
1<br />
0<br />
2<br />
( y − 2y<br />
+ y )<br />
i+<br />
2<br />
+ ∆x)<br />
−<br />
i<br />
2f<br />
( x<br />
∆x<br />
0<br />
2<br />
) +<br />
i−1<br />
f ( x<br />
0<br />
− ∆x)
INTEGRASI NUMERIS<br />
= n x<br />
Jika ada fungsi Y ∫f<br />
( x)<br />
dx sedangkan f(x) sulit sekali<br />
x<br />
0<br />
untuk diintegrasikan secara analitik, maka cara yang<br />
paling mudah adalah dengan mengintegrasikannya<br />
secara numerik<br />
f(x)<br />
x 0 x 1 x 2 x n-1 x n<br />
x
Dalam perhitungan integrasi numerik, luasan di bawah<br />
kurva akan diubah dalam bentuk trapesium, dimana<br />
ruang kosong merupakan bagian dari kesalahan numerik<br />
Untuk mengatasi kesalahan dilakukan dengan cara<br />
membagi menjadi trapesium dengan segmen yang lebih<br />
kecil<br />
Integrasi dilakukan dengan menggunakan interval ∆x<br />
yang sama (homogen) sepanjang batas integrasi dari x0 sampai xn Batas/interval integrasi dibagi menjadi n interval<br />
( )<br />
n x x n 0 ∆x<br />
=<br />
−<br />
Batas interval diberi indeks 0, 1, 2, ….. , n sehingga<br />
x i =<br />
x 0<br />
+<br />
i.<br />
∆x
Penyelesaian numerik dapat dilakukan<br />
dengan dua cara, yaitu<br />
Trapezoidal Rule<br />
xn<br />
∆x<br />
⎡ n−1<br />
f ( x)<br />
dx ⎢f<br />
( x ) + 2 ∑f<br />
( x ) + f ( xn<br />
2 0<br />
⎢<br />
i<br />
x0<br />
⎣ i=<br />
1<br />
Simpson Rule<br />
∫ ≅ )<br />
xn<br />
∆x<br />
⎡ n−1<br />
n−2<br />
f( x)<br />
dx ⎢f(<br />
x ) + 4 ∑ f(<br />
x ) + 2 ∑ f(<br />
x ) + f(<br />
xn<br />
3 ⎢<br />
0<br />
x<br />
i<br />
i<br />
0<br />
⎣ i=<br />
1,<br />
3,<br />
5 i=<br />
2,<br />
4,<br />
6<br />
∫ ≅ )<br />
⎤<br />
⎥<br />
⎥⎦<br />
⎤<br />
⎥<br />
⎥⎦
AKAR PERSAMAAN<br />
(PERSAMAAN NON LINIER)<br />
Merupakan bentuk persamaan<br />
aljabar yang nilainya sama dengan nol<br />
Untuk satu variabel bebas x, maka<br />
f(x) ≅ 0<br />
Banyak digunakan dalam model<br />
keteknikan maupun saintis
Metode Penyelesaian Akar<br />
Persamaan<br />
1. Metode Pengurungan (bracketing<br />
method)<br />
Memerlukan dua titik sebagai tebakan awal<br />
2. Metode Terbuka (open method)<br />
Hanya memerlukan satu titik sebagai<br />
tebakan awal
1. METODE PENGURUNGAN<br />
Dilakukan dengan menebak 2 angka<br />
a. Metode Bisection (bagi dua)<br />
b. Metode Regula Falsi (posisi palsu)<br />
atau Metode Interpolasi Linier
a. Metode Bisection (Bagi Dua)<br />
Merupakan metode yang paling sederhana<br />
Diawali dengan menebak dua nilai yaitu nilai bawah<br />
(sblm akar) x a dan nilai atas (stlh akar) x b<br />
Tebakan benar jika f(x b ) dan f(x a ) mempunyai<br />
tanda yang berlawanan : f(x b ) . f(x a ) < 0<br />
Jika f(x b ) . f(x a ) > 0 maka tebakan awal diulangi<br />
Nilai kedua tebakan dibagi dua, disebut x c<br />
Nilai x c akan menggantikan posisi nilai lama.<br />
Jika x c berada pada posisi x b disebut dengan x ’ b<br />
dan jika berada pada posisi x a akan diubah menjadi<br />
x ’ a
Algoritma Bisection (Bagi Dua)<br />
1. Tebak akar atas, x a dan akar bawah, x b<br />
2. Periksa f(x a ).f(x b )=0 stop didapat harga akar<br />
3. Periksa f(x a ).f(x b )0, maka xc berada di subinterval<br />
bawah Atur xa = xc kembali ke-4<br />
b. Jika f(xc).f(xa)
. Metode Regula Falsi (Posisi Palsu)<br />
Merupakan perbaikan dari metode<br />
bisection<br />
Dilakukan dengan menarik garis lurus pada<br />
kedua interval x b dan x a<br />
Harga<br />
x<br />
c<br />
=<br />
x<br />
a<br />
−<br />
f<br />
f<br />
( x )( a x b − x ) a<br />
( x ) − f ( x )<br />
Algoritma sama dengan metode bisection,<br />
hanya tahapan 5 diganti nilai x c nya<br />
b<br />
a
2. METODE TERBUKA<br />
Dilakukan dengan menebak 1 angka<br />
a. Metode Pertemuan Dua Grafik<br />
b. Metode Newton Raphson<br />
c. Metode Secant
. Metode Newton Raphson<br />
Mula-mula diperkirakan harga xi awal<br />
kemudian dipotongkan thd kurva dan<br />
ditarik garis singgung<br />
Garissinggungmerupakantangenatau<br />
slope.<br />
Slope merupakan turunan pertama dari<br />
f(xi ) sehingga didapat hubungan :<br />
f<br />
( )<br />
( xi<br />
)<br />
f ' xi<br />
=<br />
( x − x )<br />
i+<br />
1<br />
Persamaan Newton Raphson :<br />
f ( xi<br />
)<br />
xi +<br />
1 = xi<br />
−<br />
f '(<br />
x )<br />
i<br />
i
Algoritma Newton Raphson<br />
1. Tuliskan fungsi f(x)<br />
2. Cari harga f’(x)<br />
3.<br />
4.<br />
Masukkan tebakan awal x0 Masukkan parameter penghentian program :<br />
<br />
<br />
Kesalahan relatif perkiraan Ebs Jumlah iterasi maksimum<br />
5.<br />
6.<br />
Inisialisasi harga : iterasi = 0 dan Eas = 1.1 Ebs Jika kesalahan relatif (Eas > Ebs ) dan (iterasi <<br />
iterasi makasimum) maka :<br />
a. Harga<br />
b. Cek harga E as<br />
f<br />
xiter = xi<br />
+ 1 = xi<br />
−<br />
f<br />
( xi<br />
)<br />
'(<br />
x )<br />
c. Iterasi = iterasi + 1<br />
7. Ulangi 6 sampai kondisi tercapai<br />
8. Tulis x iter = akar<br />
E<br />
as<br />
=<br />
x<br />
iter<br />
− x<br />
x<br />
iter<br />
i<br />
iter−1
c. Metode Secant<br />
Kelemahan metode Newton Raphson,<br />
harus mencari turunan pertama dari<br />
fungsi f(x i )<br />
Metode secant untuk menghindari<br />
turunan pertama dengan turunan<br />
numerik mundur<br />
f '<br />
( x )<br />
i<br />
=<br />
f<br />
( x ) − f ( x )<br />
i−1<br />
x<br />
i−1<br />
−<br />
x<br />
i<br />
i
Sub Program PERSAMAAN NON LINEAR<br />
<strong>Scilab</strong> menyediakan sub program untuk menyelesaikan satu atau<br />
beberapa sistem persamaan non linear secara simultan dengan<br />
menggunakan perintah fsolve<br />
x = fsolve(x0, persamaan)<br />
Contoh :<br />
Akan dicari akar persamaan simultan non linear dari :<br />
Kedua persamaan diubah menjadi :<br />
f<br />
f<br />
1<br />
2<br />
x<br />
2<br />
y +<br />
+ xy = 10<br />
3xy<br />
2 ( x,<br />
y)<br />
= x + xy −10<br />
= 0<br />
2<br />
( x,<br />
y)<br />
= y + 3xy<br />
− 57 = 0<br />
2<br />
= 57<br />
Persamaan ditulis dalam bentuk matrik dengan x sebagai<br />
x(1) dan y sebagai x(2)
Contoh :<br />
Diketahui persamaan Van der Waals untuk<br />
menggambarkan kondisi gas non-ideal :<br />
⎛<br />
⎜<br />
⎝<br />
P +<br />
a<br />
=<br />
V2<br />
⎟ ⎞<br />
⎠<br />
( V − b)<br />
RT<br />
Hitunglah volume molar udara (V) pada 50<br />
atm dan suhu -100 o C jika diketahui nilai<br />
konstanta a = 1.33 atm.liter 2 /gmol, b =<br />
0.0366 liter/gmol dan R = 0.08205<br />
liter.atm/K.gmol
PERSAMAAN DIFERENSIAL<br />
1. Persamaan Diferensial Biasa (ODE), hanya<br />
terdapat 1 variabel bebas<br />
d2y +<br />
dx2<br />
y<br />
dy<br />
dx<br />
kx<br />
2. Persamaan Diferensial Parsial (PDE),<br />
terdapat lebih dari 1 variabel bebas<br />
α<br />
2<br />
∂ T<br />
2<br />
∂x<br />
=<br />
=<br />
∂T<br />
∂t
Persamaan Diferensial Biasa (ODE)<br />
Berdasarkan pangkat (Orde) :<br />
• PDB Orde satu :<br />
• PDB Orde dua :<br />
• PDB Orde tiga :<br />
dy<br />
dx<br />
+<br />
2<br />
d y<br />
+ 2<br />
dx<br />
Berdasarkan kondisi batas :<br />
• IVP (Initial Value Problems), bila nilai variabel tak<br />
bebas atau turunannya diketahui pada kondisi nilai<br />
mula-mula<br />
• BVP (Boundary Value Problems), bila nilai variabel<br />
tak bebas atau turunannya diketahui lebih dari<br />
satu nilai variabel bebasnya<br />
y<br />
y<br />
=<br />
dy<br />
dx<br />
kx<br />
=<br />
3<br />
2<br />
d y d y ⎛<br />
+<br />
a + b<br />
3<br />
2 ⎜<br />
dx dx ⎝<br />
kx<br />
dy<br />
dx<br />
⎞<br />
⎟<br />
⎠<br />
2<br />
= kx
Persamaan Diferensial Parsial (PDE)<br />
• PDE Order satu :<br />
• PDE Order dua :<br />
• PDE Order tiga :<br />
∂C<br />
∂x<br />
∂<br />
2<br />
∂x<br />
C<br />
2<br />
3 ⎛ ∂<br />
u ⎞<br />
⎜ 3<br />
x<br />
⎟<br />
⎝ ∂ ⎠<br />
∂C<br />
− α =<br />
∂y<br />
+<br />
2<br />
D<br />
+<br />
e<br />
∂C<br />
∂y<br />
2<br />
∂ u<br />
∂x∂y<br />
0<br />
=<br />
+<br />
0<br />
∂u<br />
∂y<br />
=<br />
0
Penyelesaian Persamaan<br />
Diferensial Biasa (ODE)<br />
1. Metode Euler (Eksplisit)<br />
2. Metode Euler Modifikasi (Implisit)<br />
3. Metode Runge-Kutta
1. Metode Euler (Eksplisit)<br />
Disebut juga metoda integrasi nilai awal<br />
dy<br />
=<br />
dx<br />
( x , y )<br />
Kondisi awal : y(x 0) = y 0<br />
y<br />
i+<br />
1<br />
∫<br />
y<br />
i<br />
dy<br />
x<br />
f<br />
i+<br />
1<br />
= f ( x,<br />
y)dx<br />
∫ ( )<br />
+ i 1<br />
yi+<br />
1 − yi<br />
= f x,<br />
y<br />
∫<br />
x<br />
i<br />
y = y + h f<br />
i+<br />
1<br />
i<br />
( x , y )<br />
i<br />
i<br />
x<br />
x<br />
i<br />
dx
Perbandingan Analitis dengan<br />
Metode Euler (Eksplisit)<br />
Persamaan diferensial yang diselesaikan:<br />
dy 2<br />
dx<br />
3<br />
= 4x<br />
− 6x<br />
+ 8 Dimana x = 0, y = 2 (kondisi awal); xa =3, h=0.5<br />
x i y analtk y euler % kslhan<br />
0 2 2 -<br />
0.5 5.81 6 3.27<br />
1 9 9.5 5.56<br />
1.5 12.31 12.5 1.54<br />
2 18 16.5 8.33<br />
2.5 29.81 24.5 17.81<br />
3 53 41 22.64
Algoritma Metode Euler (Eksplisit)<br />
1. Tentukan x = x 0 dan y = y 0<br />
2. Tentukan nilai awal x 0 dan nilai akhir x a<br />
dari variabel bebas<br />
3. Tentukan nilai h<br />
4. Inisialisasi i = 0<br />
5. Buat persamaan f(x,y), modul terpisah<br />
6. Vektor x(i)=[x 0 , x 0 +h, x 0 +2h,…,x a ]<br />
7. Jumlah loop, n=(x a -x 0 )/h<br />
8. Untuk i=0 sampai n-1 maka :<br />
9. y i+1 =y i + hf(x i ,y i )<br />
10. x = x + h<br />
11. Simpan nilai x i , y i<br />
12. Lanjutkan i
2. Metode Euler Modifikasi (Implisit)<br />
Untuk memperkecil kesalahan<br />
Merupakan gabungan antara beda maju<br />
dan beda mundur<br />
Beda maju pertama dari y pada i sama<br />
dengan beda mundur pertama dari y pada<br />
i+1<br />
∆y i = yi+<br />
1 − yi<br />
= ∇yi+<br />
1<br />
i+<br />
1 i i 1<br />
sehingga<br />
y = y + ∇y<br />
+<br />
( x , y )<br />
y i+<br />
1 =<br />
yi<br />
+ h f i+<br />
1 i+<br />
1
Untuk memperbaiki metode Euler, maka metode Euler<br />
eksplisit digunakan untuk memprediksi nilai y i+1<br />
( y ) = y + h f ( x , y )<br />
i+<br />
1<br />
pred<br />
Nilai prediksi pada persamaan di atas digunakan untuk<br />
mengkoreksi metoda implisit<br />
( ) = y + h f x , ( y )<br />
i+<br />
1<br />
kork<br />
Persamaan di atas disebut dengan Metode Prediktor<br />
Korektor atau Metode Heun<br />
i<br />
Kombinasi metoda beda maju dan beda mundur dituliskan<br />
dalam bentuk<br />
i<br />
i<br />
( )<br />
y +<br />
i+<br />
1<br />
i<br />
1<br />
i<br />
pred<br />
( ∇y<br />
+ ∇y<br />
)<br />
1 y i+<br />
1 = yi<br />
+ 2 i i+<br />
1<br />
1<br />
1<br />
( ) = y + h f ( x , y ) + h f ( x , y )<br />
y +<br />
i+<br />
1<br />
i<br />
2<br />
i<br />
f pred<br />
i<br />
2<br />
i+<br />
1<br />
f corr<br />
i<br />
f pred<br />
1<br />
f corr
Perbandingan dengan Analitis<br />
x i y analtk y euler % kslhan<br />
Euler<br />
y euler-mod<br />
% kslhan<br />
Euler-mod<br />
0 2 2 - 2 -<br />
0.5 5.81 6 3.27 5.75 1.03<br />
1 9 9.5 5.56 9 0.0<br />
1.5 12.31 12.5 1.54 12.5 1.54<br />
2 18 16.5 8.33 18.5 2.78<br />
2.5 29.81 24.5 17.81 30.75 3.15<br />
3 53 41 22.64 54.5 2.83
3. Metode Runge-Kutta<br />
Merupakan metode untuk<br />
menyelesaikan persamaan<br />
diferensial dengan ketelitian dan<br />
kestabilan yang cukup tinggi.<br />
Sangat umum digunakan untuk<br />
menyelesaikan bentuk PDB baik<br />
linear maupun non linear dengan<br />
problema kondisi awal
Bentuk penyelesaian berdasarkan orde (pangkat):<br />
Orde (pangkat) dua:<br />
1 y i+<br />
1 = yi<br />
+ ( )<br />
2 k1<br />
+ k 2<br />
Dimana nilai dari ki adalah : k 1 = h f ( x i , yi<br />
)<br />
Orde (pangkat) tiga :<br />
k 2 = h f ( x i + h,<br />
yi<br />
+ k1<br />
)<br />
1 y i+<br />
1 = yi<br />
+ ( 1 2 3 )<br />
6 k + 4k<br />
+ k<br />
Dimananilaidariki adalah : k = h f ( x , y )<br />
⎛ h k1<br />
⎞<br />
k 2 = h f ⎜ x i + , yi<br />
+ ⎟ ; k 3 = h f ( x i + h,<br />
yi<br />
+ 2k<br />
2 − k1<br />
)<br />
⎝ 2 2 ⎠<br />
Orde (pangkat) empat :<br />
Dimananilaidarik i adalah :<br />
k = h f<br />
k<br />
1<br />
2<br />
( x , y )<br />
i<br />
⎛<br />
= h f ⎜ x<br />
⎝<br />
i<br />
+<br />
i<br />
h<br />
2<br />
, y<br />
i<br />
+<br />
k<br />
1<br />
2<br />
⎞<br />
⎟<br />
⎠<br />
1<br />
i+<br />
1<br />
i<br />
i<br />
1<br />
6<br />
i<br />
( k + 2k<br />
+ 2k<br />
k )<br />
y = y +<br />
+<br />
k<br />
3<br />
4<br />
1<br />
⎛<br />
= h f ⎜ x<br />
⎝<br />
i<br />
+<br />
2<br />
h<br />
2<br />
, y<br />
i<br />
3<br />
+<br />
( x + h,<br />
y k )<br />
k =<br />
h f +<br />
i<br />
i<br />
3<br />
k<br />
2<br />
2<br />
4<br />
⎞<br />
⎟<br />
⎠
Perbandingan dengan Analitis<br />
x i y analtk y euler<br />
%<br />
kslhan<br />
Euler<br />
y euler-mod<br />
%<br />
kslhan<br />
Eulermod<br />
y rk4<br />
%<br />
kslhan<br />
rk4<br />
0 2 2 - 2 - 2 -<br />
0.5 5.8125 6 3.27 5.75 1.03 5.8125 0<br />
1 9 9.5 5.56 9 0.0 9 0<br />
1.5 12.3125 12.5 1.54 12.5 1.54 12.3125 0<br />
2 18 16.5 8.33 18.5 2.78 18 0<br />
2.5 29.8125 24.5 17.81 30.75 3.15 29.8125 0<br />
3 53 41 22.64 54.5 2.83 53 0
Sub Program PDB<br />
<strong>Scilab</strong> menyediakan sub program siap pakai untuk<br />
menyelesaikan persoalan PDB<br />
Bentuk persamaan :<br />
Dimana :<br />
dy<br />
=<br />
dt<br />
y=ode (y0,t0,t,fungsi)<br />
fungsi<br />
y0 = kondisi awal dari variabel tak bebas (y)<br />
t0 = kondisi awal dari variabel bebas (t)<br />
t = batasan simulasi dari variabel bebas
Persamaan Diferensial Biasa<br />
Simultan<br />
Merupakan sekumpulan persamaan diferensial biasa<br />
yang harus diselesaikan secara simultan<br />
.<br />
dy<br />
dy<br />
1<br />
dx<br />
dy<br />
2<br />
dx<br />
.<br />
n<br />
dx<br />
=<br />
f<br />
=<br />
=<br />
f<br />
f<br />
1<br />
( x,<br />
y , y , ... , y )<br />
2<br />
n<br />
1<br />
( x,<br />
y , y , ... , y )<br />
1<br />
( x,<br />
y , y , ... , y )<br />
1<br />
2<br />
2<br />
2<br />
n<br />
n<br />
n
Penyelesaian dengan menggunakan<br />
metode Runge Kutta orde empat<br />
i+<br />
1,<br />
j<br />
Dengan nilai k adalah :<br />
k<br />
k<br />
k<br />
k<br />
1,<br />
j<br />
2,<br />
j<br />
3,<br />
j<br />
4,<br />
j<br />
=<br />
=<br />
=<br />
=<br />
hf<br />
hf<br />
hf<br />
hf<br />
j<br />
j<br />
i,<br />
j<br />
1<br />
6<br />
( k + 2k<br />
+ 2k<br />
k )<br />
y = y +<br />
+<br />
1j<br />
( x , y , y , ... , y )<br />
j<br />
j<br />
i<br />
⎛<br />
⎜ x<br />
⎝<br />
⎛<br />
⎜ x<br />
⎝<br />
( x + h,<br />
y + k , y + k , ... , y + k )<br />
i<br />
i<br />
i<br />
+<br />
+<br />
i,<br />
1<br />
i,<br />
2<br />
h<br />
, y<br />
2<br />
h<br />
, y<br />
2<br />
i,<br />
1<br />
i,<br />
1<br />
i,<br />
1<br />
+<br />
+<br />
k<br />
k<br />
3,<br />
1<br />
i,<br />
n<br />
1,<br />
1<br />
2<br />
2,<br />
1<br />
2<br />
, y<br />
, y<br />
i,<br />
2<br />
i,<br />
2<br />
i,<br />
2<br />
2 j<br />
k<br />
k<br />
3,<br />
2<br />
1,<br />
2<br />
2<br />
2,<br />
2<br />
2<br />
3 j<br />
, ... ,<br />
, ... ,<br />
Dimana j = 1, 2, … , n → menunjukkan nomor persamaannya<br />
+<br />
+<br />
y<br />
y<br />
i,<br />
n<br />
i,<br />
n<br />
i,<br />
n<br />
4 j<br />
+<br />
+<br />
k<br />
k<br />
3,<br />
n<br />
1,<br />
n<br />
2<br />
2,<br />
n<br />
2<br />
⎞<br />
⎟<br />
⎠<br />
⎞<br />
⎟<br />
⎠
Jikadalamsistemterdapatduapersamaandiferensialbiasa<br />
dengan bentuk<br />
dy<br />
1<br />
dx<br />
dy<br />
2<br />
dx<br />
= f<br />
1<br />
= f<br />
( x,<br />
y , y )<br />
2<br />
1<br />
( x,<br />
y , y )<br />
Maka penyelesaian persamaan diferensial biasa tersebut<br />
dengan menggunakan metode Runge Kutta orde 4 secara<br />
simultan adalah :<br />
y<br />
y<br />
i+<br />
1,<br />
1<br />
i+<br />
1,<br />
2<br />
=<br />
=<br />
y<br />
y<br />
i,<br />
1<br />
i,<br />
2<br />
+<br />
+<br />
1<br />
6<br />
1<br />
6<br />
1<br />
2<br />
2<br />
( k1,<br />
1 + 2k<br />
2,<br />
1 + 2k<br />
3,<br />
1 + k 4,<br />
1 )<br />
( k + 2k<br />
+ 2k<br />
+ k )<br />
1,<br />
2<br />
2,<br />
2<br />
3,<br />
2<br />
4,<br />
2
dimana :<br />
( )<br />
( )<br />
( )<br />
( )<br />
2<br />
,<br />
3<br />
2<br />
,<br />
i<br />
1<br />
,<br />
3<br />
1<br />
,<br />
i<br />
i<br />
2<br />
2<br />
,<br />
4<br />
2<br />
,<br />
3<br />
2<br />
,<br />
i<br />
1<br />
,<br />
3<br />
1<br />
,<br />
i<br />
i<br />
1<br />
1<br />
,<br />
4<br />
2<br />
,<br />
2<br />
2<br />
,<br />
i<br />
1<br />
,<br />
2<br />
1<br />
,<br />
i<br />
i<br />
2<br />
2<br />
,<br />
3<br />
2<br />
,<br />
2<br />
2<br />
,<br />
i<br />
1<br />
,<br />
2<br />
1<br />
,<br />
i<br />
i<br />
1<br />
1<br />
,<br />
3<br />
2<br />
,<br />
1<br />
2<br />
,<br />
i<br />
1<br />
,<br />
1<br />
1<br />
,<br />
i<br />
i<br />
2<br />
2<br />
,<br />
2<br />
2<br />
,<br />
1<br />
2<br />
,<br />
i<br />
1<br />
,<br />
1<br />
1<br />
,<br />
i<br />
i<br />
1<br />
1<br />
,<br />
2<br />
2<br />
,<br />
i<br />
1<br />
,<br />
i<br />
i<br />
2<br />
2<br />
,<br />
1<br />
2<br />
,<br />
i<br />
1<br />
,<br />
i<br />
i<br />
1<br />
1<br />
,<br />
1<br />
k<br />
y<br />
,<br />
k<br />
y<br />
,<br />
h<br />
x<br />
hf<br />
k<br />
k<br />
y<br />
,<br />
k<br />
y<br />
,<br />
h<br />
x<br />
hf<br />
k<br />
2<br />
k<br />
y<br />
,<br />
2<br />
k<br />
y<br />
,<br />
2<br />
h<br />
x<br />
hf<br />
k<br />
2<br />
k<br />
y<br />
,<br />
2<br />
k<br />
y<br />
,<br />
2<br />
h<br />
x<br />
hf<br />
k<br />
2<br />
k<br />
y<br />
,<br />
2<br />
k<br />
y<br />
,<br />
2<br />
h<br />
x<br />
hf<br />
k<br />
2<br />
k<br />
y<br />
,<br />
2<br />
k<br />
y<br />
,<br />
2<br />
h<br />
x<br />
hf<br />
k<br />
y<br />
,<br />
y<br />
,<br />
x<br />
hf<br />
k<br />
y<br />
,<br />
y<br />
,<br />
x<br />
hf<br />
k<br />
+<br />
+<br />
+<br />
=<br />
+<br />
+<br />
+<br />
=<br />
⎟<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎜<br />
⎝<br />
⎛<br />
+<br />
+<br />
+<br />
=<br />
⎟<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎜<br />
⎝<br />
⎛<br />
+<br />
+<br />
+<br />
=<br />
⎟<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎜<br />
⎝<br />
⎛<br />
+<br />
+<br />
+<br />
=<br />
⎟<br />
⎟<br />
⎠<br />
⎞<br />
⎜<br />
⎜<br />
⎝<br />
⎛<br />
+<br />
+<br />
+<br />
=<br />
=<br />
=
Akan diselesaikan dan divisualisasikan dua buah<br />
persamaan diferensial biasa sebagai berikut :<br />
dy<br />
1<br />
dx<br />
dy<br />
dx<br />
2<br />
= −0.<br />
5 y<br />
Dengan kondisi awal (batas) :<br />
1<br />
= 4 − 0.<br />
3 y<br />
x = 0; y 1 = 4; y 2 = 2<br />
2<br />
−<br />
0.<br />
1<br />
y<br />
1
Contoh :<br />
Dua buah tangki air tersambung secara seri dan saling<br />
berinteraksi. Kecepatan aliran keluar merupakan fungsi akar<br />
kuadrat dari ketinggian air, jadi untuk tangki 1 kecepatan<br />
alirannya adalah h − sedangkan untuk tangki 2 sebagai<br />
1 2 h<br />
fungsi h . Akan ditentukan ketinggian h1 dan h2 sebagai fungsi<br />
2<br />
waktu dari t = 0 sampai t = 40 menit dengan interval 4 menit.<br />
Setelah disusun neraca bahan, diperoleh persamaan diferensial<br />
simultan sebagai fungsi waktu :<br />
dh<br />
dt<br />
F<br />
β<br />
1 1<br />
2<br />
= − h1<br />
−h<br />
A<br />
2 ; =<br />
2 h<br />
2<br />
1 −h<br />
2 − h<br />
2<br />
1 A<br />
dt A<br />
1<br />
2 A<br />
2<br />
dh<br />
Harga-harga parameter yang ada :<br />
β 1 = 2,5 ft 2,5 /menit β 2 = 5/√6 ft 3 /menit<br />
A 1 = 5 ft 2 A 2 = 10 ft 2 F = 5 ft 3 /menit<br />
Dengan kondisi awal pada t = 0, h 1 = 12 ft dan h 2 = 7 ft<br />
β<br />
β
Uap campuran keluar dari kondensor parsial kolom destilasi<br />
yang beroperasi pada 1 atm dengan komposisi 47% mol air (1),<br />
20% mol asam formiat (2) dan sisanya methanol (3). Pada<br />
kondensor terjadi kesetimbangan antara uap dan cairannya dan<br />
berlaku persamaan-persamaan berikut :<br />
y<br />
i<br />
i Ki<br />
x =<br />
o<br />
dimana, dan untuk P0 P i<br />
K<br />
i diperkirakan dengan<br />
i P persamaan Antoine :<br />
=<br />
⎛<br />
⎞<br />
⎜ B ⎟<br />
Po i = exp⎜A<br />
− i<br />
⎟<br />
⎜<br />
i T + C ⎟ dengan i = 1, 2, 3 dan x 1<br />
i<br />
⎝<br />
i ⎠<br />
i<br />
= ∑<br />
Perkirakanlah suhu operasi pada operasi kondensor (=dewpoint<br />
uap campuran) dalam o C, dengan data konstanta<br />
A1 = 18,304 A2 = 16,988 A3 = 18,510<br />
B1 = 3816,4 B2 = 3599,6 B3 = 3593,4<br />
C1 = -46,13 C2 = -26,09 C3 = -35,225<br />
P o dalam mmHg dan T dalam Kelvin