Professional Documents
Culture Documents
MENGGUNAKAN MATLAB
Teguh Kurniawan, ST.
F(X,Y )
-5
-10
2
3
2
0
1
0
-1
-2
Y
-2
-3
Kata Pengantar
Segala rasa syukur saya panjatkan pada Allah SWT yang telah
memberikan segala daya sehingga terwujudlah buku ajar dihadapan para pembaca.
Momen bulan Ramadhan 1427 H telah memberikan kekuatan tersendiri bagi saya
untuk memberikan karya yang sebaik-baiknya. Meskipun demikian, saya sadar
tiada karya manusia yang sempurna. Oleh karena itu, diawal halaman pengantar
saya ungkapkan harapan yang sangat besar kepada para pembaca seluruhnya
untuk memberikan saran demi perbaikan buku ajar.
Perkembangan perangkat keras (hardware-microprocessor) yang amat
cepat, membuat teknologi perangkat lunak (software) menjadi cepat pula
berkembang. Berbagai macam perangkat lunak untuk mendukung penyelesaian
persoalan keteknikan (engineering) bermunculan. Di mulai dengan Basic, Pascal,
FORTRAN sebagai program pendahulu. Bahkan FORTRAN sempat menjadi
primadona senjata ampuh bagi orang teknik. Belakangan muncul POLYMATH,
MATHCAD dan MATLAB sebagai generasi baru perangkat lunak bidang teknik
dan MIPA. Perangkat lunak yang terakhir disebut, saat ini sudah sangat banyak
penggunanya baik dari kalangan akademisi maupun praktisi karena berbagai
keunggulannya dalam menyelesaikan persoalan numerik dan simulasi proses.
Salah satu bidang keteknikan yang sarat dengan perhitungan numerik,
pemodelan serta simulasi fenomena proses adalah bidang teknik kimia.
Penggunaan paling banyak di jurusan teknik kimia adalah pada bagian teknik
reaktor, pengendalian proses, kinetika katalisis, termodinamika, operasi
perpindahan kalor, peristiwa perpindahan dan tentunya komputasi kroses teknik
kimia. Seiring dengan makin luasnya penggunaan MATLAB di kalangan industri,
maka sebagai langkah untuk mempersiapkan para mahasiswa agar siap terjun di
dunia kerja sudah saatnya bagi setiap kampus yang berorientasi pada kebutuhan
pasar untuk mengajarkan MATLAB.
Materi buku ajar disusun dengan pendekatan penyelesaian kasus-kasus
persoalan numerik teknik kimia dengan menggunakan subrutin MATLAB versi
7.0 seperti roots, fzero, fsolve, quad, ode23, fminsearch dll. Namun demikian
dalam buku ajar ini juga tetap dimasukkan berbagai materi asas numerik untuk
mencegah terjadinya pengetahuan semu (black box) seperti pemrograman Gauss,
Newton-Raphson, bisection dalam bahasa MATLAB.
Harapan penulis dengan hadirnya buku ajar ini dapat membantu
memperkenalkan MATLAB sekaligus menjadi acuan praktis untuk memahami
MATLAB sebagai alat untuk menyelesaikan persoalan-persoalan dalam dunia
teknik, khususnya teknik kimia. Akhir kata saya ucapkan terima kasih kepada
Universitas Sultan Ageng Tirtayasa (UNTIRTA) atas segala dukungannya.
Cilegon, 30 Oktober 2006
Teguh Kurniawan, ST
Staf Pengajar Komputasi Proses Teknik Kimia
Jurusan Teknik Kimia-Fakultas Teknik
Universitas Sultan Ageng Tirtayasa
DAFTAR ISI
Halaman
Kata Pengantar..........................................................................................................i
Daftar Isi..................................................................................................................ii
Daftar Tabel............................................................................................................iii
Daftar Gambar........................................................................................................iv
Bab 1 Pengenalan MATLAB...................................................................................1
Bab 2 Sistem Persamaan Linier.............................................................................27
Bab 3 Persamaan Tak Linier..................................................................................40
Bab 4 Optimisasi....................................................................................................62
Bab 5 Regresi Linier dan Non Linier.....................................................................65
Bab 6 Integrasi.......................................................................................................78
Bab 7 Persamaan Diferensial Biasa.......................................................................83
Bab 8 Persamaan Diferensial Parsial...................................................................109
Daftar Pustaka.........................................................................................................v
ii
Bab 1
Pengenalan Matlab & Pengantar Pemrograman
1.1 Perangkat Lunak MATLAB
MATLAB merupakan perangkat lunak produk dari The MathWorks,Inc
yang memadukan kemampuan perhitungan, pencitraan, dan permograman dalam
satu paket. MATLAB merupakan bahasa komputasi teknik yang lebih mudah dan
lebih canggih dalam penggunaannya dibandingkan dengan bahasa teknik
pendahulunya seperti FORTRAN, BASIC, PASCAL. Sebetulnya MATLAB
tidaklah berbeda dengan kalkulator scientific yang sehari-hari kita (orang teknik)
kenal. Bedanya MATLAB adalah kalkulator super canggih, karena MATLAB
memiliki keunggulan sbb:
1. Menghitung sampai dengan ketelitian 16 angka dibelakang koma,
sehingga perhitungan lebih akurat.
2. Menyediakan fasilitas untuk membuat program sesuai dengan kebutuhan
kita.
3. Mampu menampilkan data-data dalam grafik 2-D hingga 3-D dengan
pewarnaan yang akan memudahkan interpretasi data yang kita miliki.
4. Menyediakan perintah-perintah praktis untuk menyelesaikan berbagai
macam
persoalan
matematis
seperti
persamaan
pangkat
tinggi
Secara garis besar lingkungan kerja MATLAB terdiri atas beberapa unsur,
yaitu:
1. Command window (layar kendali)
2. Workspace (rak data)
3. Command history (layar pengingat)
4. M-file (editor ) akan dibahas pada bagian khusus.
Perintah memasukan
data variabel a
Menyimpan secara
otomatis harga
variabel a, b , dan c
Perintah memasukan
data variabel b
Perintah menghitung
harga variabel c
Keterangan
eps
pi
3.1416....
inf
>> b=[1;2;3]
b =
1
2
3
Matrik transposisi
>> A'
ans =
0.9007
-0.4504
0.9007
-1.8014
0.9007
-0.4504
0.9007
-0.4504
Perhitungan
invers
matrik
menggunakan
MATLAB
ternyata
Vektor kolom adalah matrik yang terdiri atas satu kolom saja
>> V=[2:0.5:4]'
V =
2.0000
2.5000
3.0000
3.5000
4.0000
Penulisan seperti di atas akan menghasilkan vektor kolom dengan selisih 0.5
Matrik kerancang
Matrik kerancang adalah matrik berdimensi besar yang sebagian besar
elemennya adalah nol. Misalnya:
1
0
0
1
7
0
0
0
0
0
0
7
0
0
8
0
0
0
0
0
0
0
7
0
0
0
0
3
0
9
0
0
0
0
0
0
0
0
0
0
9
6
0
0
0
0
0
0
4
5 6 7
= U4
0 8 9
0 0 10
2 3
0
5
6
7
0 0
0 0
= L4
8 0
9 10
Matrik identitas
Matrik identitas adalah matrik yang elemen diagonalnya bernilai 1 dan
elemen lainnya bernilai nol.
1
0
0
1
0
0
0
0
1
0
0
0
= I4
0
atau
>> eye(4)
ans =
Matriks diagonal
Matrik diagonal adalah matrik yang elemen selain diagonalnya bernilai nol.
1
0
0
2
0
0
0
0
3
0
0
0
= D4
0
Perhatikan cara membuat matrik diagonal tanpa harus mengetik elemen per
elemen sbb:
>> diag(1:4)
ans =
1
Matrik Tridiagonal
2 1 0 0 0 0 0 0 0
1 2 1 0 0 0 0 0 0
0 1 2 1 0 0 0 0 0
0 0 1 2 1 0 0 0 0
0 0 0 1 2 1 0 0 0
0 0 0 0 1 2 1 0 0
0 0 0 0 0 1 2 1 0
0 0 0 0 0 0 1 2 1
0 0 0 0 0 0 0 1 2
Perhatikan cara membuat matrik diagonal tanpa harus mengetik elemen per
elemen sbb:
>> diag(-2*ones(9,1))+diag(ones(8,1),1)+diag(ones(8,1),-1)
ans =
-2
-2
-2
-2
-2
-2
-2
-2
-2
Aljabar Matrik
Operasi aljabar matrik maupun skalar menggunakan simbol yang tidak jauh
berbeda. Berikut ini hirarki operasi aljabar dalam MATLAB. Pertama ^ kedua *
ketiga / atau \ dan terakhir + dan -. Keterangan:
^
Pangkat
Perkalian
Penambahan
Pengurangan
2 3 1 6 2 3 1 6 0 0 0 0
1 4 5 2 1 4 5 2 = 0 0 0 0
12
10
>> A+A
ans =
>> A-A
ans =
Perkalian matrik
Syarat jumlah kolom A = jumlah kolom baris B
AB
AB BA
Misal
1
B = 2
3
A = [1 2 3]
1
AB = [1 2 3] 2 = 1 + 4 + 9 = 14
3
(1 x 3) (3 x 1)=(1 x 1)
1
1 2 3
BA = 2 [1 2 3] = 2 4 6
3
3 6 9
>> B=[1;2;3]
B =
1
2
3
>> A*B
ans =
14
>> B*A
ans =
1
xA = c
x = cA1
x = c/ A
Misalkan:
1 2 3
x 2 5 4 = [ 20 15 8]
4 3 1
>> A=[1 2 3;2 5 4;4 3 1]
A =
1
15
-8
>> x=c/A
x =
-8.6667
3.0952
5.6190
Ax = c
x = A1c
x = A\c
Misalkan:
1 2 3
20
2 5 4 x = 15
4 3 1
8
>> x=A\c
x =
-1.0000
-4.7143
10.1429
expm
logm
sqrtm
>> A.*A
ans =
1
16
>> A./A'
ans =
1.0000
0.6667
1.5000
1.0000
>> A.\A'
ans =
1.0000
1.5000
0.6667
1.0000
>> A.^A
ans =
1
27
256
plot(x,y)
Misalkan:
x
2.7
7.4
20.1
54.6
148.4
>> x=[1,2,3,4,5]
x =
1
>> y=[2.7,7.4,20.1,54.6,148.4]
y =
2.7000
7.4000
20.1000
54.6000
148.4000
150
100
50
>> plot(x,y)
>> xlabel('x')
>> ylabel('y')
1.5
2.5
3
x
3.5
4.5
surf(x,y,z)
Misalkan:
x
z(x=1)
z(x=2)
z(x=3)
10
13
10
13
18
17
20
25
>> y=[1 2 3 4]
y =
z =
25
10
20
13
15
10
13
18
17
20
25
10
5
>> surf(x,y,z)
>> xlabel('x')
0
4
3
2.5
>> zlabel('z')
>> ylabel('y')
y
1.5
1
Nama
Fungsi
Garis alir
Terminal
Proses
Menyatakan perhitungan
atau manipulasi data.
Masukan/keluaran
Menyatakan masukan
atau keluaran data dan
informasi
Kondisi/keputusan
Menyatakan sebuah
perbandingan, pertanyaan
atau keputusan yang
menentukan lintasan
mana yang akan diikuti.
Konektor
Menyatakan perpindahan
halaman.
M-file
Sampai saat ini kita masih menjalankan perintah-perintah serta masukan
data dengan mengetikkannya secara langsung dalam command window. Tentunya
akan sangat merepotkan jika kita dihadapkan pada persoalan yang menuntut
pembuatan program yang sangat panjang berpuluh-puluh bahkan beratus-ratus
baris perintah. Untuk kemudahan dalam membuat program, MATLAB
menyediakan fasilitas m-file atau editor sebagai tempat untuk mengetikkan
perintah dan menyimpan program-program yang dibuat. Penulisan program dalam
m-file dapat dilakukan dengan dua cara, yaitu skrip m-file dan fungsi m-file.
Berikutnya akan dibahas satu per satu.
Skrip m-file
Skrip adalah file sederhana yang tidak memiliki input argumen dan output
argumen. Definisi lain yang mudah diingat, skrip adalah penulisan program
MATLAB dalam m-file dengan bentuk bukan fungsi. Sebagai contoh berikut ini
adalah penulisan perintah-perintah dalam m-file untuk membuat grafik 3D yang
telah dituliskan sebelumnya secara langsung pada command window. File ini
disimpan dengan nama coba_m_file.m
Fungsi m-file
Seperti yang telah dijelaskan sebelumnya selain dengan skrip kita dapat
juga melakukan pemrograman dalam bentuk lain yaitu fungsi m-file. Penjelasan
mengenai cara membuat fungsi m-file dilakukan dengan pendekatan contoh soal
kasus 1. Namun sebelum menginjak pada pembahasan cara membuat m-file, saya
akan mengajak untuk melihat beberapa fungsi yang telah ada dalam MATLAB
sebagai fungsi built in sebagai berikut.
Tabel 1.3 Fungsi built in MATLAB
Fungsi
Keterangan
sin(x)
sind(x)
cos(x)
cosd(x)
tan(x)
tand(x)
log(x)
log10(x)
log2(x)
exp(x)
sqrt(x)
Jawaban:
4
Vbola = r 3
3
Algoritma pemrograman
Mulai
Masukan harga
Jari-jari, r (m)
Hitung harga
Volume bola
V = 4/3**r^3
Harga Volume
Bola (m3)
Selesai
Penulisan program untuk kasus 1 kita dilakukan dengan dua cara, yaitu
dalam bentuk skrip dan fungsi .
V =
1.0e+003 *
Columns 1 through 5
0.0335
0.1131
Columns 6 through 9
1.4368
2.1447
0.2681
0.5236
3.0536
4.1888
10
0.9048
4500
4000
3500
Volume [m3 ]
3000
2500
2000
1500
1000
500
0
6
jari-jari [m]
10
0.2681
0.5236
3.0536
4.1888
0.9048
Eksekusi sebuah fungsi dapat pula dilakukan dengan perintah berikut ini.
feval(fungsi,x1,...,xn)
x1,....,xn adalah varibel bebas yang akan dievaluasi.
>> feval('kasus1',[2:10])
ans =
1.0e+003 *
Columns 1 through 5
0.0335
0.1131
0.2681
0.5236
3.0536
4.1888
0.9048
Columns 6 through 9
1.4368
2.1447
4500
4000
3500
Volume [m3 ]
3000
2500
2000
1500
1000
500
0
6
jari-jari [m]
10
Kontrol aliran
MATLAB memiliki kontrol aliran yang berguna dalam menentukan
berbagai keputusan selanjutnya sebuah program, diantaranya adalah for, if, while,
dan switch. Pernyataan relasi yang sering digunakan dalam kontrol aliran adalah
sebagai berikut:
==
sama dengan
>
<=
>=
&
~=
<
kurang dari
for
% ideal.m
clear
clc
R = 8.314;
%J/mol.K
T =[310:10:400];
%K
P =1e5;
%Pa
for i = 1:10
V(i)=R*T(i)/P;
%m3/mol
end
V
if
%nilai.m
x = input('masukkan nilai ujian=');
if x >= 80
disp('Nilai A')
elseif x >= 65
disp('Nilai B')
elseif x >= 55
disp('Nilai C')
elseif x >= 45
disp('Nilai D')
else
disp('Nilai E')
end
While
%diff.m
dif=1;
x2=7
while dif > 0.0005
x1=x2-cos(x2)/(1+x2);
dif=abs(x2-x1);
x2=x1
end
Switch
%pilih.m
method = 'Bilinear';
switch lower(method)
case {'linear','bilinear'}
disp('Method is linear')
case 'cubic'
disp('Method is cubic')
case 'nearest'
disp('Method is nearest')
otherwise
disp('Unknown method.')
end
Apabila
menemukan
kesulitan
dalam
melakukan
pemrograman
ln P = A B /(T + C )
Dengan
A = 14.0568 T = Temperatur (K)
B = 2825.42
C = -42.7089
Buat pula grafik P terhadap T-nya menggunakan rutin plot dalam MATLAB.
Nomor 3 (Equimolar Counterdiffusion)
Gas amoniak (A) berdifusi melalui pipa sepanjang 0,10 m yang berisi gas N2 (B)
pada tekanan 1,0132 x 105 Pa dan temperatur 298 K. Tekanan pada titik 1 PA,1 =
1,013 x 104 Pa dan pada titik 2 PA,2 = 0,507 x 104 Pa. Diffusivitas DAB = 0,230
x 10-4 m2/s. Laju diffusi gas amoniak (A) dapat dievaluasi menggunakan Hukum
Ficks berikut ini:
J A* =
DAB ( PA1 PA 2 )
[kmol. A /( s.m 2 )]
RT z
R = 8314 J/(kmol.K)
Buat sebuah algoritma dan program MATLAB berupa suatu fungsi dalam M-file
untuk menghitung laju diffusi gas amoniak.
Petunjuk : program terdiri atas 2 buah m-file. 1 buah untuk menulis fungsi, 1 buah untuk
mengeksekusi fungsi.
_____________________________________o0o_____________________________________
Bab 2
Sistem Persamaan Linier
2.1 Definisi Vektor-Vektor TSL (Terhubung Secara Linier)
Sehimpunan vektor x1, x2, ......, xn yang masing-masing berukuran m
disebut terhubung secara linier (TSL) jika dapat ditemukan sehimpunan
konstanta k1 , k2 ,...., kn dengan harga tidak semuanya nol, sehingga:
k1 x1 + k2 x2 + .... + kn xn = 0
Catatan:
0 adalah vektor yang semua elemennya nol berukuran m.
Contoh himpunan vektor TSL
1
2
3
x1 = 2 , x2 = 4 , x3 = 6
3
6
9
1
2
3 0
k2
k3
( xi ) x j
T
( xi ) x j
T
= 0 untuk i j dan
0 untuk i = j dengan i, j = 1, 2,..., n
Sehimpunan vektor-vektor yang ortogonal pasti TTSL, namun TTSL belum tentu
ortogonal. Diagram vennya sbb:
TTSL
Ortogonal
Contoh:
3
0.6
(1) x1 = , x2 =
1
1.8
0.6
x1T x2 = [3 1] = 1.8 1.8 = 0
1.8
3
x1T x1 = [3 1] = 9 + 1 = 10
1
ortogonal
( xi )
x j 0 hampir ortogonal.
Ortogonalisasi Gram-Schmidt
1. y1 = x1
( y1 )T x2
2. y2 = x2
y1
T
( y1 ) y1
( y1 )T x3
( y2 )T x3
3. y3 = x3
y1
y2
T
T
( y1 ) y1
( y2 ) y2
( y1 )T xi
( yi 1 )T xi
i. yi = xi
y1 KK
yi 1
T
T
( y1 ) y1
( yi 1 ) yi 1
Vektor-vektor y1 , y2 ,K , yn saling tegak lurus satu sama lain dan y1 juga tegak
lurus pada x1 , x2 ,K , x j 1 .
Contoh:
Ortogonalisasikan vektor-vektor kolom dari matrik A berikut ini.
1 2 3
A = 4 5 6
7 8 9
Jawaban:
x1 x2 x3
1 2 3
A = 4 5 6
7 8 9
Menghitung y1
y1 = x1 = [1 4 7 ]
Menghitung y2
( y1 )
1
y1 = [1 4 7 ] 4 = 1 + 16 + 49 = 66
7
( y1 )
2
x2 = [1 4 7 ] 5 = 2 + 20 + 56 = 78
8
( y )T x
78
T
T
y2 = x2 1 T 2 y1 = [ 2 5 8] [1 4 7 ] = [ 0.8182 0.2727 -0.2727 ]
66
( y1 ) y1
Menghitung y3
( y1 )
3
x3 = [1 4 7 ] 6 = 3 + 24 + 63 = 90
9
( y2 )
3
x3 = [ 0.8182 0.2727 -0.2727 ] 6 = 1.6364
9
( y2 )
0.8182
y2 = [ 0.8182 0.2727 -0.2727 ] 0.2727 = 0.8182
-0.2727
( y1 )T x3
( y2 )T x3
y3 = x3
y1
y2
T
T
( y1 ) y1
( y2 ) y2
90
1.6364
T
y3 = [3 6 9] [1 4 7 ]
[ 0.8182 0.2727 0.2727] = [ 0 0 0]
66
0.8182
Dapat disimpulkan bahwa banyaknya vektor-vektor kolom A yang TTSL
adalah 2.
Norma ke-1
n
x 1 = xi = x1 + x2 + ... + xn
i =1
A 1 = maks aij
j
(norma kolom)
i =1
Norma ke-2
1
n
2
x 2 = ( xi )
i =1
Panjang Vektor
A 2 Norma spektral
Norma Frobenius
n n
2
= ( aij )
i =1 j =1
Norma ke-
= maks xi
i
A = maks aij
i
j =1
norma baris
Contoh:
x = [1 2 3]
3
x 1 = xi = x1 + x2 + x3 = 1 + 2 + 3 = 6
i =1
2
3
2
x 2 = ( xi ) = x12 + x22 + x32 = (1) 2 + (2) 2 + (3) 2 = 1 + 4 + 9 = 14
i =1
= maks xi = 3 = 3
i
1 2 3
A = 4 5 6
7 8 9
1 + 4 + 7 = 12
1 + 2 + 3 = 6
4 + 5 + 6 = 15
= 24
7 + 8 + 9 = 24
A F = 1+ 4 + 9 +16 + 25 + 36 + 49 + 64 + 81 = 285
2 + 5 + 8 = 15
3 + 6 + 9 = 18
A 1 = 18
Nomor 1
Konstruksi sekumpulan vektor kolom yang saling tegak lurus dari vektor-vektor
kolom matrik A di bawah ini, dengan menggunakan ortogonalisasi Gram-Schmdt.
1 0 1 1 1
1 1 0 2 2
A = 1 1 2 0 4
3 1 2 4 0
0 1 1 1 3
Nomor 2
Buatlah
sebuah
pemrograman
program
MATLAB.
ortogonalisasi
Jangan
lupa
Gram-Schmidt
untuk
dalam
menyertakan
bahasa
algoritma
pemrogramannya.
3x1 + 18 x2 + 9 x3 = 18
2 x1 + 3x2 + 3x3 = 117
4 x1 +
x2 + 2 x3 = 283
3 18 9 | 18
A = 2 3 3 |117
4 1 2 |283
Langkah 1 Buat elemen di bawah a11 menjadi nol
Hitung:
l21 =
a21 2
=
a11 3
l31 =
a31 4
=
a11 3
Hitung:
Baris ke-2 baru = baris ke-2 lama l21 x baris ke-1
= [ 2 3 3 |117 ] 2 3 x [3 18 9|18]
= [ 0 9 3 |105]
Baris ke-3 baru = baris ke-3 lama l31 x baris ke-1
= [ 4 1 2 | 283] 4 3 x [3 18 9 |18]
= [ 0 23 10 | 259]
9 | 18
3 18
A = 0 9 3 | 105
0 23 10 | 259
Langkah 2
Hitung:
l32 =
a32 23
=
a22 9
Hitung:
Baris ke-3 baru = baris ke-3 lama l32 x baris ke-2
= [ 0 23 10 |105] 23 9 x [ 0 9 3 | 259]
= [ 0 0 7 3 | 28 3 ]
9
|
18
3 18
0 9 3 | 105
0 0 7 / 3 | 28 / 3
3 x1 + 18 x2 + 9 x3 = 18
9 x2 3 x3 = 105
73 x3 = 283
x3 = 4
x2 = 13
x1 = 72
Berikut ini permrograman metode Gauss dalam bahasa MATLAB 7
function x = Gauss(A , c)
%GAUSS Solves a set of linier algebraic equations by the Gauss
% elimination method.
% GAUSS(A,C) finds unknowns of a set of linier algebraic
% equations. A is the matrix of coefficients and C is the
% vector of constants.
%
% See also JORDAN, JACOBI.
%(c) by N. Mostoufi & A. Constantinides
%January 1,1999
c = (c(:).)
n = length(c);
[nr nc] = size(A);
% Check coefficient matrix and vector of constants
if nr ~= nc
error('Coefficient matrix is not square.')
end
if nr ~= n
error('Coefficient matrix and vector of constants do not have the same length')
end
% Check if the coefficient matrix is singular
if det(A) == 0
fprintf('\n Rank = %7.3g\n',rank(A))
error('The coefficient matrix is singular.')
end
unit = eye(n); % Unit matrix
order = [1 : n]; % Order of unknowns
aug = [A c]; % Augmented matrix
% Gauss elimination
for k = 1 : n-1
pivot = abs(aug(k , k));
prow = k;
pcol = k;
Kasus1
Kukus lewat jenuh bertemperatur 130 oC mengalir dalam sebuah pipa yang
memiliki diameter dalam 20 mm (D1), dan diameter luar 25 mm (D2). Pipa
diinsulasi setebal 40 mm [(D3 D2)/2]. Koefisien konveksi kukus (hi) = 1700
T2
T3
T1
Kukus, TS
Udara, Ta
hi D1 (TS T1 ) =
(T1 T2 )
ln ( D2 / D1 ) / ( 2 k s )
(T1 T2 )
(T2 T3 )
=
ln ( D2 / D1 ) / ( 2 k s ) ln ( D3 / D2 ) / ( 2 ki )
Perpindahan panas dari insulasi ke udara
(T2 T3 )
= hO D3 (T3 Ta )
ln ( D3 / D2 ) / ( 2 ki )
Ada tiga persamaan linier yang berhasil dirumuskan dari peneracaan energi
tersebut.
2k s
2k s
+ hi D1 T1
T2 = hi D1TS
ln
D
/
D
ln
D
/
D
(
)
(
)
2
1
2
1
ks
ks
ki
ki
+
T1
T2 +
T3 = 0
ln ( D2 / D1 )
ln ( D2 / D1 ) ln ( D3 / D2 )
ln ( D3 / D2 )
2 ki
2 ki
+ hO D3 T3 = hO D3Ta
T2
ln ( D3 / D2 )
ln ( D3 / D2 )
2k s
2k s
+ hi D1
ln ( D2 / D1 )
ln ( D2 / D1 )
T1 hi D1TS
ks
ks
ki
ki
T = 0
2
D
D
D
D
D
D
D
D
ln
/
ln
/
ln(
/
)
ln
/
(
(
(
2
1)
2
1)
3
2
3
2 )
T3 hO D3Ta
2 ki
2 ki
h
D
0
O 3
D
D
D
D
ln
/
ln
/
(
)
(
)
3
2
3
2
Berikut ini pemrograman MATLAB-nya.
%kasus2.m
clc
clear
% Input data
Ts = 130;
% oC
Ta = 25;
% oC
D1 = 20e-3;
% Diameter dalam pipa, m
D2 = 25e-3;
% Diameter luar pipa, m
Ith = 40e-3;
% Tebal insulasi, m
D3 = (D2 + 2*Ith);
% Diameter pipa + insulasi
hi = 1700; % Koefisien transfer panas bagian dalam (W/m2.K)
ho = 3 ;
% koefisien transfer panas bagian luar (W/m2.K)
ks = 45;
% Konduktivitas panas baja (W/m.K)
ki = 0.064;
% Konduktivitas panas insulasi (W/m.K)
% Matriks koefisien variabel
A = [2*ks/log(D2/D1)+hi*D1 , -2*ks/log(D2/D1) , 0
ks/log(D2/D1) , -(ks/log(D2/D1)+ki/log(D3/D2)) , ki/log(D3/D2)
0 , 2*ki/log(D3/D2) , -(2*ki/log(D3/D2)+ho*D3)];
% Matriks konstanta
c = [hi*D1*Ts ; 0 ; -ho*D3*Ta];
% Menyelesaikan sis pers. linier dengan fungsi invers MATLAB
T = inv(A)*c
Sebuah sistem persamaan linier dirumuskan dari Neraca massa & energi distribusi
uap pabrik (ditampilkan di bawah). Sistem tersebut terdiri dari 14 buah variabel xi
dengan i = 3,...,16 belum diketahui, dan yi adalah parameter yang telah diketahui.
xi dan yi dalam 1000 lb/h. Dengan menggunakan MATLAB hitunglah 14 variabel
(xi, i=3,,16) yang belum diketahui itu.
181.60 x3 132.57 x4 x5 = y1 y2 + y5 + y4 = 5.1
1.17 x3 x6 = 0
132.57 0.745 x7 = 61.2
x5 + x7 x8 x9 x10 + x15 = y7 + y8 y3 = 99.1
x8 + x9 + x10 + x11 x12 x13 = y7 = 8.4
x6 x15 = y6 y5 = 24.2
1.15(181.60) + x3 x6 + x12 + x16 = 1.15 y1 y9 + 0.4 = 19.7
181.60 4.594 x12 0.11x16 = y1 + 1.0235 y9 + 2.45 = 35.05
0.0423(181.60) + x11 = 0.0423 y1 = 2.88
0.016(181.60) + x4 = 0
x8 0.147 x16 = 0
x5 0.07 x14 = 0
0.0805(181.60) + x9 = 0
x12 x14 + x16 = 0.4 y9 = 97.9
Nomor 2
Ketik ulang program Gauss.m pada m-file MATLAB. Gunakan fungsi gauss itu
untuk menyelesaikan sistem persamaan linier pada nomor 1.
________________________________o0o_______________________________
Bab 3
Persamaan Tak Linier
Persamaan Linier
y = mx + c
y=x
LINIER
y
y = exp( x)
NON-LINIER
Gambar 3.2 Kurva tak linier
Contoh
Tak Linier
x2 4 x + 3 = 0
Persamaan Kuadrat
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
Dalam aplikasinya di bidang teknik kimia, persamaan tak linier memiliki peranan
yang sangat penting.
Tabel 3.2 Aplikasi Persamaan Tak Linier dalam bidang teknik kimia
Aplikasi Pers. Tak Linier
Contoh
H + N
o
0
Tout
out
out
P ,i
To
Termodinamika
Persamaan gas nyata/kubik,
Kesetimbangan reaksi
kimia,
P=
RT
a
2
V b V
dT N
Tin
in
in
P ,i
=0
To
(1
C p dT
G0o H 0o H 0o 1 C p
ln K +
+
+
dT
=0
RT0
RT T T0 R
R T
T0
T
n j z jF F
F (1 q ) = 0
j
1
=
j
(2
1) Persamaan kubik tersebut diusulkan oleh Johannes Diderik van der Waals
(1873), Fisikawan Belanda, peraih nobel Fisika pada tahun 1910.
2) Persamaan Underwood untuk distilasi multikomponen.
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
Contoh :
2 x sin{( x + y ) / 2} = 0
2 x cos{( x y ) / 2} = 0
f ( x ) = 0 x = .... ?
Ada berbagai metode numerik yang dapat digunakan untuk menyelesaikan
persaman tak linier tunggal, diantaranya:
z Metode Penyetengahan Interval
z Metode Substitusi Berurut
z Metode Wegstein
z Metode Interpolasi Linear
z Metode Newton-Raphson,dll.
Dalam diktat ini hanya akan diterangkan metode penyetengahan interval dan
metode Newton-Raphson..
Keunggulan
Sederhana
Kelemahan
Tebakan awal terdiri atas dua buah [a,b]
dan harus memenuhi f(a)*f(b)<0
2.
Pasti konvergen
1. Mulai
2. Definisikan persamaan tak linier yang akan dicari akarnya dan tetapkan
toleransinya.
Misalkan: f(x) = log(x) . Tol = 1e-5
3. Tetapkan dua buah tebakan awal a dan b.
Misalkan: a = 0.1 dan b = 10.
4. Hitung harga f(a) dan f(b)
Hitung: f(0.1) = log(0.1) = -1
f(10) = log(10) = 1
5. Periksa apakah syarat f(a) * f(b) < 0 terpenuhi. Jika syarat terpenuhi proses
dilanjutkan ke langkah berikutnya. Jika tidak kembali ke langkah 2.
Periksa: f(0.1) * f(10) = -1*1 = -1 < 0. Syarat terpenuhi proses berlanjut ke
langkah berikutnya.
6. Hitung harga m = (a + b) / 2
Hitung: m = (0.1 + 10)/2 = 5.05
7. Hitung harga f(m)
Hitung: f(5.05) = log(5.05) = 0.7033
8. Periksa apakah f(a) * f(m) > 0 terpenuhi. Jika terpenuhi, harga a diganti
dengan m. Jika tidak terpenuhi harga b yang diganti dengan m.
Periksa: f(0.1) * f(5.05) = -1*0.7033 = -0.7033 < 0. Syarat tidak terpenuhi
harga b diganti dengan m, sehingga b yang baru = 5.05.
9. Periksa kriteria iterasi, |(a - b)/a| > Tol. Jika kriteria iterasi terpenuhi proses
kembali ke langkah 5. Jika tidak dilanjutkan ke langkah berikutnya..
Periksa: |(0.1 5.05)/0.1| = 49.5 > 1e-5. Kriteria iterasi terpenuhi, maka
kembali ke langkah 5.
10. Hitung harga akar pembuat nol, x = (a + b) / 2
11. Selesai
Algoritma yang telah disusun dimuka, dapat juga dituliskan dalam bentuk
diagram Alir (flow chart) sebagai berikut:
1
mulai
m=(a+b)/2
Definisikan f(x)
dan toleransi
Hitung harga:
f(m)
Tetapkan harga
a dan b
f(a)*f(m)
y
Hitung harga:
f(a), f(b)
tid
a=m
f(a)=f(m)
b=m
f(b)=f(m)
ya
tidak
|(a-b)/a|>tol
f(a)*f(b)<
0
ya
tidak
x*=(a+b)/2
1
Selesai
Contoh:
Carilah akar-akar persamaan kuadrat x 2 + 4 x + 3 = 0 dengan menggunakan metode
penyetengahan interval!.
%kuadrat.m
function y = kuadrat(x)
y = x^2+4*x+3;
Metode Newton-Raphson
Keunggulan
Kelemahan
awal.
dicapai.
y
f ( xn )
0
xn
xn +1
f '( xn ) = gradien =
xn +1 = xn
f ( xn +1 ) f ( xn ) 0 f ( xn )
=
xn +1 xn
xn +1 xn
f ( xn )
f '( xn )
Metode Newton-Raphson.
f ( xn )
xn +1 = xn
f '( xn )
1. Mulai
2. Definisikan persamaan tak linier dan turunannya.
Misalkan: f(x) = log(x).
f ' ( x) = 1 /( x ln 10)
3. Tetapkan harga tebakan awal ( x0 ) dan besar toleransinya
Misalkan: x0 = 0.1 . Tol = 1e-5
4. Nyatakan x = x 0 dan x0 = x + 1 .
x = 0.1
x0=0.1+1=1.1
5. Periksa kriteria iterasi |(x x0)/x| > Tol. Jika kriteria iterasi terpenuhi
proses dilanjutkan. Jika kriteria iterasi tidak terpenuhi proses dihentikan.
Akar pembuat nol diperoleh.
6. Nyatakan x0 = x.
x0 = 0.1
7. Hitung harga f(x0) dan f(x0).
f(0.1) = -1
f(0.1) = 1/(0.1*ln10) = 4.343
8. Hitung harga x = x0
x = 0.1
f ( x0 )
f ' ( x0 )
(1)
= 0.3303
4.343
9. Kembali ke langkah 5
10. Selesai.
Mulai
Definisikan
f(x) dan f(x),
x0, tol
Nyatakan:
x = x0
x0 = x + 1
tidak
ya
Nyatakan:
x0 = x
Tampilkan
x* = x
Hitung harga:
f(x0) dan f(x0)
Selesai
Hitung harga:
x=x0-f(x0)/f(x0)
%NewRap.m
function [x iter] = NewRap(fungsi,dfungsi,x0,tol)
% fungsi = fungsi yang akan dicari akar-akarnya
% dfungsi = turunan pertama fungsi
% x0 = tebakan awal
% tol = toleransi
itermax = 100;
iter = 0;
x = x0;
x0 = x + 1;
% loop iterasi
while abs((x - x0)/x) > tol & iter <= itermax
iter = iter + 1;
x0 = x;
fx= feval(fungsi,x);
df= feval(dfungsi,x);
% Rumus Newton-Raphson
x = x0 - fx/df;
end
%kuadrat.m
function y = kuadrat(x)
y = x^2+4*x+3;
%dkuadrat.m
function dy = dkuadrat(x)
dy = 2*x+4;
Kita gunakan contoh kasus yang sama dengan contoh pada metode bisection.
y = x2 + 4x + 3 = 0
dy
= 2x + 4
dx
>> [x iter]=NewRap('kuadrat','dkuadrat',2,1e-6)
x =
-1.0000
Keunggulan
roots.m
Kelemahan
1. Hanya untuk pers. kuadrat
dan polinomial.
menjalankan rutin.
2. Tidak membutuhkan tebakan
mula.
fzero.m
tak linier.
Penggunaan roots:
Penulisan perintah roots di Command window MATLAB
C(1)*X^N + ... + C(N)*X + C(N+1)
x2 + 4 x 5 = 0
MATLAB Command window
>> C=[1 4 -5]
C =
1
-5
>> roots(C)
ans =
-5
1
Penggunaan fzero:
Penulisan fzero di MATLAB Command window
x =fzero(fungsi,x0)
Contoh penggunaan fzero:
x2 + 4 x + 3 = 0
Penulisan contoh di MATLAB Command window
>> fzero('x^2+4*x+3',0)
ans =
-1
Jawaban:
Persamaan Van der Waals
P=
RT
a
2
V b V
a=
27 R 2Tc 2
1 RTc
dan b =
64 Pc
8 Pc
Transformasi ke
dalam bentuk umum
pers.polinomial
Cp = 0.716 4.257 E 6T +
15.04
T
kJ
kg.K
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:
P=
RT
a
V b V (V + b)
Z 3 Z 2 + ( A B B 2 ) Z AB = 0
Dengan:
B=
bP
aP
PV
A= 2 2 Z =
RT
RT
RT
a=
0.4278R 2TC2
0.0867 RTC
;b =
PC
PC
2
T
2
= 1 + S 1
; S = 0.48508 + 1.55171 0.15613
T
Sistem persamaan tak linier merupkan persamaan tak linier yang terdiri atas lebih
dari satu buah persamaan tak linier.
Solusi Sistem Persamaan Tak Linier
Metode Newton
f ( x1 , x2 ) = 0
f ( x1 , x2 ) = 0
f1 (1)
x | x
1
f 2 (1)
x | x
1
f1 (1)
| x (1)
x2
f (1)
1 = 1
(1)
f 2 (1) (1)
f2
|x 2
x2
J = f
x ( n +1) = x ( n ) +
f1 ( x, y ) = x 3 3 xy 2 1/ 2 = 0
f 2 ( x, y ) = 3 x 2 y y 3 3 / 2 = 0
Langkah 1 Buat terlebih dahulu fungsi sistem persamaan taklinier dalam m-file.
%sistem.m
function f = sistem(x)
f=[x(1)^3-3*x(1)*x(2)^2-0.5
3*x(1)^2*x(2)-x(2)^3-sqrt(3)/2]
iter =
7
Langkah 1 Buat terlebih dahulu fungsi sistem persamaan taklinier dalam m-file.
1.5874
FVAL =
1.0e-010 *
0.1930
0.0966
Kasus 5
Reaksi reformasi kukus berlangsung menurut rangkaian reaksi kesetimbangan
berikut:
CH 4( g ) + H 2O( g )