bab 3 persamaan tak linier
DESCRIPTION
ihcjTRANSCRIPT
Bab 3 Bab 3 Persamaan Tak LinierPersamaan Tak Linier
Bab 3 Bab 3 Persamaan Tak LinierPersamaan Tak Linier
Pengertian Persamaan Tak Linier
Persamaan matematika yang bukan persamaan linier.
y xy
xLINIER
exp( )y xy
xNON-LINIER
Contoh Persamaan Tak Linier
Jenis Pers.
Tak LinierContoh
Persamaan Kuadrat
Persamaan Polinomial
Persamaan Transenden
Persamaan Logaritmik
2 4 3 0x x 4 3 26 7 6 8 0x x x x
2sin 2exp( ) 0x x 2 2ln(1 ) 2exp( ) 0x x
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
2
RT aP
V b V
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
(2
1
(1 ) 0 n
j jF
j j
z FF q
0 0
0 0 0
0
1ln 0
o oT To o op p
T T
C CG H H dTK dT
RT RT T R R T
0 , , 0out inT T
o out out in inP 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,...,,
21
212
211
NN
N
N
xxxf
xxxf
xxxf
0)( xf
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.
a1 b1
f(a1)
f(b1)
x*
f(x)
x
a1 b1m
f(m)
2
a bm
f(a1)
f(b1)
x*
f(x)
x
a2 b1
f(a2)
f(b1)
x*
f(x)
x
Algoritma Penyetengahan Interval
mulai
Nyatakan:f(x), tol
Periksa nilai:f(a), f(b)
masukan:a dan b
f(a)*f(b)<0
1
ya
tidak
1
m=(a+b)/2
Periksa nilai:f(m)
f(a)*f(m)>0
a=mf(a)=f(m)
ya
b=mf(b)=f(m)
|(a-b)/a|<tol
tidak
ya
tidak
2
2
x*=(a+b)/2
Selesai
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 argumenif nargin < 4 | isempty(tol) tol=1e-6;endif nargin < 3 error('masukan dua buah tebakan')endif (length(a)&length(b)) > 1 error('argumen yang kedua haruslah bil. skalar')end
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; endendx=(a+b)/2;
bisection.m (lanjutan) Pemrograman MATLAB
function y = fun(x)
y=x^2-4*x+3;
>>bisection(‘fun’,2,10,1e-6)ans =
3.0000
Eksekusi fungsi kasus1.mMasukan dan hasil di Command Window
fun.m fungsi yang akan dinolkan
Metode Newton-Raphson
Keunggulan Hanya butuh satu tebakan awal. Laju konvergensi cepat.
Kelemahan Kekonvergenan adakalanya gagal dicapai.
x0
f(x0)
x*
f(x)
x
1
( )
'( )n
n nn
f xx x
f x
x0
f(x0)
x1
f(x1)
f(x)
x
01 0
0
( )
'( )
f xx x
f x
1
( )
'( )n
n nn
f xx x
f x
x*
x0
f(x0)
x1
f(x1)
x2
f(x)
x
12 1
1
( )
'( )
f xx x
f x
1
( )
'( )n
n nn
f xx x
f x
f(x2)
x*
Algoritma Newton-Raphson
mulai
masukan:f(x),x0, tol
Nyatakan:x = x0
x0 = x + 1
1
|(x-x0)/x|>toltidak
1
ya
Selesai
Nyatakan:x0 = x
Hitung nilai:f(x0) dan f’(x0)
Hitung nilai:x=x0-f(x)/f’(x0)
Tampilkan:X* = x
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 Pemrograman MATLAB
%Pengenalan argumenif nargin < 3 | isempty(tol) tol = 1e-6;endif tol == 0 tol = 1e-6;endif 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
NewtonRaphson.m (lanjutan) Pemrograman MATLAB
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 tebakan mula.
Aplikasi subrutin roots
2
RT aP
V b V
Kasus 3Tekanan uap n-butana pada temperatur 350 K adalah 9.4573 bar.Hitunglah volume molar uap jenuh dan cair jenuh n-butana padaKondisi 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
3 2( ) 0PV Pb RT V aV ab
2 227 1 dan
64 8c c
c c
R T RTa b
P P
Transformasi ke dalam bentuk umum
pers.polinomial
Keterangan :
clearclc% Masukan kondisi operasiP = input('masukan tekanan, Pa = ');T = input('masukan temperatur, K = ');R = 8314 ; %J/(kmol.K)Pc = 37.96e5; %PaTc = 425.1; %K% Hitung konstanta a & ba = (27/64)*R^2*Tc^2/Pc;b = (1/8)*R*Tc/Pc;% Definisikan koefisien polinomialVdW=[P, -(P*b + R*T), a, -a*b];vol = roots(VdW); %liter/mol
% Tampilkan volume spesifik n-butanafprintf('\nVolume spesifik n-butana,(liter/mol)=%5.4f', vol)
kasus3.m Pemrograman MATLAB
Eksekusi program kasus3.mMasukan dan hasil di Command Window
>>kasus3masukan tekanan, Pa = 9.4573e5masukan temperatur, K = 350
Volume spesifik n-butana,(liter/mol) = 2.6669Volume spesifik n-butana,(liter/mol) = 0.3354Volume spesifik n-butana,(liter/mol) = 0.1910
kasus 4
Diketahui sebuah persamaan kapasitas panas sbb.
Tentukan temperatur pada saat Cp = 1 kJ/kg.K !
(diambil dari “Computational Methods for Process
Simulation”, Ramirez, Butterworths, 1989)
Aplikasi subrutin fzero
6 15.040.716 4.257
.
kJCp E T
kg KT
function f = KapPns(T,cp)%Persamaan tak linier yang akan dinolkanf = cp - 0.716 + 4257e-6*T - 15.04/T^0.5;
clear
clc
cp = input('masukan kapasitas panas,kJ/kg.K = ');
T = fzero(@(T) KapPns(T,cp),100)
KapPns.m Pemrograman MATLAB
kasus4.m Pemrograman MATLAB
>> kasus4masukan harga kapasitas panas,kJ/kg.K = 1
T =
189.7597
Eksekusi program kasus4.m Masukan dan hasil di Command Window :
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 itu !!.
Tugas 4Menyelesaikan persamaan tak linier tunggal dengan menggunakan subrutin MATLAB
2 20.4278 C
C
R Ta
P
0.0867 C
C
RTb
P
2
1 1C
TS
T
( )
RT aP
V b V V b
3 2 2( ) 0Z Z A B B Z AB
PVZ
RT
2 2
aPA
R T
bP
BRT
20.48508 1.55171 0.15613S
Solusi Persamaan Serentak
Metode Newton
1 2
1 2
( , ) 0
( , ) 0
f x x
f x x
Metode Newton
(1) (1)1 1(1) (1)
1 2 1 1(1) (1)
(1) (1)2 2 2 2
1 2
| |
| |
f fx x
x x f
f f fx x
x x
J f ( 1) ( )n nx x
Faktor relaksasi
Biasanya = 0.50< rho <1
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 Pemrograman MATLAB
if nargin < 4 | isempty(tol) tol = 1e-6;endif nargin < 3 | isempty(rho) rho = 1;endx0 = (x0(:).')'; nx = length(x0);x = x0*1.1;xnew = x0;iter = 0;maxiter = 100;
Newton.m (lanjutan) Pemrograman MATLAB
% Main iteration loopwhile 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; endend
if iter >= maxiter disp('Warning : Maximum iterations reached.')end
Newton.m (lanjutan) Pemrograman MATLAB
fsolve
Subrutin dalam MATLAB untuk Pers. Tak Linier Serentak
Aplikasi fsolve
Kasus 5Reaksi 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-komponenapabila Gas umpan berkomposisi 20% CH4(g) dan 80% H2O(g) berada pada kondisi suhu 2000 K dan tekanan 1 atm.
CH4(g) + H2O(g) CO(g) + 3H2(g)
CO(g) + H2O(g) CO2(g) + H2(g)
R-1
R-2
Misal ditetapkan: o Basis perhitungan 10 mol gas umpan o e1 : derajat reaksi(degree of reaction) dari reaksi pertama o e2 : derajat reaksi(degree of reaction) dari reaksi kedua
Fraksi mol kesetimbangan setiap komponen dapat dinyatakan sebagai berikut:
1
21CO e210
eeY
1
21H e210
ee3Y
2
1
21OH e210
ee8Y
2
1
2CO e210
eY
2
1
1CH e210
e2Y
4
Persamaan konstanta kesetimbangan dinyatakan sebagai berikut:
OHCH
23HCO
1
24
2
YY
PYYK
OHCO
HCO2
2
2
YY
YYK
Jawaban :
Jawaban : (lanjutan)
3
1 2 1 212
1 1 2 1
3
2 8 10 2
e e e eK
e e e e
2 1 22
1 2 1 2
3
8
e e eK
e e e e
Substitui fraksi mol kesetimbangan pada konstanta kesetimbangan sehingga dihasilkan :
function y = KsT(e,K1,K2)%Sistem Pers.tak linier yang akan dinolkany = [(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];
clearclcK1 = input(‘Masukan konstanta kst. reaksi 1 = ');K2 = input(‘Masukan konstanta kst. reaksi 2 = ');
%Pencari nol fungsi KsT.me = fsolve(@(e) KsT(e,K1,K2),[1 0.5])
KsT.m Pemrograman MATLAB
kasus5.m Pemrograman MATLAB
>>kasus5Masukan harga konstanta kst. reaksi 1 = 1.93e-4Masukan harga konstanta kst. reaksi 2 = 5.528Optimization terminated: first-order optimality is less
than options.TolFun.
e =
0.7480 0.6920
Eksekusi program kasus5.m Masukan dan hasil di Command Window :
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, oCT0 = temperatur referensi, 25 oCTa = temperatur air pendingin, oCU = 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 aF X H F C T T UA T T
1
kX
k
650exp[ 3800 /( 273)]k T
Tugas 5Menyelesaikan sistem persamaan tak linier dengan menggunakan subrutin MATLAB