Modul 3 edit

MODUL 3
Sistem Persamaan
Tak-Linier
OLEH :
H A F I D A LW A N
JURUSAN TEKNIK KIMIA
U N I V E R S I TA S S U LTA N A G E N G T I R TAYA S A

Persamaan Tak-Linier
Persamaan matematika yang bukan persamaan linier.

y

y

yx

LINIER

x


y  exp( x)

NON-LINIER

x

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/R2T2
dan B=bP/RT.

Persamaan Tak-Linier dalam

Teknik Kimia
Aplikasi Pers. Tak Linier
Neraca Massa dan Energi,
Termodinamika
Persamaan gas nyata/kubik,
Kesetimbangan reaksi kimia,

Contoh
H  N
o
0

Tout
out

C


out
P ,i


dT  N

To

Tin
in

C


in
P ,i

0

To

RT
a

P
 2
V b V

(1

o
T
T
C po dT
G0o  H 0o H 0o 1 C p
ln K 


dT  �
0
RT0
RT T T�
R
R

T
T0
0

Operasi Teknik Kimia, dll.

1)
2)

�n  j z jF F



�j 1  j  


 F (1  q )  0





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

(2

Klasifikasi Persamaan TakLinier
Klasifikasi
Persamaan Tunggal
Persamaan Serentak /
Sistem Persamaan

Contoh

f ( x ) 0
f 1  x1 , x 2 ,..., x N  0
f 2  x1 , x 2 ,..., x N  0
...
f N  x1 , x 2 ,..., x N  0


Persamaan Tunggal
 

Contoh

Penyelesaian persamaan
Tak linier tunggal ?

Mencari harga x yang
menyebabkan f(x) = 0

Persamaan
Serempak

Persamaan
Serempak

Contoh

Penyelesaian persamaan

Tak linier tunggal ?

Mencari harga x yang
menyebabkan f(x) = 0

Solusi Persamaan TakLinier
 Metode Penyetengahan Interval  Pers. tak
linier tunggal
 Metode substitusi Berurut
 Metode Weigstein
 Metode Interpolasi Linier
 Metode Newton-Raphson  Pers. tak linier
tunggal
 Metode Newton  Pers. tak linier serentak

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

FVAL=feval(fungsi,x,varargin{:});

fungsi.m
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 =
2.9188

Pemrograman MATLAB

Metode Newton-Raphson
Keunggulan
Hanya butuh satu tebakan awal.
 Laju konvergensi cepat.



Kelemahan


Kekonvergenan adakalanya gagal dicapai.

f(x)

f(x0)

f ( xn )
xn 1  xn 
f '( xn )

x0

x*

x

f(x)

f(x0)

f ( xn )
xn 1  xn 
f '( xn )
f(x1)

x0

x1

f ( x0 )
x1  x0 
f '( x0 )

x*

x

f(x)

f(x0)

f ( xn )
xn 1  xn 
f '( xn )
f(x1)
f(x2)

x0

x1

x2 x*

f ( x1 )
x2  x1 
f '( x1 )

x

Formula Iterasi NewtonRaphson

Kegagalan Metode
Newton-Raphson

Lanjutan

Lanjutan

 λ adalah faktor peredaman langkah
(dumping factor, relaxation factor)
0tol

tidak

ya
Nyatakan:
x0 = x
Hitung nilai:
f(x0) dan f’(x0)

Hitung nilai:
x=x0-f(x)/f’(x0)

Tampilkan:
X* = x

Selesai

 Pertama buat fungsi yang ingin diselesaikan pada m-file dan
simpan dengan nama Fungsi.m
fungsi.m

Pemrograman MATLAB

function y = fungsi(x)
%fungsi yang ingin diselesaikan
y = exp(x)-x^2-10;

 definisikan fungsi turunan yang ingin diselesaikan dengan
menuliskannya dalam bentuk m-file dan disimpan dengan
nama Turunan.m
turunan.m

function ftur = turunan(x)
h = abs((x)*eps^0.5);
% fungsi turunan
ftur = (fungsi(x+h) - fungsi(x))/h;

Pemrograman MATLAB

 Setelah itu baru kita tuliskan rutin untuk metode NewtonRapshon dalam bentuk m-file dan simpan dengan nama nr.m
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

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 : awal, x0= 2
masukkan
nilai tebakan
masukkan nilai toleransi x yang diinginkan, xtol= 1e-6
masukkan nilai toleransi fungsi yang diinginkan, ftol= 1e-6
xhasil =
2.9188
>>

Subrutin dalam MATLAB untuk
Pers. Tak-Linier Tunggal
Rutin
roots.m

Keunggulan
1.

2.

fzero.m

1.

Kelemahan

Seluruh akar dapat
diketahui dengan hanya
sekali menjalankan rutin.
Tidak membutuhkan
tebakan mula.

1.

Hanya untuk pers.
kuadrat dan
polinomial.

Solusi bagi segala jenis
pers tak linier.

1.

Hanya satu buah akar
yang dapat diketahui
sekali menjalankan
rutin.
Membutuhkan
tebakan mula.

2.

Penulisan perintah Roots
Penulisan perintah roots di command window MATLAB

c(1) xn + . . . + c(n) x + c(n+1)
c = [c(1),c(2),. . .,c(n+1)]
roots(c)
Contoh : persamaan kuadrat x2 + 4x - 5 = 0

MATLAB command window
>> C=[1 4 -5]
C =
1

4

-5

>> roots(C)
ans =
-5

1

Kasus 2 : Aplikasi subrutin
roots
Tekanan uap n-butana pada temperatur 350 K adalah
9.4573 bar.Hitunglah volume molar uap jenuh dan
cair jenuh n-butana pada Kondisi tersebut dengan
menggunakan persamaan gas Van der Waals.
(R=8.314j/mol.K ;Tc=425.1 K; Pc=37.96 bar)

Jawaban
 
Persamaan
Van der Waals

dan
Ditransformasikan kedalam persamaan polynomial

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

Eksekusi program vdwroots.m , hasil di Command Window

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

Penulisan perintah fzero
Penulisan perintah fzero di command window MATLAB

x = fzero (‘fungsi’,x0)
Contoh : x2 + 4x + 3 =0
Penulisan pada command window
>> fzero('x^2+4*x+3',0)
ans =
-1

Untuk keteraturan dan kemudahan pemanggilan akan lebih baik
mendefinisikan fungsi pada m-file
%kuadrat.m
function y = kuadrat(x)
y = x^2+4*x+3

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

Kasus 3 : Aplikasi subrutin
fzero
Diketahui sebuah persamaan kapasitas panas sbb.

15.04
Cp  0.716  4257 x10 T 
T
6

�kJ �


kg.K �


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

 definisikan fungsi persamaan tak-linier yang akan dinolkan,
simpan dengan nama heatcap.m
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;

 input data dan definisikan rutin fzero, simpan dengan nama
runheatcap.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)

Eksekusi program runheatcap.m , hasil di Command Window
Temperatur,(K)=189.7597>>

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:

RT
a
P

V  b V (V  b)
Dalam bentuk persamaan polinomial menjadi sebagai berikut:

Z 3  Z 2  ( A  B  B 2 ) Z  AB  0
Dengan;

Z
a

2

2
C

0.4278 R T
PC

b

PV
RT
0.0867 RTC
PC

A

 aP
R 2T 2

B

bP
RT

2

� �

T �
 �
1 S �
1

� S  0.48508  1.55171  0.15613 2

� T �
� �

C �

(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

Metode Newton

f ( x1 , x2 )  0
f ( x1 , x2 )  0

Metode Newton
f1 (1)
��
|x


x1


f 2 (1)

|x


x1



f1 (1) �
| x � (1)
(1)

x2





f
1
1
�� �  � �
(1)

f 2 (1) ��
�(1)
f
| x � 2 � �2 �

x2


J   f

Faktor relaksasi
0< λ>

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:

 FAo X H R  FAoCP , A (T  T0 )  UA(T  Ta )
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/(m 2.K)
A = luas pindah panas, m 2
Untuk reaksi orde pertama konversi dirumuskan sebagai berikut:

X

k
1 k

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

k  650 exp[3800 /(T  273)]
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).