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

TOOL to solve
PROBLEMS

Simplified
picture of
REALITY

Forecasting
Controlling

Software

Engineers are
symbolic analysts

Language

Interactive
program

Numerical computation &


data visualization

Programme

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)

Dari Jendela kerja:


(ketik) scipad()

Hasil

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;
-->

Fungsi: mengambil / mengaktifkan file *.sci


pada suatu fungsi yang lain

getf()

1
2
3
4

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

Fungsi: menampilkan file pada


direktori file

ls file_dir

-->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)

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

Fungsi: memanggil library dari fungsi


pada direktori file

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
(y i+1 2 y i + y i1 )
=
2
2
dx
h

d3 yi
1
(y i+ 2 2 y i+1 + 2 y i1 y i2 )
=
3
3
dx
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
(y i+ 2 2 y i + y i 1 )
=
2
2
dx
h
Atau dapat juga dituliskan :
d2y
dx

x=x

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

INTEGRASI NUMERIS
xn

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

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
n 1

x
f (x ) dx 2 f (x 0 ) + 2 f (x i ) + f (x n )

i=1
x0

xn

Simpson Rule
n 1
n 2

x
f (x) dx 3 f (x 0 ) + 4 f (x i ) + 2 f (x i ) + f (x n )

x
i=1,3,5
i=2,4,6

xn

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
xc = (xa + xb)/2

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

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.

Tuliskan fungsi f(x)


Cari harga f(x)
Masukkan tebakan awal x0
Masukkan parameter penghentian program :

5.
6.

Inisialisasi harga : iterasi = 0 dan Eas = 1.1 Ebs


Jika kesalahan relatif (Eas > Ebs) dan (iterasi <
iterasi makasimum) maka :

7.
8.

Kesalahan relatif perkiraan Ebs


Jumlah iterasi maksimum

a.

Harga

b.

Cek harga Eas

c.

Iterasi = iterasi + 1

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

x iter = x i +1 = x i

Ulangi 6 sampai kondisi tercapai


Tulis xiter = akar

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 V b
P +

V 2

) = 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

T T
2 =
t
x
2

Persamaan Diferensial Biasa (ODE)


Berdasarkan pangkat (Orde) :
PDB Orde satu
PDB Orde dua

dy
+ y = kx
dx

d2y
dy
+
= kx
y
dx
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
2

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

Persamaan Diferensial Parsial (PDE)


PDE Order satu :

C
C

=0
x
y

PDE Order dua

2C
C
+ De
=0
2
y
x

PDE Order tiga

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

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

x i +1

yi

xi

dy =

: y(x0) = y0

f (x, y) dx

y i +1 y i =

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

x i +1

f (x, y ) dx

xi

Perbandingan Analitis dengan


Metode Euler (Eksplisit)
Persamaan diferensial yang diselesaikan:

dy
= 4x 3 6x 2 + 8
dx

Dimana x = 0, y = 2 (kondisi awal); xa=3, h=0.5

xi

yanaltk

yeuler

% kslhan

0.5

5.81

3.27

9.5

5.56

1.5

12.31

12.5

1.54

18

16.5

8.33

2.5

29.81

24.5

17.81

53

41

22.64

Algoritma Metode Euler (Eksplisit)


1.
2.

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

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

[ sehingga

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

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 + 12 (y i + y i +1 )

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


fpred

fcorr

Perbandingan dengan Analitis


xi

yanaltk

yeuler

% kslhan
Euler

yeuler-mod

% kslhan
Euler-mod

0.5

5.81

3.27

5.75

1.03

9.5

5.56

0.0

1.5

12.31

12.5

1.54

12.5

1.54

18

16.5

8.33

18.5

2.78

2.5

29.81

24.5

17.81

30.75

3.15

53

41

22.64

54.5

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 + 12 (k1 + k 2 )
Dimana nilai dari ki adalah : k 1 = h f (x i , y i )
k 2 = h f (x i + h , y i + k 1 )

Orde (pangkat) tiga : y i+1 = y i + 16 (k 1 + 4k 2 + k 3 )


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

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

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

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

k 4 = h f (x i + h, y i + k 3 )

Perbandingan dengan Analitis


yeuler-mod

%
kslhan
Eulermod

yrk4

%
kslhan
rk4

xi

yanaltk

yeuler

%
kslhan
Euler

0.5

5.8125

3.27

5.75

1.03

5.8125

9.5

5.56

0.0

1.5

12.3125

12.5

1.54

12.5

1.54

12.3125

18

16.5

8.33

18.5

2.78

18

2.5

29.8125

24.5

17.81

30.75

3.15

29.8125

53

41

22.64

54.5

2.83

53

Sub Program PDB


Scilab menyediakan sub program siap pakai untuk
menyelesaikan persoalan PDB
y=ode (y0,t0,t,fungsi)
Bentuk persamaan :

dy
= fungsi
dt

Dimana :
y0 = kondisi awal dari variabel tak bebas (y)
t0 = kondisi awal dari variabel bebas (t)
t = batasan simulasi dari variabel bebas

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 +

1
6

(k

1j

+ 2k 2 j + 2k 3 j + k 4 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

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

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 )

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 + 16 (k 1,1 + 2k 2,1 + 2k 3,1 + k 4,1 )

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

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 1,1
k 1, 2

k 2,1 = hf 1 x i + , y i ,1 +
, y i,2 +
2
2
2

k 1,1
k 1, 2

k 2, 2 = hf 2 x i + , y i ,1 +
, y i,2 +
2
2
2

k 2,1
k 2, 2

k 3,1 = hf 1 x i + , y i ,1 +
, y i,2 +
2
2
2

k 2, 2
k 2,1

, y i,2 +
k 3, 2 = hf 2 x i + , y i ,1 +
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

2
dh 2 2
=
h h
h2
dt A 2 1 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 :
yi
oi
0 diperkirakan dengan
P
dimana,
dan
untuk
P
=
K
i
Ki
i
P persamaan Antoine :

Bi

o
P i = exp A i

x =1

T + Ci dengan i = 1, 2, 3 dan i

xi =

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

Anda mungkin juga menyukai