Anda di halaman 1dari 54

Computation Process using Scilab

Komputasi Proses
1. 2. 3. 4. Pengenalan Scilab Bahasa pemrograman dengan Scilab Metoda Numerik Aplikasi Komputasi Proses dengan Scilab

Introduction
Physical & Mathematical MODELS Simplified picture of REALITY Engineers are symbolic analysts

TOOL to solve PROBLEMS

Forecasting Controlling

Software

Language

Programme

Interactive program

Numerical computation & data visualization

Scilab
Software gratis: http://www.scilab.org OS: Windows dan Linux Mirip dengan program Matlab
Menu Bar

Tool Bar

-->r=6 r = 6. -->luas=0.25*%pi*r^2 luas = 28.274334 deff((out1,out2,)=modul(in1,in2,),persamaan Fungsi: mendefinisikan persamaan (rumus) pada jendela kerja

-->deff('A=luas(r)','A=0.25*%pi*r^2') -->ls=luas(3) ls = 7.0685835 -->

Perintah membuka Jendela Editor Dari menu bar: (klik) Editor Atau tekan [alt d] Dari Tool bar: (klik)

Hasil

Dari Jendela kerja: (ketik) scipad()

Perlu di eksekusi: -->exec('c:\scinum\luasbs.sci');

Tips:
Cara lebih mudah, dapat dilakukan (pilih salah satu): Pada menu bar jendela editor, pilih Execute (Alt+x) Load into Scilab Pada menu bar jendela editor, Ctrl + l Pada menu bar jendela kerja, pilih File Exec pilih file yang akan dieksekusi
-->exec('c:\scilabc\luasbs.sci') -->function hsl=luasbs(r); --> hsl = 0.25*%pi*r^2; -->endfunction; -->

getf()

Fungsi: mengambil / mengaktifkan file *.sci pada suatu fungsi yang lain

1 2 3 4

function V=volbs(h,r) getf('c:/scilabc/luasbs.sci') V=h*luasbs(r) endfunction

ls file_dir

Fungsi: menampilkan file pada direktori file

-->ls c:/scinum ans = !volbs.sci ! ! ! !luasbs.sci ! -->

Apabila fungsi atau modul yang akan digunakan cukup banyak,maka penggunaan getf() tidak efektif

genlib(nama,file_dir)

Fungsi: membangun library dari fungsi (*.sci) pada direktori file

-->genlib('libsbs','c:/scinum')

load(file_dir/lib)

Fungsi: memanggil library dari fungsi pada direktori file

-->load('c:/scinum/lib')

DIFFERENSIASI NUMERIK
Persamaan differensial merupakan model matematis yang paling sering muncul dalam bidang keteknikan maupun saintifik Salah satu penyelesaiannya dengan metode beda hingga (finite difference)

Definisi turunan (derivatif)


f (x ) f (x 0 ) df (x ) = f ' (x 0 ) = lim xx0 x x0 dx x 0

Jika h = x x0 = x maka pendekatan turunan di atas adalah

f ' (x 0 )

f (x ) f (x 0 ) f (x ) f (x 0 ) = h x

Diketahui suatu fungsi y = f (x), ingin dicari

dy dx pada x = x0.

Penyelesaiannya dapat menggunakan 3 cara yaitu : 1. Forward Difference (Beda Maju) 2. Backward Difference (Beda Mundur) 3. Central Difference (Beda Pusat)

1. Metode Beda Maju (Forward Difference)


Beda hingga maju pertama dari y pada i atau x didefinisikan : yi = yi+1 yi atau y(x) = y(x+h) y(x) Beda maju kedua pada i atau x didefinisikan : 2yi = yi+2 2yi+1 + yi atau 2y(x) = y(x+2h) 2y(x+h) + y(x) Sehingga penyelesaiannya bisa dituliskan :
dy i 1 = (y i +1 y i ) dx h
atau

f (x 0 + x) f (x 0 ) dy x dx x = x
0

2. Metode Beda Mundur (Backward Difference)


Beda hingga mundur pertama dari y pada i atau x didefinisikan : yi = yi yi-1 atau y(x) = y(x) y(x-h) Beda mundur kedua pada i atau x didefinisikan : 2yi = yi 2yi-1 + yi-2 atau 2y(x) = y(x) 2y(x-h) + y(x-2h) Sehingga penyelesaiannya bisa dituliskan :
dyi 1 = (y i y i 1 ) dx h
atau

f (x 0 ) f (x 0 x) dy x dx x = x
0

3. Metode Beda Pusat (Central Difference)


Beda hingga terpusat pertama dari y pada i atau x didefinisikan :

y i = y i + 12 y i 12
atau y(x) = y(x+1/2 h) y(x-1/2 h) Turunan beda terpusat selanjutnya adalah :
dy i 1 (y i+1 y i1 ) = dx 2h
;

d 2 yi 1 = 2 (y i +1 2 y i + y i 1 ) dx 2 h

d3 yi 1 = 3 (y i + 2 2 y i +1 + 2 y i 1 y i 2 ) dx 3 2h
Penyelesaiannya dapat dituliskan

dy i 1 (y i+1 y i1 ) = dx 2h

atau

f (x 0 + x) f (x 0 x) dy 2x dx x = x
0

Derivatif Orde Dua


Untuk penurunan (derivatif) pangkat dua dengan metode beda hingga terpusat digunakan rumus dengan bentuk :
d 2 yi 1 = 2 (y i + 2 2 y i + y i 1 ) 2 dx h
Atau dapat juga dituliskan :
d2y dx
2 x=x
0

f (x 0 + x) 2f (x 0 ) + f (x 0 x) x 2

INTEGRASI NUMERIS
Jika ada fungsi Y = x f (x)dx sedangkan f(x) sulit sekali 0 untuk diintegrasikan secara analitik, maka cara yang paling mudah adalah dengan mengintegrasikannya secara numerik
xn

f(x)

x0

x1

x2

xn-1

xn

Dalam perhitungan integrasi numerik, luasan di bawah kurva akan diubah dalam bentuk trapesium, dimana ruang kosong merupakan bagian dari kesalahan numerik Untuk mengatasi kesalahan dilakukan dengan cara membagi menjadi trapesium dengan segmen yang lebih kecil Integrasi dilakukan dengan menggunakan interval x yang sama (homogen) sepanjang batas integrasi dari x0 sampai xn Batas/interval integrasi dibagi menjadi n interval x = (x n x 0 )

Batas interval diberi indeks 0, 1, 2, .. , n sehingga

x i = x 0 + i . x

Penyelesaian numerik dapat dilakukan dengan dua cara, yaitu


Trapezoidal Rule
xn

x f (x ) + 2n 1f (x ) + f (x ) i n f (x ) dx 2 0 i=1 x0

Simpson Rule
xn

x f (x ) + 4 n1 f (x ) + 2 n2 f (x ) + f (x ) n f (x) dx 3 0 i i x i=1,3,5 i=2,4,6


0

AKAR PERSAMAAN (PERSAMAAN NON LINIER) Merupakan bentuk persamaan aljabar yang nilainya sama dengan nol Untuk satu variabel bebas x, maka f(x) 0 Banyak digunakan dalam model keteknikan maupun saintis

Metode Penyelesaian Akar Persamaan


1. Metode Pengurungan (bracketing method)
Memerlukan dua titik sebagai tebakan awal

2. Metode Terbuka (open method)


Hanya memerlukan satu titik sebagai tebakan awal

1. METODE PENGURUNGAN
Dilakukan dengan menebak 2 angka a. Metode Bisection (bagi dua) b. Metode Regula Falsi (posisi palsu) atau Metode Interpolasi Linier

a. Metode Bisection (Bagi Dua)


Merupakan metode yang paling sederhana Diawali dengan menebak dua nilai yaitu nilai bawah (sblm akar) xa dan nilai atas (stlh akar) xb Tebakan benar jika f(xb) dan f(xa) mempunyai tanda yang berlawanan : f(xb) . f(xa) < 0 Jika f(xb) . f(xa) > 0 maka tebakan awal diulangi Nilai kedua tebakan dibagi dua, disebut xc Nilai xc akan menggantikan posisi nilai lama. Jika xc berada pada posisi xb disebut dengan xb dan jika berada pada posisi xa akan diubah menjadi xa

Algoritma Bisection (Bagi Dua)


1. 2. 3. 4. Tebak akar atas, xa dan akar bawah, xb Periksa f(xa).f(xb)=0 stop didapat harga akar kembali ke-1 Periksa f(xa).f(xb)<0, jika tidak Periksa kriteria penghentian, jika terpenuhi stop tulis akar 5. Perkirakan akar yang dicari 6. Evaluasi akar xc
Hitung f(xc) maka xc berada di subinterval a. Jika f(xc).f(xa)>0, kembali ke-4 bawah Atur xa = xc b. Jika f(xc).f(xa)<0, maka xc berada di subinterval kembali ke-4 atas Atur xb = xc c. Jika f(xb).f(xc)=0, maka didapat harga akar yang selesai dicari: xc xc = (xa + xb)/2

b. Metode Regula Falsi (Posisi Palsu) Merupakan perbaikan dari metode bisection Dilakukan dengan menarik garis lurus pada kedua interval xb dan xa Harga

f (x a )(x b x a ) xc = xa f (x b ) f (x a )

Algoritma sama dengan metode bisection, hanya tahapan 5 diganti nilai xcnya

2. METODE TERBUKA
Dilakukan dengan menebak 1 angka a. Metode Pertemuan Dua Grafik b. Metode Newton Raphson c. Metode Secant

b. Metode Newton Raphson Mula-mula diperkirakan harga xi awal kemudian dipotongkan thd kurva dan ditarik garis singgung Garis singgung merupakan tangen atau slope. Slope merupakan turunan pertama dari f(xi) sehingga didapat hubungan : f (x i ) f ' (x i ) = (x i x i + 1 ) Persamaan Newton Raphson :
f (x i ) x i +1 = x i f ' (x i )

Algoritma Newton Raphson


1. 2. 3. 4. 5. 6. Tuliskan fungsi f(x) Cari harga f(x) Masukkan tebakan awal x0 Masukkan parameter penghentian program : Inisialisasi harga : iterasi = 0 dan Eas = 1.1 Ebs Jika kesalahan relatif (Eas > Ebs) dan (iterasi < iterasi makasimum) maka :
a. b. Harga
x iter = x i +1 = x i

Kesalahan relatif perkiraan Ebs Jumlah iterasi maksimum

Cek harga Eas

7. 8.

Ulangi 6 sampai kondisi tercapai Tulis xiter = akar

c.

Iterasi = iterasi + 1

f (x i ) f ' (x i ) x x iter 1 E as = iter x iter

c. Metode Secant
Kelemahan metode Newton Raphson, harus mencari turunan pertama dari fungsi f(xi) Metode secant untuk menghindari turunan pertama dengan turunan numerik mundur
f (x i 1 ) f (x i ) f ' (x i ) = x i 1 x i

Sub Program PERSAMAAN NON LINEAR


Scilab menyediakan sub program untuk menyelesaikan satu atau beberapa sistem persamaan non linear secara simultan dengan menggunakan perintah fsolve
x = fsolve(x0, persamaan) Contoh : Akan dicari akar persamaan simultan non linear dari : Kedua persamaan diubah menjadi :
x 2 + xy = 10 y + 3xy 2 = 57

f1 (x, y ) = x 2 + xy 10 = 0

f 2 (x, y ) = y + 3xy 2 57 = 0

Persamaan ditulis dalam bentuk matrik dengan x sebagai x(1) dan y sebagai x(2)

Contoh :

Diketahui persamaan Van der Waals untuk menggambarkan kondisi gas non-ideal :
a Vb P + 2 V

) = RT

Hitunglah volume molar udara (V) pada 50 atm dan suhu -100oC jika diketahui nilai konstanta a = 1.33 atm.liter2/gmol, b = 0.0366 liter/gmol dan R = 0.08205 liter.atm/K.gmol

PERSAMAAN DIFERENSIAL
1. Persamaan Diferensial Biasa (ODE), hanya terdapat 1 variabel bebas
d 2 y + y dy = kx dx dx 2

2. Persamaan Diferensial Parsial (PDE), terdapat lebih dari 1 variabel bebas

2 T T 2 = t x

Persamaan Diferensial Biasa (ODE)


Berdasarkan pangkat (Orde) : PDB Orde satu PDB Orde dua : :
dy + y = kx dx

d2y dy +y = kx dx dx 2
d2y d3y dy + a 2 + b = kx dx dx 3 dx
2

PDB Orde tiga : Berdasarkan kondisi batas : IVP (Initial Value Problems), bila nilai variabel tak bebas atau turunannya diketahui pada kondisi nilai mula-mula BVP (Boundary Value Problems), bila nilai variabel tak bebas atau turunannya diketahui lebih dari satu nilai variabel bebasnya

Persamaan Diferensial Parsial (PDE) PDE Order satu : PDE Order dua PDE Order tiga : :
C C =0 x y

2C C + De =0 2 y x
u 2 u u 3 + =0 + x xy y
3 2

Penyelesaian Persamaan Diferensial Biasa (ODE)


1. Metode Euler (Eksplisit) 2. Metode Euler Modifikasi (Implisit) 3. Metode Runge-Kutta

1. Metode Euler (Eksplisit)


Disebut juga metoda integrasi nilai awal
dy = f (x , y ) dx

Kondisi awal
y i +1

: y(x0) = y0
y i +1 y i =
x i +1 xi

yi

dy = f (x, y) dx
xi

x i +1

f (x, y ) dx

y i +1 = y i + h f (x i , y i )

Perbandingan Analitis dengan Metode Euler (Eksplisit)


Persamaan diferensial yang diselesaikan:

dy = 4x 3 6x 2 + 8 dx
xi 0 0.5 1 1.5 2 2.5 3

Dimana x = 0, y = 2 (kondisi awal); xa=3, h=0.5 yanaltk 2 5.81 9 12.31 18 29.81 53 yeuler 2 6 9.5 12.5 16.5 24.5 41 % kslhan 3.27 5.56 1.54 8.33 17.81 22.64

Algoritma Metode Euler (Eksplisit)


Tentukan x = x0 dan y = y0 Tentukan nilai awal x0 dan nilai akhir xa dari variabel bebas 3. Tentukan nilai h 4. Inisialisasi i = 0 5. Buat persamaan f(x,y), modul terpisah 6. Vektor x(i)=[x0, x0+h, x0+2h,,xa] 7. Jumlah loop, n=(xa-x0)/h 8. Untuk i=0 sampai n-1 maka : 9. yi+1=yi + hf(xi,yi) 10. x = x + h 11. Simpan nilai xi, yi 12. Lanjutkan i 1. 2.

2. Metode Euler Modifikasi (Implisit)


Untuk memperkecil kesalahan Merupakan gabungan antara beda maju dan beda mundur Beda maju pertama dari y pada i sama dengan beda mundur pertama dari y pada i+1
y i = y i +1 y i = y i +1

y i +1 = y i + y i +1

sehingga

y i +1 = y i + h f (x i +1 , y i +1 )

Untuk memperbaiki metode Euler, maka metode Euler eksplisit digunakan untuk memprediksi nilai yi+1

(y i+1 )pred = y i + h f (x i , y i )

fpred

Nilai prediksi pada persamaan di atas digunakan untuk mengkoreksi metoda implisit

(y i+1 )kork

= y i + h f x i +1 , (y i +1 )pred

fcorr

Persamaan di atas disebut dengan Metode Prediktor Korektor atau Metode Heun Kombinasi metoda beda maju dan beda mundur dituliskan dalam bentuk

y i +1 = y i + 1 (y i + y i +1 ) 2

(y i+1 ) = y i + 1 h f (x i , y i ) + 1 h f (x i+1 , y i+1 ) 2 2


fpred fcorr

Perbandingan dengan Analitis


xi 0 0.5 1 1.5 2 2.5 3 yanaltk 2 5.81 9 12.31 18 29.81 53 yeuler 2 6 9.5 12.5 16.5 24.5 41 % kslhan Euler 3.27 5.56 1.54 8.33 17.81 22.64 yeuler-mod 2 5.75 9 12.5 18.5 30.75 54.5 % kslhan Euler-mod 1.03 0.0 1.54 2.78 3.15 2.83

3. Metode Runge-Kutta
Merupakan metode untuk menyelesaikan persamaan diferensial dengan ketelitian dan kestabilan yang cukup tinggi. Sangat umum digunakan untuk menyelesaikan bentuk PDB baik linear maupun non linear dengan problema kondisi awal

Bentuk penyelesaian berdasarkan orde (pangkat): Orde (pangkat) dua: y i +1 = yi + 1 (k1 + k 2 ) 2 Dimana nilai dari ki adalah : k 1 = h f (x i , y i ) Orde (pangkat) tiga : y i+1 = y i + 1 (k 1 + 4k 2 + k 3 ) 6 Dimana nilai dari ki adalah : k 1 = h f (x i , y i )
k h k 2 = h f x i + , yi + 1 2 2
;

k 2 = h f (x i + h , y i + k 1 )

k 3 = h f (x i + h , y i + 2k 2 k 1 )
y i +1 = y i + 1 (k 1 + 2k 2 + 2k 3 + k 4 ) 6
k h k 3 = h f x i + , yi + 2 2 2
k 4 = h f (x i + h, y i + k 3 )

Orde (pangkat) empat :


Dimana nilai dari ki adalah :

k 1 = h f (x i , y i )

k h k 2 = h f x i + , yi + 1 2 2

Perbandingan dengan Analitis


xi 0 0.5 1 1.5 2 2.5 3 yanaltk 2 5.8125 9 12.3125 18 29.8125 53 yeuler 2 6 9.5 12.5 16.5 24.5 41
% kslhan Euler

yeuler-mod 2 5.75 9 12.5 18.5 30.75 54.5

% kslhan Eulermod

yrk4 2 5.8125 9 12.3125 18 29.8125 53

% kslhan rk4

3.27 5.56 1.54 8.33 17.81 22.64

1.03 0.0 1.54 2.78 3.15 2.83

0 0 0 0 0 0

Sub Program PDB


Scilab menyediakan sub program siap pakai untuk menyelesaikan persoalan PDB
y=ode (y0,t0,t,fungsi) Bentuk persamaan : Dimana : y0 = kondisi awal dari variabel tak bebas (y) t0 = kondisi awal dari variabel bebas (t) t = batasan simulasi dari variabel bebas
dy = fungsi dt

Persamaan Diferensial Biasa Simultan


Merupakan sekumpulan persamaan diferensial biasa yang harus diselesaikan secara simultan
dy1 = f 1 (x , y1 , y 2 , ... , y n ) dx dy 2 = f 2 (x , y1 , y 2 , ... , y n ) dx . . dy n = f n (x , y1 , y 2 , ... , y n ) dx

Penyelesaian dengan menggunakan metode Runge Kutta orde empat


y i +1, j = y i , j + Dengan nilai k adalah :
k 1, j = hf j (x i , y i ,1 , y i , 2 , ... , y i ,n ) k 1,n k 1, 2 k 1,1 h k 2, j = hf j x i + , y i ,1 + , ... , y i ,n + , y i,2 + 2 2 2 2 k 2,n k 2, 2 k 2,1 h k 3, j = hf j x i + , y i ,1 + , ... , y i ,n + , y i,2 + 2 2 2 2 k 4, j = hf j (x i + h , y i ,1 + k 3,1 , y i , 2 + k 3, 2 , ... , y i ,n + k 3,n )
1 6

(k

1j

+ 2k 2 j + 2k 3 j + k 4 j )

Dimana j = 1, 2, , n menunjukkan nomor persamaannya

Jika dalam sistem terdapat dua persamaan diferensial biasa dengan bentuk
dy1 = f 1 (x , y1 , y 2 ) dx dy 2 = f 2 (x , y1 , y 2 ) dx

Maka penyelesaian persamaan diferensial biasa tersebut dengan menggunakan metode Runge Kutta orde 4 secara simultan adalah :

y i +1,1 = y i ,1 + 1 (k 1,1 + 2k 2,1 + 2k 3,1 + k 4,1 ) 6

y i +1, 2 = y i , 2 + 1 (k 1, 2 + 2k 2, 2 + 2k 3, 2 + k 4, 2 ) 6

dimana :

k 1,1 = hf 1 (x i , y i ,1 , y i , 2 )

k 1, 2 = hf 2 (x i , y i ,1 , y i , 2 ) k k h x i + , y i ,1 + 1,1 , y i , 2 + 1, 2 k 2,1 = hf 1 2 2 2 k 1,1 k 1, 2 h k 2, 2 = hf 2 x i + , y i ,1 + , y i,2 + 2 2 2 k 2,1 k 2, 2 h k 3,1 = hf 1 x i + , y i ,1 + , y i,2 + 2 2 2 k k h x i + , y i ,1 + 2,1 , y i , 2 + 2, 2 k 3, 2 = hf 2 2 2 2 k 4,1 = hf 1 (x i + h, y i ,1 + k 3,1 , y i , 2 + k 3, 2 ) k 4, 2 = hf 2 (x i + h, y i ,1 + k 3,1 , y i , 2 + k 3, 2 )

Akan diselesaikan dan divisualisasikan dua buah persamaan diferensial biasa sebagai berikut :
dy1 = 0.5 y1 dx dy 2 = 4 0.3 y 2 0.1 y 1 dx
Dengan kondisi awal (batas) : x = 0; y1 = 4; y2 = 2

Contoh :
Dua buah tangki air tersambung secara seri dan saling berinteraksi. Kecepatan aliran keluar merupakan fungsi akar kuadrat dari ketinggian air, jadi untuk tangki 1 kecepatan alirannya adalah h1 h 2 sedangkan untuk tangki 2 sebagai fungsi h 2 . Akan ditentukan ketinggian h1 dan h2 sebagai fungsi waktu dari t = 0 sampai t = 40 menit dengan interval 4 menit. Setelah disusun neraca bahan, diperoleh persamaan diferensial simultan sebagai fungsi waktu :
dh1 F 1 h h = dt A1 A1 1 2

dh 2 2 = h1 h 2 2 h 2 dt A 2 A
2

Harga-harga parameter yang ada : 1 = 2,5 ft2,5/menit 2 = 5/6 ft3/menit A2 = 10 ft2 F = 5 ft3/menit A1 = 5 ft2 Dengan kondisi awal pada t = 0, h1 = 12 ft dan h2 = 7 ft

Uap campuran keluar dari kondensor parsial kolom destilasi yang beroperasi pada 1 atm dengan komposisi 47% mol air (1), 20% mol asam formiat (2) dan sisanya methanol (3). Pada kondensor terjadi kesetimbangan antara uap dan cairannya dan berlaku persamaan-persamaan berikut :
xi = yi o dimana, K = P i dan untuk P0i diperkirakan dengan Ki i P persamaan Antoine : Bi o i = exp A P dengan i = 1, 2, 3 dan x i = 1 i T+C i
i

Perkirakanlah suhu operasi pada operasi kondensor (=dewpoint uap campuran) dalam oC, dengan data konstanta A1 = 18,304 A2 = 16,988 A3 = 18,510 B1 = 3816,4 B2 = 3599,6 B3 = 3593,4 C1 = -46,13 C2 = -26,09 C3 = -35,225 Po dalam mmHg dan T dalam Kelvin