MODUL 3
Sistem Persamaan
Tak-Linier
Persamaan Tak-Linier
Persamaan matematika yang bukan persamaan linier.
y
x
LINIER
y
x
NON-LINIER
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
2T
2dan B=bP/RT.
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 00 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 , , 0out in
T T
o out out in in
P i P i
To To
H N C dT N C
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
Persamaan Tunggal
Penyelesaian persamaan
Tak linier tunggal ?
Mencari harga
x
yang
Penyelesaian persamaan
Tak linier tunggal ?
Mencari harga
x
yang
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
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
x
LX
Rf(x
L)
f(X
R)
x*
f(
x
)
x
Lx
mx
Rf(x
m)
f(x
L)
f(x
R)
x*
f(
x
)
x
2
x
Lx
Rf(x
L)
f(x
R)
x*
f(
x
)
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
Ldan x
Rf(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
mf(x
L)=f(x
m)
ya
x
R=x
mf(x
R)=f(x
m)
|(x
L-x
R)/x
L|<tol
tidak
ya
tidak
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;
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 =
Metode Newton-Raphson
Keunggulan
Hanya butuh satu tebakan awal.
Laju konvergensi cepat.
Kelemahan
x
0
f(
x
0
)
x*
f(
x
)
x
1
( )
'( )
n
n
n
n
f x
x
x
f x
x
0
f(
x
0
)
x
1
f(
x
1
)
f(
x
)
x
0
f(
x
0
)
x
1
f(
x
1
)
x
2
f(
x
)
x
f(
x
2
)
Lanjutan
λ
adalah faktor peredaman langkah
(
dumping factor, relaxation factor
)
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:
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
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
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 =
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
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)
MATLAB
command window
>> C=[1 4 -5]
C =
1 4 -5
>> roots(C)
ans =
Kasus 2 : Aplikasi subrutin
roots
Jawaban
Persamaan Van der Waals
dan
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)
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 : x
2+ 4x + 3 =0
Penulisan pada
command window
>> fzero('x^2+4*x+3',0)
ans =
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
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
�
�
�
�
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>>
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
2aP
2R T
B
bP
RT
2 20.4278
C CR T
a
P
0.0867 C C RT b P 2 1 1 C T S T �� ��� ����� � � �� � � 20.48508 1.55171 0.15613
Metode Newton
1
2
1
2
( , ) 0
( , ) 0
f x x
f x x
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
�
�
�
�
�
�
�
�
� � � �
�
�
� � � �
�
�
�
��
� � � �
�
�
�
�
�
�
Subrutin dalam MATLAB untuk
pers. Tak-Linier Serentak
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
-4dan 5,528.
Tentukan komposisi kesetimbangan komponen-komponen
apabila Gas umpan berkomposisi 20% CH
4(g)dan 80%
H
2O
(g)berada pada kondisi suhu 2000 K dan tekanan 1
Jawaban
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
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>>
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)]