• Tidak ada hasil yang ditemukan

Modul 3 edit

N/A
N/A
Protected

Academic year: 2017

Membagikan "Modul 3 edit"

Copied!
54
0
0

Teks penuh

(1)

MODUL 3

Sistem Persamaan

Tak-Linier

(2)

Persamaan Tak-Linier

Persamaan matematika yang bukan persamaan linier.

y

x

LINIER

y

x

NON-LINIER

(3)

Contoh Persamaan Tak-Linier

Persamaan Keadaan (Soave-Redlich-Kwong)

α = f(T)

a dan b adalah konstanta dan spesifik untuk jenis gas

tertentu

Persamaan diatas merupakan persamaan polynomial orde

3 yang dapat disusun dan disederhanakan menjadi

dimana Z=PV/RT (faktor kompresibilitas) dan A=αaP/R

2

T

2

dan B=bP/RT.

(4)

Persamaan Tak-Linier dalam

Teknik Kimia

Aplikasi Pers. Tak Linier Contoh

Neraca Massa dan Energi,

Termodinamika

Persamaan gas nyata/kubik,

Kesetimbangan reaksi kimia,

Operasi Teknik Kimia, dll.

1) Persamaan kubik tersebut diusulkan oleh Johannes Diderik van der Waals (1873), Fisikawan Belanda, peraih nobel Fisika pada tahun 1910. 2) Persamaan Underwood pada distilasi multikomponen

(1 2

RT

a

P

V

b

V

(2 1

(1

)

0

n j jF j j

z

F

F

q

0 0

0 0 0

0

1

ln 0

o o

T T

o o o

p p

T T

C C

G H H dT

K dT

RT RT T R R T

 

   

  

 0 , , 0

out in

T T

o out out in in

P i P i

To To

H N C dT N C

(5)

Klasifikasi Persamaan

Tak-Linier

Klasifikasi

Contoh

Persamaan Tunggal

Persamaan Serentak /

Sistem Persamaan

,

,...,

0

...

0

,...,

,

0

,...,

,

2

1

2

1

2

2

1

1

N

N

N

N

x

x

x

f

x

x

x

f

x

x

x

f

0

)

(

x

(6)

Persamaan Tunggal

(7)
(8)

Penyelesaian persamaan

Tak linier tunggal ?

Mencari harga

x

yang

(9)
(10)
(11)
(12)

Penyelesaian persamaan

Tak linier tunggal ?

Mencari harga

x

yang

(13)

Solusi Persamaan

Tak-Linier

Metode Penyetengahan Interval  Pers. tak

linier tunggal

Metode substitusi Berurut

Metode Weigstein

Metode Interpolasi Linier

Metode Newton-Raphson  Pers. tak linier

tunggal

(14)

Metode Penyetengahan

Interval

Interval Halving Method

Bisection Method

Algoritma Bolzano

Keunggulan

Sederhana, Tangguh, pasti konvergen

Kelemahan

Tebakan awal [a,b] harus memiliki nilai f(a)*f(b)<0

(15)

x

L

X

R

f(x

L

)

f(X

R

)

x*

f(

x

)

(16)

x

L

x

m

x

R

f(x

m

)

f(x

L

)

f(x

R

)

x*

f(

x

)

x

2

(17)

x

L

x

R

f(x

L

)

f(x

R

)

x*

f(

x

)

(18)

Algoritma Penyelesaian

2

x*=(x

L

+x

R

)/2

Selesai

mulai

Nyatakan:

f(x), tol

Periksa nilai:

f(x

L

), f(x

R

)

masukan:

x

L

dan x

R

f(x

L

)*f(x

R

)<0

1

ya

tidak

1

x

m

=(x

L

+x

R

)/2

Periksa nilai:

f(x

m

)

f(x

L

)*f(x

m

)>0

x

L

=x

m

f(x

L

)=f(x

m

)

ya

x

R

=x

m

f(x

R

)=f(x

m

)

|(x

L

-x

R

)/x

L

|<tol

tidak

ya

tidak

(19)
(20)
(21)

bisection.m

Pemrograman MATLAB

function [x,FVAL] = bisection(fungsi,xL,xR,tol,varargin)

% pengenalan argumen

if nargin < 4 | isempty(tol) tol=1e-6;

end

if nargin < 3

error('masukan dua buah tebakan')

end

if (length(xL)&length(xR)) > 1

error('argumen yang kedua haruslah bilangan skalar')

end

while abs((xL - xR)/xL) > 1e-6

fxL = feval(fungsi,xL,varargin{:}); fxR = feval(fungsi,xR,varargin{:}); if fxL*fxR > 0

error('masukan tebakan xL dan xR yang berbeda') end

xm = (xL + xR)/2;

fxm = feval(fungsi,xm,varargin{:}); if fxm*fxL > 0;

xL = xm; else

xR = xm; end

end

x=(xL+xR)/2;

(22)

fungsi.m

Pemrograman MATLAB

function

y=fungsi(x)

y=exp(x)-x^2-10;

Eksekusi fungsi

fungsi.m

Masukkan dan hasil di Command Window

>> bisection('fungsi',2.8,3.1,1e-6)

ans =

(23)

Metode Newton-Raphson

Keunggulan

Hanya butuh satu tebakan awal.

Laju konvergensi cepat.

Kelemahan

(24)

x

0

f(

x

0

)

x*

f(

x

)

x

1

( )

'( )

n

n

n

n

f x

x

x

f x

(25)

x

0

f(

x

0

)

x

1

f(

x

1

)

f(

x

)

(26)

x

0

f(

x

0

)

x

1

f(

x

1

)

x

2

f(

x

)

x

f(

x

2

)

(27)
(28)
(29)
(30)

Lanjutan

λ

adalah faktor peredaman langkah

(

dumping factor, relaxation factor

)

(31)

Algoritma Newton-Raphson

mulai

masukan:

f(x),x

0

, tol

Nyatakan:

x = x

0

x

0

= x + 1

1

|(x-x

0

)/x|>tol

tidak

1

ya

Selesai

Nyatakan:

x

0 = x

Hitung nilai:

f(x

0

) dan f’(x

0)

Hitung nilai:

x=x

0

-f(x)/f’(x

0

)

Tampilkan:

(32)

fungsi.m

Pemrograman MATLAB

function y = fungsi(x)

%fungsi yang ingin diselesaikan

y = exp(x)-x^2-10;

Pertama buat fungsi yang ingin diselesaikan pada m-file dan

simpan dengan nama Fungsi.m

definisikan fungsi turunan yang ingin diselesaikan dengan

menuliskannya dalam bentuk m-file dan disimpan dengan

nama Turunan.m

turunan.m

Pemrograman MATLAB

function ftur = turunan(x) h = abs((x)*eps^0.5);

% fungsi turunan

(33)

nr.m

Pemrograman MATLAB

clc

x0 = input('masukkan nilai tebakan awal, x0= ');

% memasukkan input tebakan awal

xtol = input('masukkan nilai toleransi x yang diinginkan, xtol= ');

ftol = input('masukkan nilai toleransi fungsi yang diinginkan, ftol= ');

%memanggil fungsi baru yang diselesaikan

fx0 = fungsi(x0);

%memanggil fungsi turunan

fturx0 = turunan(x0);

%Relaxation factor

a = 1;

%mendefinisikan x1

x1 = x0 - a*(fx0/fturx0);

%mendefinisikan nilai fx1

fx1 = fungsi(x1);

%syarat pengulangan

while abs(fx1) >= abs(fx0) a = a/2;

x1 = x0 - a*(fx0/fturx0); fx1 = fungsi(x1);

end

Setelah itu baru kita tuliskan rutin untuk metode

(34)

nr.m

Pemrograman MATLAB

%syarat pengulangan

while abs((x1 - x0)/x0) > xtol | abs(fx1) > ftol x0 = x1;

fx0 = fungsi(x0);

fturx0 = turunan(x0); x1 = x0 - a*(fx0/fturx0); fx1 = fungsi(x1);

end

%mendefinisikan hasil

xhasil = x1

dengan menjalankan m-file nr.m, pada Command Window

akan muncul sbb :

masukkan nilai tebakan awal, x0= 2

masukkan nilai toleransi x yang diinginkan, xtol= 1e-6

masukkan nilai toleransi fungsi yang diinginkan, ftol= 1e-6 xhasil =

(35)

Subrutin dalam MATLAB untuk

Pers. Tak-Linier Tunggal

Rutin

Keunggulan

Kelemahan

roots.m

1.

Seluruh akar dapat

diketahui dengan hanya

sekali menjalankan rutin.

2.

Tidak membutuhkan

tebakan mula.

1.

Hanya untuk pers.

kuadrat dan

polinomial.

fzero.m

1.

Solusi bagi segala jenis

pers tak linier.

1.

Hanya satu buah akar

yang dapat diketahui

sekali menjalankan

rutin.

2.

Membutuhkan

(36)

Penulisan perintah Roots

Penulisan perintah roots di

command window

MATLAB

c(1) x

n

+ . . . + c(n) x + c(n+1)

c = [c(1),c(2),. . .,c(n+1)]

roots(c)

(37)

MATLAB

command window

>> C=[1 4 -5]

C =

1 4 -5

>> roots(C)

ans =

(38)

Kasus 2 : Aplikasi subrutin

roots

(39)

Jawaban

Persamaan Van der Waals

dan

(40)

vdwroots.m

Pemrograman MATLAB

clear clc

%input data

P = 9.4573e5; %Pa

T = 350; %K

R = 8314; %J/(kmol.K)

Pc = 37.96e5; %Pa

Tc = 425.1; %K

%Hitung konstanta a & b

a = (27/64)*R^2*Tc^2/Pc; b = (1/8)*R*Tc/Pc;

%definisikan koefisien polinomial

vdw = [P,-(P*b+R*T),a,-a*b]; vol=roots(vdw);

% Tampilkan volume spesifik n-butana

fprintf('\nVolume spesifik n-butana,(liter/mol)=%5.4f', vol)

(41)

Volume spesifik n-butana,(liter/mol)=2.6669

Volume spesifik n-butana,(liter/mol)=0.3354

Volume spesifik n-butana,(liter/mol)=0.1910>>

(42)

Penulisan perintah fzero

Penulisan perintah fzero di

command window

MATLAB

x = fzero (‘fungsi’,x0)

Contoh : x

2

+ 4x + 3 =0

Penulisan pada

command window

>> fzero('x^2+4*x+3',0)

ans =

(43)

Untuk keteraturan dan kemudahan pemanggilan akan lebih baik

mendefinisikan fungsi pada m-file

Baru kemudian kita panggil fungsi dari MATLAB Command window

>> x = fzero('kuadrat',0)

x =

-1

Untuk mencari akar lainnya, ubah tebakan awalnya

>> x = fzero('kuadrat',-4)

x =

-3.0000

%kuadrat.m

(44)

Kasus 3 : Aplikasi subrutin

fzero

Diketahui sebuah persamaan kapasitas panas sbb.

Tentukan temperatur pada saat Cp = 1 kJ/kg.K !

6

15.04

0.716 4257 10

.

kJ

Cp

x

T

kg K

T

(45)

heatcap.m

Pemrograman MATLAB

function f = heatcap(T,cp)

%persamaan tak linier yang akan dinolkan

f = cp - 0.716 + 4257e-6*T - 15.04/T^0.5;

definisikan fungsi persamaan tak-linier yang akan dinolkan,

simpan dengan nama

heatcap.m

runheatcap.m

Pemrograman MATLAB

clear clc

cp = 1; %kJ/kg.K % subrutin fzero

T = fzero(@(T) heatcap(T,cp),100);

% Tampilkan temperatur

fprintf('\nTemperatur,(K)=%5.4f', T)

input data dan definisikan rutin fzero, simpan dengan nama

runheatcap.m

Temperatur,(K)=189.7597>>

(46)

Kasus 4

Tekanan uap n-butana pada temperatur 350 K adalah 9.4573 bar. Volume molar uap jenuh dan cair jenuh n-butana pada kondisi tersebut dapat dihitung dengan menggunakan persamaan kubik Redlich-Kwong-Soave sebagai berikut:

Dalam bentuk persamaan polinomial menjadi sebagai berikut:

Dengan;

(R=8.314j/mol.K ;Tc=425.1 K; Pc=37.96 bar; ω = 0.1931). Hitunglah volume molar uap jenuh dan cair jenuh n-butana pada kondisi tersebut

(

)

RT

a

P

V b V V b

3 2

(

2

)

0

Z

Z

A B B Z AB

 

PV

Z

RT

A

2

aP

2

R T

B

bP

RT

2 2

0.4278

C C

R T

a

P

0.0867 C C RT b P  2 1 1 C T S T   �� �� ���� � � �� � � 2

0.48508 1.55171 0.15613

(47)

Metode Newton

1

2

1

2

( , ) 0

( , ) 0

f x x

f x x

(48)

Metode Newton

Faktor relaksasi

Biasanya

λ = 0.5

0< λ<1

 

(1) (1)

1 1

(1) (1)

1 2 1 1

(1) (1) (1) (1)

2 2 2 2

1 2

|

|

|

|

f

f

x

x

x

x

f

f

f

f

x

x

x

x

� � � �

� � � �

 

��

� � � �

(49)

Subrutin dalam MATLAB untuk

pers. Tak-Linier Serentak

(50)

Kasus 5 : Aplikasi subrutin

fsolve

Reaksi reformasi kukus berlangsung menurut rangkaian

reaksi kesetimbangan berikut:

Pada suhu 2000 K harga konstanta kesetimbangan untuk

masing-masing reaksi adalah 1,930x10

-4

dan 5,528.

Tentukan komposisi kesetimbangan komponen-komponen

apabila Gas umpan berkomposisi 20% CH

4(g)

dan 80%

H

2

O

(g)

berada pada kondisi suhu 2000 K dan tekanan 1

(51)

Jawaban

(52)

Lanjutan

Substitui fraksi mol kesetimbangan pada konstanta

kesetimbangan sehingga dihasilkan :

 

 

 

3

1 2 1 2

1 2

1 1 2 1

3

2

8

10 2

e

e

e

e

K

e

e

e

e

 

2

 

1

2

2

1

2

1

2

3

8

e

e

e

K

e

e

e

e

(53)

keq.m

Pemrograman MATLAB

function y = keq(e,k1,k2)

%Sistem Pers.tak linier yang akan dinolkan

y = [(e(1)-e(2))*(3*e(1)-e(2))^3 /((2-e(1))*(8-e(1)- e(2))*(10+2*e(1))^2) - k1 e(2)*(3*e(1)+e(2)) / ((e(1)-e(2))*(8-e(1)-e(2))) - k2];

definisikan fungsi persamaan tak-linier yang akan dinolkan,

simpan dengan nama

keq.m

runheatcap.m

Pemrograman MATLAB

clear clc

k1 = 1.93e-4; k2 = 5.528;

%Pencari nol fungsi keq.m

e = fsolve(@(e) keq(e,k1,k2),[1 0.5]);

% Tampilkan harga epsilon

fprintf('\nepsilon =%3.3f', e)

input data dan definisikan rutin fzero, simpan dengan nama

runheatcap.m

epsilon =0.748

epsilon =0.692>>

(54)

Kasus 7

Suatu reaksi elementer A B + C berlangsung dalam sebuah reaktor tangki berpengaduk kontinu. Laju umpan murni A, 12 mol/s pada temperatur 25 oC. Reaksi bersifat eksotermik, untuk itu digunakan air

pendingin bertemperatur 50 oC untuk menyerap kalor yang dibebaskan reaksi. Asumsi konstanta kapasitas

panas sama baik di sisi reaktan maupun produk, neraca energi untuk sistem ini dirumuskan sebagai berikut:

FA0 = laju molar umpan, mol/s. X = konversi

∆HR = Kalor reaksi, J/(mol.K)

CP,A = kapasitas panas A, J/(mol.K)

T = temperatur reaktor, oC

T0 = temperatur referensi, 25 oC

Ta = temperatur air pendingin, oC

U = koefisien pindah panas total, W/(m2.K)

A = luas pindah panas, m2

Untuk reaksi orde pertama konversi dirumuskan sebagai berikut:

Dengan τadalah waktu tinggal dalam sekon, dan k adalah laju reaksi spesifik dalam s-1 dihitung dengan

menggunakan persamaan Arrhenius:

Hitunglah harga temperatur reaktor dan konversinya!.

(∆HR=-1500 kJ/mol; τ=10 s; CP,A = 4500 J/(mol.K); UA/FA0 =700 W.s/(mol.K).

,

(

0

)

(

)

Ao R Ao P A a

F X H

F C

T T

UA T T

1

k

X

k

650exp[ 3800 /(

273)]

Referensi

Garis besar

Dokumen terkait