Anda di halaman 1dari 44

Bab 3

Persamaan Tak Linier

Pengertian
Persamaan Tak Linier
Persamaan

matematika yang bukan


persamaan linier.

yx

LINIER

y exp( x)

NON-LINIER

Contoh Persamaan Tak Linier


Jenis Pers.
Tak Linier

Contoh

Persamaan Kuadrat

x2 4x 3 0

Persamaan Polinomial

x 4 6 x3 7 x 2 6 x 8 0

Persamaan Transenden sin x 2 exp( x 2 ) 0


Persamaan Logaritmik

ln(1 x 2 ) 2 exp( x 2 ) 0

Persamaan Tak Linier dalam


Teknik Kimia
Aplikasi Pers. Tak Linier

Contoh

Neraca Massa dan Energi,

H N
o
0

Tout
out

To

Termodinamika
Persamaan gas nyata/kubik,
Kesetimbangan reaksi kimia,

Operasi Teknik Kimia, dll.


1)
2)

out
P ,i

dT N

Tin
in

in
P ,i

To

RT
a
P
2
V b V

(1

T
C p dT
G0o H 0o H 0o 1 T C p
ln K


dT
0
RT0
RT T T0 R
R
T
T0
o

j z jF F
F (1 q ) 0

j
j 1

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 Tak Linier
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

Solusi Persamaan Tunggal


Metode

Penyetengahan Interval (bisection)


Metode Substitusi Berurut
Metode Wegstein
Metode Interpolasi Linear
Metode Newton-Raphson

NB : Metode yang digarisbawahi akan dibahas lebih lanjut

Metode Penyetengahan Interval


(Metode Bisection)

Keunggulan
Sederhana.
Pasti

Konvergen.

Kelemahan
Tebakan

awal [a,b] harus memiliki nilai


f(a)*f(b)<0.
Laju konvergensi relatif lebih lambat daripada
metode Newton-Raphson.

f(x)
f(a1)

a1
f(b1)

x*

b1

f(x)
f(a1)

f(m)
a1

m x*

f(b1)

ab
m
2

b1

f(x)

f(a2)
a2 x*
f(b1)

b1

Algoritma Penyetengahan Interval


1

m=(a+b)/2

x*=(a+b)/2

mulai
Nyatakan:
f(x), tol

Periksa nilai:
f(m)

masukan:
a dan b

Periksa nilai:
f(a), f(b)

f(a)*f(m)>0
ya

tidak

a=m
f(a)=f(m)

tidak
f(a)*f(b)<0

tidak

b=m
f(b)=f(m)

|(a-b)/a|<tol

ya
1

Selesai

ya
2

bisection.m

Pemrograman MATLAB

function x = bisection(fungsi,a,b,tol,varargin) ;
% BISECTION pencarian akar persamaan nonlinier
% dengan metode penyetengahan interval/bisection
% masukan dua buah tebakan awal
%@ oleh Teguh Kurniawan, 12 April 2006
%Departemen Teknik Kimia UNTIRTA
% Pengenalan argumen
if nargin < 4 | isempty(tol)
tol=1e-6;
end
if nargin < 3
error('masukan dua buah tebakan')
end
if (length(a)&length(b)) > 1
error('argumen yang kedua haruslah bil. skalar')
end

bisection.m (lanjutan)

Pemrograman MATLAB

while abs((a - b)/a) > 1e-6


fa = feval(fungsi,a,varargin{:});
fb = feval(fungsi,b,varargin{:});
if fa*fb > 0
error('masukan tebakan a dan b yang berbeda')
end
m = (a + b)/2;
fm = feval(fungsi,m,varargin{:});
if fm*fa > 0;
a = m;
else
b = m;
end
end
x=(a+b)/2;

fun.m
dinolkan
function y = fun(x)

fungsi yang akan

y=x^2-4*x+3;

Eksekusi fungsi kasus1.m


Masukan dan hasil di Command Window
>>bisection(fun,2,10,1e-6)
ans =
3.0000

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*

f(x)

f(x0)

f ( xn )
xn 1 xn
f '( xn )
f(x1)

x0

x1

x*

f ( x0 )
x1 x0
f '( x0 )

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 )

Algoritma Newton-Raphson
1

|(x-x0)/x|>tol
mulai
masukan:
f(x),x0, tol
Nyatakan:
x = x0
x0 = x + 1
1

tidak

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

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

Tampilkan:
X* = x

Selesai

NewtonRaphson.m

Pemrograman MATLAB

function x = NewtonRaphson(fungsi,x0,tol,varargin)
%Mencari penol fungsi tak linier dengan
%metode Newton-Raphson
% NewtonRaphson('FUN',X0) Mencari penol fungsi tak linier
% dengan metode Newton-Raphson.
% m-file FUN.m. X0 adalah tebakan mula.
% NewtonRaphson('FUN',X0,TOL) Menggunakan TOL untuk
% batasan iterasi. Kosongkan nilai TOL jika hendak
% menggunakan nilai yg telah ditetapkan dalam program.
% NewtonRaphson('FUN',X0,TOL,P1,P2,...) P1,P2 dst adlh
% variabel tambahan untuk fungsi FUN(X,P1,P2,...).
%@ oleh Teguh Kurniawan, 22 April 2006
%Departemen Teknik Kimia UNTIRTA

NewtonRaphson.m (lanjutan)

Pemrograman MATLAB

%Pengenalan argumen
if nargin < 3 | isempty(tol)
tol = 1e-6;
end
if tol == 0
tol = 1e-6;
end
if length(x0) > 1 | ~isfinite(x0)
error('argumen elemen kedua haruslah bil. skalar')
end
itermax = 100;
iter = 0;
x = x0;
x0 = x + 1;

NewtonRaphson.m (lanjutan)

Pemrograman
MATLAB

while abs((x - x0)/x) > tol & iter <= itermax


iter = iter + 1;
x0 = x;
fx= feval(fungsi,x,varargin{:});
if x ~= 0
dx = x/100;
else
dx = 1/100;
end
a = x - dx; fa = feval(fungsi,a,varargin{:});
b = x + dx; fb = feval(fungsi,b,varargin{:});
df= (fb - fa)/(b - a);
if df == 0
x = x0 + max(abs(dx),1.1*tol);
else
x = x0 - fx/df;
end
end

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.

Aplikasi subrutin roots


Kasus 3
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

RT
a
P
2
V b V
Transformasi ke
dalam bentuk umum
pers.polinomial

Keterangan :

27 R 2Tc 2
1 RTc
a
dan b
64 Pc
8 Pc

PV 3 ( Pb RT )V 2 aV ab 0

kasus3.m

Pemrograman MATLAB

clear
clc
% Masukan kondisi operasi
P = input('masukan tekanan, Pa = ');
T = input('masukan temperatur, 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);
%liter/mol
% Tampilkan volume spesifik n-butana
fprintf('\nVolume spesifik n-butana,(liter/mol)=%5.4f', vol)

Eksekusi program kasus3.m


Masukan dan hasil di Command Window
>>kasus3
masukan tekanan, Pa = 9.4573e5
masukan temperatur, K = 350
Volume spesifik n-butana,(liter/mol) = 2.6669
Volume spesifik n-butana,(liter/mol) = 0.3354
Volume spesifik n-butana,(liter/mol) = 0.1910

Aplikasi subrutin fzero


kasus 4
Diketahui sebuah persamaan kapasitas panas sbb.

15.04
Cp 0.716 4.257 E T
T
6

kJ
kg.K

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


(diambil dari Computational Methods for Process
Simulation, Ramirez, Butterworths, 1989)

KapPns.m

Pemrograman MATLAB

function f = KapPns(T,cp)
%Persamaan tak linier yang akan dinolkan
f = cp - 0.716 + 4257e-6*T - 15.04/T^0.5;

kasus4.m

Pemrograman MATLAB

clear
clc
cp = input('masukan kapasitas panas,kJ/kg.K = ');
T = fzero(@(T) KapPns(T,cp),100)

Eksekusi program kasus4.m


Masukan dan hasil di Command Window :

>> kasus4
masukan harga kapasitas panas,kJ/kg.K = 1
T=
189.7597

Tugas 4
Menyelesaikan persamaan tak linier tunggal dengan menggunakan subrutin
MATLAB
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

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

aP
A 2 2
RT

PV
RT
2

2
C

0.4278 R T ;
PC

0.0867 RTC ;
b
PC

bP
RT

T ;
1 S 1

TC

S 0.48508 1.55171 0.15613 2

(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 itu !!.

Solusi Persamaan Serentak


Metode

Newton

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

Metode Newton
f1 (1)
x | x
1

f 2 (1)
x | x
1

f1 (1)
|x
x2
1(1)


f 2 (1) (1)
2

|x
x2

J f
x

( n 1)

(n)

f 1(1)

f 2(1)

Faktor relaksasi
0< rho <1

Biasanya = 0.5

Newton.m

Pemrograman MATLAB

function [xnew , iter] = Newton(fnctn,x0,rho,tol,varargin)


%NEWTON Solves a set of equations by Newton's method.
%
% NEWTON('F',X0) finds a zero of the set of equations
% described by the M-file F.M. X0 is a vector starting
% gueses.
%
% NEWTON('F',X0,RHO,TOL) uses relaxation factor rho and
% tolerance TOL for convergence test.
%
% NEWTON('F',X0,RHO,TOL,P1,P2....) allows for additional
% arguments which are passed to the function F(X,P1,P2,...)
% Pass an empty matrix for TOL or TRACE to use the default
% value.
%(c) by N. Mostoufi & A. Constantinides
%January 1, 1999

Newton.m (lanjutan)

if nargin < 4 | isempty(tol)


tol = 1e-6;
end
if nargin < 3 | isempty(rho)
rho = 1;
end
x0 = (x0(:).')';
nx = length(x0);
x = x0*1.1;
xnew = x0;
iter = 0;
maxiter = 100;

Pemrograman MATLAB

Newton.m (lanjutan)

Pemrograman MATLAB

% Main iteration loop


while max(abs(x-xnew)) > tol & iter < maxiter
iter = iter + 1;
x = xnew;
fnk = feval(fnctn,x,varargin{:});
% Set dx for derivation
for k = 1:nx
if x(k) ~= 0
dx(k) = x(k) / 100;
else
dx(k) = 1/100;
end
end

Newton.m (lanjutan)

Pemrograman MATLAB

% Calculation of the Jacobian matrix


a = x;
b = x;
for k = 1 : nx
a(k) = a(k) - dx(k); fa = feval(fnctn,a,varargin{:});
b(k) = b(k) + dx(k);fb = feval(fnctn,b,varargin{:});
jacob(:,k) = (fb - fa) / (b(k) - a(k));
a(k) = a(k) + dx(k);
b(k) = b(k) - dx(k);
end

Newton.m (lanjutan)

Pemrograman MATLAB

% Next approximation of the roots


if det(jacob) == 0
xnew = x + max([abs(dx), 1.1*tol]);
else
xnew = x - rho * inv(jacob) * fnk;
end
end
if iter >= maxiter
disp('Warning : Maximum iterations reached.')
end

Subrutin dalam MATLAB untuk


Pers. Tak Linier Serentak

fsolve

Aplikasi fsolve
Kasus 5
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%
H2O(g) berada pada kondisi suhu 2000 K dan tekanan 1
atm.

Jawaban :

Jawaban : (lanjutan)
Substitui fraksi mol kesetimbangan pada konstanta
kesetimbangan sehingga dihasilkan :

e1 e2 3e1 e2

2 e1 8 e1 e2 10 2e1

K1

e2 3e1 e2
K2
e1 e2 8 e1 e2

KsT.m

Pemrograman MATLAB

function y = KsT(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];

kasus5.m

Pemrograman MATLAB

clear
clc
K1 = input(Masukan konstanta kst. reaksi 1 = ');
K2 = input(Masukan konstanta kst. reaksi 2 = ');
%Pencari nol fungsi KsT.m
e = fsolve(@(e) KsT(e,K1,K2),[1 0.5])

Eksekusi program kasus5.m


Masukan dan hasil di Command Window :
>>kasus5
Masukan harga konstanta kst. reaksi 1 = 1.93e-4
Masukan harga konstanta kst. reaksi 2 = 5.528
Optimization terminated: first-order optimality is less
than options.TolFun.
e=
0.7480

0.6920

Tugas 5
Menyelesaikan sistem persamaan tak linier dengan menggunakan subrutin MATLAB
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 FAo CP , 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:

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

Anda mungkin juga menyukai