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