MENGGUNAKAN MATLAB
0
F(X,Y )
-5
-10
2
3
2
0 1
0
-1
-2 -2
Y -3
X
Teguh Kurniawan, ST
Staf Pengajar Komputasi Proses Teknik Kimia
Jurusan Teknik Kimia-Fakultas Teknik
Universitas Sultan Ageng Tirtayasa
i
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
Bab 1
Pengenalan Matlab & Pengantar Pemrograman
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
Perintah menghitung
harga variabel c
>> b=[1;2;3]
b =
1
2
3
1 4 7
2 5 8
3 6 9
Vektor baris adalah matrik yang terdiri atas satu baris saja.
>> B=[2:6]
B =
2 3 4 5 6
Penulisan seperti di atas akan menghasilkan vektor baris dengan selisih 1
>> C=[2:2:6]
C =
2 4 6
Penulisan seperti di atas akan menghasilkan vektor baris dengan selisih 2
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 0 3 0 6⎤
⎢0 0 8 0 0 0 0 ⎥⎥
⎢
⎢0 0 0 7 9 0 0⎥
⎢ ⎥
⎢0 0 0 0 0 0 0⎥
⎢1 0 0 0 0 0 0⎥
⎢ ⎥
⎢7 7 0 0 0 0 0⎥
⎢0 0 0 0 0 9 0 ⎥⎦
⎣
Matrik segitiga atas
Matriks segitiga atas (disimbolkan U atau R) Adalah matriks bujur sangkar
yang semua elemen di bawah diagonalnya nol
⎡1 2 3 4⎤
⎢0 5 6 7 ⎥⎥
⎢ = U4
⎢0 0 8 9⎥
⎢ ⎥
⎣0 0 0 10 ⎦
Matrik identitas
Matrik identitas adalah matrik yang elemen diagonalnya bernilai 1 dan
elemen lainnya bernilai nol.
⎡1 0 0 0⎤
⎢0 1 0 0 ⎥⎥
⎢ = I4
⎢0 0 1 0⎥
⎢ ⎥
⎣0 0 0 1⎦
Perhatikan cara membuat matrik identitas tanpa harus mengetik elemen
per elemen anggota matrik sbb:
>> diag(ones(4,1))
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
atau
>> eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Matriks diagonal
Matrik diagonal adalah matrik yang elemen selain diagonalnya bernilai nol.
⎡1 0 0 0⎤
⎢0 2 0 0 ⎥⎥
⎢ = D4
⎢0 0 3 0⎥
⎢ ⎥
⎣0 0 0 4⎦
Perhatikan cara membuat matrik diagonal tanpa harus mengetik elemen per
elemen sbb:
>> diag(1:4)
ans =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
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 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
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
/ Pembagian matrik kanan (mis: B/A = B*inv(A))
\ Pembagian matrik kiri (mis: A\B = inv(A)*B)
+ Penambahan
- Pengurangan
Penjumlahan dan pengurangan
Hanya dapat dilakukan jika matrik-matrik yang akan dijumlahkan dan
dikurangkan memiliki orde sama.
⎡ 2 3 1 6 ⎤ ⎡ 2 3 1 6 ⎤ ⎡ 4 6 2 12 ⎤
⎢ 1 4 5 2 ⎥ + ⎢1 4 5 2 ⎥ = ⎢ 2 8 10 4 ⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
⎡ 2 3 1 6 ⎤ ⎡ 2 3 1 6 ⎤ ⎡0 0 0 0⎤
⎢1 4 5 2⎥ − ⎢1 4 5 2⎥ = ⎢0 0 0 0⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
2 3 1 6
1 4 5 2
>> A+A
ans =
4 6 2 12
2 8 10 4
>> A-A
ans =
0 0 0 0
0 0 0 0
Perkalian matrik
AB Syarat Æ jumlah kolom A = jumlah kolom baris B
AB ≠ BA
Misal
⎡1 ⎤
A = [1 2 3] B = ⎢⎢ 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 2 3
2 4 6
3 6 9
>> c=[20;15;-8]
c =
20
15
-8
>> x=A\c
x =
-1.0000
-4.7143
10.1429
>> A.*A
ans =
1 4
9 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 4
27 256
>> x=[1,2,3,4,5]
x =
1 2 3 4 5
>> y=[2.7,7.4,20.1,54.6,148.4]
y =
2.7000 7.4000 20.1000 54.6000 148.4000
150
100
y
>> plot(x,y) 50
>> xlabel('x')
>> ylabel('y')
0
1 1.5 2 2.5 3 3.5 4 4.5 5
x
>> x=[1 2 3]
x =
1 2 3
>> y=[1 2 3 4]
y =
1 2 3 4
z =
25
2 5 10 20
5 8 13 15
10 13 18
z
10
17 20 25
5
0
>> surf(x,y,z) 4
>> xlabel('x') 3
3
2.5
>> ylabel('y') 2 2
1.5
>> zlabel('z') y 1 1
x
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) harga sinus dari x, radian
sind(x) harga sinus dari x, derajat
cos(x) harga kosinus dari x, radian
cosd(x) harga kosinus dari x, derajat
tan(x) harga tangen dari x, radian
tand(x) harga tangen dari x, derajat
log(x) logaritma dengan basis bilangan natural e dari x
log10(x) logaritma dengan basis bilangan 10 dari x
log2(x) logaritma dengan basis bilangan 2 dari x
exp(x) eksponensial dari x
sqrt(x) akar kuadrat dari 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 .
r = 2:10
V =4/3*pi*r.^3
V =
1.0e+003 *
Columns 1 through 5
0.0335 0.1131 0.2681 0.5236 0.9048
Columns 6 through 9
1.4368 2.1447 3.0536 4.1888
4500
4000
3500
3000
Volume [m3 ]
2500
2000
1500
1000
500
0
2 3 4 5 6 7 8 9 10
jari-jari [m]
4500
4000
3500
3000
Volume [m3 ]
2500
2000
1500
1000
500
0
2 3 4 5 6 7 8 9 10
jari-jari [m]
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 > lebih besar dari
<= kurang dari sama dengan ~ operator logika tidak
>= lebih dari sama dengan & operator logika dan
~= tidak sama dengan | operator logika atau
< 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
ln P = A − B /(T + C )
Dengan
A = 14.0568 T = Temperatur (K)
B = 2825.42 P = Tekanan uap murni (kPa)
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
Fick’s berikut ini:
DAB ( PA1 − PA 2 )
J A* = [kmol. A /( s.m 2 )] R = 8314 J/(kmol.K)
RT Δz
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
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 ⎤
(−2) ⎢ 2⎥ + (1) ⎢ 4 ⎥ +(0) ⎢⎢6⎥⎥ = ⎢⎢0⎥⎥
⎢ ⎥ ⎢ ⎥
⎢⎣ 3 ⎥⎦ ⎢⎣ 6 ⎥⎦ ⎢⎣9 ⎥⎦ ⎢⎣0⎥⎦
k1 k2 k3
( xi ) x j = 0 untuk i ≠ j dan
T
Sehimpunan vektor-vektor yang ortogonal pasti TTSL, namun TTSL belum tentu
ortogonal. Diagram vennya sbb:
S
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 ⎦
ortogonal
⎡3⎤
x1T x1 = [3 −1] ⎢ ⎥ = 9 + 1 = 10
⎣ −1⎦
( xi ) x j ≈ 0 hampir ortogonal.
T
Pada praktek komputasi seringkali ditemukan
Ortogonalisasi Gram-Schmidt
Menegakkan sehimpunan vektor-vektor ortogonal y1,y2,....,yn dari suatu
himpunan vektor-vektor x1, x2,....,xn.
1. y1 = x1
⎡ ( y1 )T x2 ⎤
2. y2 = x2 − ⎢ ⎥ y1
⎣⎢ ( y1 ) y1 ⎥⎦
T
⎡ ( y1 )T x3 ⎤ ⎡ ( y2 )T x3 ⎤
3. y3 = x3 − ⎢ ⎥ y1 − ⎢ ⎥ y2
⎣⎢ ( y1 ) y1 ⎦⎥ ⎣⎢ ( y2 ) y2 ⎥⎦
T T
⎡ ( y1 )T xi ⎤ ⎡ ( yi −1 )T xi ⎤
i. yi = xi − ⎢ ⎥ y1 − KK − ⎢ ⎥ yi −1
⎣⎢ ( y1 ) y1 ⎦⎥ ⎣⎢ ( yi −1 ) yi −1 ⎦⎥
T T
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 ]
T
Menghitung y2
⎡1 ⎤
( y1 ) y1 = [1 4 7 ] ⎢⎢ 4 ⎥⎥ = 1 + 16 + 49 = 66
T
⎢⎣ 7 ⎥⎦
⎡ 2⎤
( y1 ) x2 = [1 4 7 ] ⎢⎢ 5 ⎥⎥ = 2 + 20 + 56 = 78
T
⎢⎣ 8 ⎥⎦
⎡ ( y )T x ⎤ 78
y2 = x2 − ⎢ 1 T 2 ⎥ y1 = [ 2 5 8] − [1 4 7 ] = [ 0.8182 0.2727 -0.2727 ]
T T
⎢⎣ ( y1 ) y1 ⎥⎦ 66
Menghitung y3
⎡3⎤
( y1 ) x3 = [1 4 7 ] ⎢⎢ 6 ⎥⎥ = 3 + 24 + 63 = 90
T
⎢⎣9 ⎥⎦
⎡3⎤
( y2 ) x3 = [ 0.8182 0.2727 -0.2727 ] ⎢⎢6 ⎥⎥ = 1.6364
T
⎢⎣9 ⎥⎦
⎡ 0.8182 ⎤
( y2 ) y2 = [ 0.8182 0.2727 -0.2727 ] ⎢⎢ 0.2727 ⎥⎥ = 0.8182
T
⎢⎣-0.2727 ⎥⎦
⎡ ( y1 )T x3 ⎤ ⎡ ( y2 )T x3 ⎤
y3 = x3 − ⎢ ⎥ y1 − ⎢ ⎥ y2
⎢⎣ ( y1 ) y1 ⎥⎦ ⎢⎣ ( y2 ) y2 ⎥⎦
T T
90 1.6364
y3 = [3 6 9] − [1 4 7 ] − [ 0.8182 0.2727 −0.2727] = [ 0 0 0]
T
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
n
A 1 = maks ∑ aij (norma kolom)
j
i =1
Norma ke-2
1
⎡ n 2⎤
2
x 2 = ⎢ ∑ ( xi ) ⎥
⎣ i =1 ⎦
⇒ Panjang Vektor
A 2 ≡ Norma spektral Memiliki sifat yang lebih baik daripada A 1 dan
Norma Frobenius
1
⎡ n n 2⎤
2
A F
= ⎢ ∑∑ ( aij ) ⎥
⎣ i =1 j =1 ⎦
Norma ke- ∞
x ∞
= maks xi
i
n
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
1
⎡ 3 2⎤
2
1 + −2 + 3 = 6
⎡ 1 −2 3⎤
A = ⎢⎢ −4 5 6 ⎥⎥ −4 + 5 + 6 = 15 A ∞
= 24
⎢⎣ 7 −8 9 ⎥⎦ 7 + −8 + 9 = 24
1 + −4 + 7 = 12 A F = 1+ 4 + 9 +16 + 25 + 36 + 49 + 64 + 81 = 285
−2 + 5 + −8 = 15
3 + 6 + 9 = 18
A 1 = 18
>> rank(A)
ans =
2
Nomor 2
Buatlah sebuah program ortogonalisasi Gram-Schmidt dalam bahasa
pemrograman MATLAB. Jangan lupa untuk menyertakan algoritma
pemrogramannya.
a31 4
l31 = =
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]
⎡ 3 18 9 | 18 ⎤
A = ⎢0 −9 −3 | 105 ⎥⎥
⎢
⎢⎣0 −23 −10 | 259 ⎥⎦
Langkah 2
Hitung:
a32 23
l32 = =
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 ]
⎡ 3 18 9 | 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
n = length(c);
[nr nc] = size(A);
% Gauss elimination
for k = 1 : n-1
pivot = abs(aug(k , k));
prow = k;
pcol = k;
x = zeros(n , 1);
% Back substitution
t(n) = aug(n , n + 1) / aug(n , n);
x(order(n)) = t(n);
for k = n - 1 : -1 : 1
t(k) = (aug(k,n+1) - sum(aug(k,k+1:n).*t(k+1:n))) / aug(k,k);
x(order(k)) = t(k);
end
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 )
Ada tiga persamaan linier yang berhasil dirumuskan dari peneracaan energi
tersebut.
⎡ 2k s ⎤ ⎡ 2k s ⎤
⎢ + hi D1 ⎥ T1 − ⎢ ⎥ T2 = hi D1TS
⎣ ln ( D2 / D1 ) ⎦ ⎣ ln ( D2 / D1 ) ⎦
⎡ ks ⎤ ⎡ ks ki ⎤ ⎡ ki ⎤
⎢ ⎥ T1 − ⎢ + ⎥ T2 + ⎢ ⎥ T3 = 0
⎣ ln ( D2 / D1 ) ⎦ ⎣ ln ( D2 / D1 ) ln ( D3 / D2 ) ⎦ ⎣ ln ( D3 / D2 ) ⎦
⎡ 2 ki ⎤ ⎡ 2 ki ⎤
⎢ ⎥ T2 − ⎢ + hO D3 ⎥ T3 = − hO D3Ta
⎣ ln ( D3 / D2 ) ⎦ ⎣ ln ( D3 / D2 ) ⎦
Ubah sistem persamaan linier menjadi bentuk matrik Ax = c, menjadi sbb:
⎡⎡ 2k s ⎤ ⎡ 2k s ⎤ ⎤
⎢⎢ + hi D1 ⎥ −⎢ ⎥ 0 ⎥
⎢ ⎣ ln ( D2 / D1 ) ⎦ ⎣ ln ( D2 / D1 ) ⎦ ⎥
⎢ ⎥ ⎡ T1 ⎤ ⎡ hi D1TS ⎤
⎢ ⎡ ks ⎤ ⎡
−⎢
ks
+
ki ⎤ ⎡ ki ⎤ ⎥ ⎢T ⎥ = ⎢ 0 ⎥
⎢ ⎢ ⎥ ⎥ ⎢ ⎥ ⎥⎢ 2⎥ ⎢ ⎥
⎢ ⎣ ln ( D2 / D1)⎦ ⎣ ln ( D 2 / D 1) ln( D 3 / D )
2 ⎦ ⎣ ln ( D 3 / D 2 )⎦
⎥ ⎢⎣T3 ⎥⎦ ⎢⎣ −hO D3Ta ⎥⎦
⎢ ⎡ 2 ki ⎤ ⎡ 2 ki ⎤⎥
⎢ 0 ⎢ ⎥ − ⎢ + hO 3 ⎥⎥
D
⎢⎣ ⎣ ln ( D 3 / D 2 ) ⎦ ⎣ ln ( D 3 / D 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 konstanta
c = [hi*D1*Ts ; 0 ; -ho*D3*Ta];
% Menyelesaikan sis pers. linier dengan fungsi invers MATLAB
T = inv(A)*c
129.7858
129.7678
48.1191
Nomor 1
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 y=x
LINIER x
Gambar 3.1 Kurva linier
Persamaan Tak Linier
Contoh:
y
y = exp( x)
NON-LINIER x
Gambar 3.2 Kurva tak linier
Persamaan Kuadrat x2 − 4 x + 3 = 0
Persamaan Polinomial x 4 + 6 x3 + 7 x 2 − 6 x − 8 = 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
Tout Tin
Neraca Massa dan Energi,
εΔH + N ∫C dT − N ∫C =0
o out out in in
0 P ,i P ,i
To To
(1
RT a
Termodinamika P= − 2
V −b V
Persamaan gas nyata/kubik,
Kesetimbangan reaksi
ΔG0o − ΔH 0o ΔH 0o 1 ΔC p ΔC p dT T o T o
kimia, ln K + + + ∫ dT − ∫ =0
RT0 RT T T0 R T0
R T
⎝ j =1 α j − φ ⎠
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 1 ( x1 , x 2 ,..., x N ) = 0
f 2 ( x1 , x 2 ,..., x N ) = 0
... 2 x − sin{( x + y ) / 2} = 0
Contoh :
f N ( x1 , x 2 ,..., x N ) = 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..
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 tid
Hitung harga:
a=m b=m
f(a), f(b) f(a)=f(m) f(b)=f(m)
ya
|(a-b)/a|>tol
tidak
f(a)*f(b)<
0
tidak
ya 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
Tabel 4.3 Karakteristik metode penyetengahan interval
No Keunggulan Kelemahan
1. Hanya butuh satu tebakan Kekonvergenan adakalanya gagal
awal. dicapai.
2. Laju konvergensi cepat
f ( xn )
0 xn xn +1 x
Gambar 3.4 Metode newton-Raphson
f ( xn +1 ) − f ( xn ) 0 − f ( xn )
f '( xn ) = gradien = =
xn +1 − xn xn +1 − xn
f ( xn )
xn +1 = xn −
f '( xn )
f ( xn )
Metode Newton-Raphson. xn +1 = xn −
f '( xn )
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
f ( x0 )
8. Hitung harga x = x0 −
f ' ( x0 )
(−1)
x = 0.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: Tampilkan
x0 = x x* = x
Hitung harga:
Selesai
f(x0) dan f’(x0)
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
iter =
6
>> [x iter]=NewRap('kuadrat','dkuadrat',-4,1e-6)
x =
-3.0000
iter =
5
Penggunaan roots:
Penulisan perintah roots di Command window MATLAB
C(1)*X^N + ... + C(N)*X + C(N+1)
C =
1 4 -5
>> roots(C)
ans =
-5
1
Penggunaan fzero:
Penulisan fzero di MATLAB Command window
x =fzero(‘fungsi’,x0)
ans =
-1
y = x^2+4*x+3
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 27 R 2Tc 2 1 RTc
P= − 2 a= dan b =
V −b V 64 Pc 8 Pc
Transformasi ke
dalam bentuk umum
pers.polinomial
% kasus3.m
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
>>kasus3
masukan tekanan, Pa = 9.4573e5
masukan temperatur, K = 350
vol =
2.6669
0.3354
0.1910
15.04 ⎡ kJ ⎤
Cp = 0.716 − 4.257 E −6T + ⎢ kg.K ⎥
T ⎣ ⎦
Tentukan temperatur pada saat Cp = 1 kJ/kg.K !
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α
P= −
V − b V (V + b)
Dalam bentuk persamaan polinomial menjadi sebagai berikut::
Z 3 − Z 2 + ( A − B − B 2 ) Z − AB = 0
Dengan:
bP α aP PV
B= A= 2 2 Z =
RT RT RT
⎢⎣ ⎝ TC ⎠⎥ ⎦
(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 !!.
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.
X=
2.5198 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 )
CO( g ) + 3H 2( g ) R-1
CO( g ) + H 2O( g )
CO2( g ) + H 2 R-2
Jawaban
Misal ditetapkan basis perhitungan 10 mol gas umpan
e1 = derajat reaksi dari reaksi pertama
e2 = derajat reaksi dari reaksi kedua
Fraksi mol kesetimbangan setiap komponen dapat dinyatakan sebagai berikut:
e1 − e2 3e1 + e2 8 − e1 − e2
YCO = YH 2 = YH 2O =
10 + 2e1 10 + 2e1 10 + 2e1
e2 2 − e1
YCO2 = YCH 4 =
10 + 2e1 10 + 2e1
Persamaan konstanta kesetimbangan dinyatakan sebagai berikut:
YCOYH32 P 2 YCO2 YH 2
K1 = K2 =
YCH 4 YH 2O YCOYH 2O
( e1 − e2 )( 3e1 − e2 )
3
= K1
( 2 − e1 )(8 − e1 − e2 )(10 + 2e1 )
2
e2 ( 3e1 + e2 )
=K
( e1 − e2 )( 8 − e1 − e2 ) 2
clear
clc
K1 = input(‘Masukan konstanta kst. reaksi 1 = ');
K2 = input(‘Masukan konstanta kst. reaksi 2 = ');
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:
T = temperatur reaktor, oC
T0 = temperatur referensi, 25 oC
Dengan τadalah waktu tinggal dalam sekon, dan k adalah laju reaksi spesifik
W.s/(mol.K).
_______________________________o0o________________________________
Bab 4
Optimisasi
Titik
maksimum
0
F(X,Y )
-5
-10
2
Titik 3
2
minimum
0 1
0
-1
-2 -2
Y -3
X
[x,fval,exitflag] = fminsearch(fun,x0)
keterangan:
fun = Fungsi yang akan diminimumkan atau dimaksimumkan
x0 = Tebakan awal
x = Harga x yang menyebabkan fungsi minimum atau maksimum
fval = Nilai maksimum atau minimum.
exitflag = Kriteria penghentian proses iterasi. Harga x mencapai kekonvergenan
jika exitflag bernilai 1.
Jawaban
%multivaribel.m
function y = multivariabel(x);
y = (x(1)-3)^2 + 0.5*(x(2)-4)^2 + 3;
%kasus12.m
[x,fval,exitflag] = fminsearch('multivariabel',[1,16])
>> kasus12
x =
3.0000 4.0000
fval =
3.0000
exitflag =
1
Tugas 11 Optimisasi
Nomor 2: Rosenbrock
Carilah titik minimum dari fungsi multidimensional Rosenbrock berikut.
f ( x) = 100( x2 − x12 ) 2 + (1 − x1 ) 2
________________________________o0o_______________________________
Bab 5
Regresi Linier dan Non Linier
Jumlah kuadrat terkecil dari selisih antara model dengan data sbb
n n
S = ∑ [ ymodel ( xi ) − yi ] = ∑ [ a0 xi + a1 − yi ]
2 2
i =1 i =1
∂S n
= 2∑ xi ( a0 xi + a1 − yi ) = 0
∂a0 i =1
∑ x (a x + a − y ) = 0
i =1
i 0 i 1 i
n n n
∑x a +∑xa =∑x y
i =1
2
i 0
i =1
i 1
i =1
i i ............................................(i
∂S n
= 2∑ ( xi a0 + a1 − yi ) = 0
∂a1 i =1
∑(a x + a − y ) = 0
i =1
0 i 1 i
n n
∑ xi a0 + na1 = ∑ yi .............................................................(ii
i =1 i =1
Kasus 1
Harga konduktivitas alumunium pada berbagai temperatur sbb
T (K) 300 400 500 600 800
k (Btu/(h×ft2)(°F/ft) 273 240 237 232 220
Model matematik dapat diwakili dengan menggunakan persamaan linier
k = a0T + a1
Untuk mencari harga a0 dan a1 dapat menggunakan metode jumlah selisih kuadrat
terkecil seperti yang telah dijelaskan sebelumnya.
%konduktivitas.m
clear
clc
T=[4,5,6,8]*100; % Absis
k=[240,237,232,220]; % Ordinat
n=length(k);
A = [sum(T.^2),sum(T)
sum(T), n];
c = [sum(k.*T)
sum(k)];
a = A\c
kmod = a(1)*T +a(2);
S = sum((k-kmod).^2)
Hasil pada command window
>>konduktivitas
a =
-0.0511
261.6571
S =
3.8857
%konduktivitas2
T = [4,5,6,8]*100; % Absis
K = [240,237,232,220]; % Ordinat
[P,S] = polyfit(T,k,1)
>>konduktivitas2
P =
-0.0511 261.6571
S =
R: [2x2 double]
df: 2
normr: 1.9712
5.2 Linierisasi
Seringkali ditemukan persamaan tak linier dalam permasalah real teknk kimia.
Tentunya kita tak dapat begitu daja mengalurkan data-data dengan menggunakan
pemodelan linier. Agar dapat dimodelkan dengan pemodelan linier, maka
persamaan tak linier itu harus dilinierisasi terlebih dahulu. Berikut ini
pemaparannya.
LINIERISASI
y = ae bx ln y = ln(aebx )
ln y = bx + ln a
x
y= x x/y a b
(ax + b)
y = a/ x+b 1/x y a b
Kasus
Suatu reaksi berorde n memiliki laju reaksi sbb:
r = kC An
Apabila volume reaktor partaian (batch) konstan, persamaan laju reaksi menjadi
sbb:
dC A
= − kC An
dt
Tentukan orde laju reaksi tersebut jika diketahui data-data eksperimen sbb:
Jawaban:
dC A
= − kC An
dt
⎛ dC ⎞
ln ⎜ − A ⎟ = n ln C A + ln k
⎝ dt ⎠
%linierisasi
t = [0:10:40]; % waktu
CA = [1,0.50,0.33,0.25,0.20]; %konsentrasi A
dCAdt = -[0.1,0.025,0.0111,0.00625,0.00400]; %Laju
y = log(-dCAdt);
x = log(CA);
[P S] = polyfit(x,y,1);
n = P(1) %orde reaksi
k = exp(P(2)) %konstanta laju reaksi
∂S n
= −2∑ x1,i ( yi − a0 x1,i − a1 x2,i − a2 ) = 0
∂a0 i =1
∑ (x
i =1
1,i yi − x1,2i a0 − x1,i x2,i a1 − x1,i a2 ) = 0
n n n n
∑x
i =1
2
1,i
a0 + ∑ x1,i x2,i a1 + ∑ x1,i a2 = ∑ x1,i yi
i =1 i =1 i =1
∂S n
= −2∑ x2,i ( yi − a0 x1,i − a1 x2,i − a2 ) = 0
∂a1 i =1
∑ (x
i =1
2,i yi − x1,i x2,i a0 − x 2,2 i a1 − x2,i a2 ) = 0
n n n n
∑x
i =1
x a + ∑ x 2 ,i a1 + ∑ x2,i a2 = ∑ x2,i yi
1,i 2,i 0
i =1
2
i =1 i =1
∂S n
= −2∑ ( yi − a0 x1,i − a1 x2,i − a2 ) = 0
∂a2 i =1
n n n
∑x
i =1
1,i 0 a + ∑ x2,i a1 + na2 = ∑ yi
i =1 i =1
Ketiga buah persamaan linier tersebut dapat dijelmakan dalam matrik sbb:
⎡ n 2 n n
⎤ ⎡ n ⎤
⎢ ∑ x1,i ∑ x1,i x2,i ∑ x1,i ⎥ ⎢ ∑ x1,i yi ⎥
⎢ i =1 i =1 i =1
⎥ ⎡ a0 ⎤ ⎢ i =1 ⎥
⎢ n n n
⎥⎢ ⎥ ⎢ n ⎥
⎢ ∑ x1,i x2,i ∑x ∑ x2,i ⎥ ⎢ a1 ⎥ = ⎢ ∑ x2,i yi ⎥
2
2,i
⎢ i =1 i =1 i =1
⎥ ⎣⎢ a2 ⎦⎥ ⎢ i =1 ⎥
⎢ n n
⎥ ⎢ n ⎥
⎢ ∑ x1,i ∑x 2,i n ⎥ ⎢ ∑ yi ⎥
⎣ i =1 i =1 ⎦ ⎣ i =1 ⎦
Kasus
Perhatikan data-data reaksi non-isotermal suatu reaksi reversibel berikut ini:
A ⎯⎯
r
→P
Tabel 5.3 Data laju reaksi
CA(mol/liter) Temperatur (K) Laju reaksi (mol/liter.s)
1 373 1.508
0.023 395 2.936
1.15 365 1.293
0.87 400 3.242
1.05 405 4.566
0.75 388 1.899
0.55 410 2.780
0.65 380 1.255
% multivariabel
clear
clc
CA = [1,0.023,1.15,0.87,1.05,0.75,0.55,0.65]; %mol/liter
T = [373,395,365,400,405,388,410,380]; %K
r = [1.508,2.936,1.293,3.242,4.566,1.899,2.780,1.255];%mol/liter.s
y = log(r);
x1 = log(CA);
x2 =-1./(0.082*T);
A = [sum(x1.^2),sum(x1.*x2), sum(x1)
sum(x1.*x2),sum(x2.^2),sum(x2)
sum(x1),sum(x2),length(r)];
c = [sum(x1.*y)
sum(x2.*y)
sum(y)];
a = A\c
2
n ⎛ ⎛ a1 ⎞ ⎞
S = ∑ ⎜⎜ yi − exp ⎜ a0 + ⎟⎟
i =1 ⎝ ⎝ ( xi + a2 ) ⎠ ⎟⎠
[beta,R] = nlinfit(x,y,modelfun,beta0)
Kasus
Tabel 3.3 Tekanan uap dari Benzena (Perry)
Temperatur, T Tekanan, P
o
C (mmHg)
-36.7 1
-19.6 5
-11.5 10
-2.6 20
7.6 40
15.4 60
26.1 100
42.2 200
60.6 400
80.1 760
Persamaan polynomial
P ( x) = a0 + a1 x + a2 x 2 + a3 x3 + ... + an x n
Persamaan Clapeyron
B
log( P ) = A +
T
Persamaan Riedel
B
log( P) = A + + C log(T ) + DT β
T
dengan harga β = 2 .
a. Korelasikan data dengan berbagai orde persamaan polynomial dengan
menganggap temperatur absolut (Kelvin) adalah variabel bebas dan P
adalah variabel terikat.
b. Korelasikan data dengan menggunakan persamaan Clapeyron
c. Korelasikan data menggunakan persamaan Riedel
d. Diskusikan persamaan manakah yang terbaik mewakili data-data
eksperimental tersebut.
Jawab:
a. Polynom orde 2, 3, 4, 5
%polynom
clear
clc
T =[-36.7,-19.6,-11.5,-2.6,7.6,15.4,26.1,42.2,60.6,80.1]+273;%K
P = [1 5 10 20 40 60 100 200 400 760];%mmHg
N =length(P);
P2 = polyfit(T,P,2)
Pmod2 = polyval(P2,T); R2 = Pmod2-P; Var2 = sum(R2.^2)/(N-2)
P3 = polyfit(T,P,3)
Pmod3 = polyval(P3,T); R3 = Pmod2-P; Var3 = sum(R3.^2)/(N-3)
P4 = polyfit(T,P,4)
Pmod4 = polyval(P4,T); R4 = Pmod2-P; Var4 = sum(R4.^2)/(N-4)
P5 = polyfit(T,P,5)
Pmod5 = polyval(P5,T); R5 = Pmod2-P; Var5 = sum(R5.^2)/(N-5)
Hasil di Command Window
P2 =
1.0e+003 *
0.0001 -0.0450 5.8560
Var2 =
1.0647e+003
Warning: Polynomial is badly conditioned. Remove repeated data
points
or try centering and scaling as described in HELP
POLYFIT.
> In polyfit at 81
In polinom at 9
P3 =
1.0e+004 *
0.0000 -0.0001 0.0146 -1.2519
Var3 =
1.2168e+003
Warning: Polynomial is badly conditioned. Remove repeated data
points
or try centering and scaling as described in HELP
POLYFIT.
> In polyfit at 81
In polinom at 11
P4 =
1.0e+004 *
0.0000 -0.0000 0.0001 -0.0248 1.5881
Var4 =
1.4196e+003
Warning: Polynomial is badly conditioned. Remove repeated data
points
or try centering and scaling as described in HELP
POLYFIT.
> In polyfit at 81
In polinom at 13
P5 =
1.0e+004 *
-0.0000 0.0000 -0.0000 0.0002 -0.0339 2.1109
Var5 =
1.7035e+003
b. Persamaan Clapeyron
%clapeyron.m
function logP = clapeyron(a,T);
logP = a(1)+a(2)./T; %Persamaan Clapeyron
clear
clc
T =[-36.7,-19.6,-11.5,-2.6,7.6,15.4,26.1,42.2,60.6,80.1];
P = [1 5 10 20 40 60 100 200 400 760];
logP = log10(P);
a0 = [0.1 0.3];
[a R]=nlinfit(T,logP,'clapeyron',a0)
N = length(P); z = length(a0);
Variance = sum(R.^2)/(N-z)
c. Persamaan Riedel
%riedel.m
function logP = riedel(a,T)
logP = a(1)+a(2)./T+a(3)*log10(T)+a(4)*T.^2;
%run_riedel.m
clear
clc
T =[-36.7,-19.6,-11.5,-2.6,7.6,15.4,26.1,42.2,60.6,80.1]+273;%K
P =[1 5 10 20 40 60 100 200 400 760];%mmHg
d. Pembahasan
Tugas
Nomor 1
Harga viskositas air (centipoise) telah diukur pada berbagai temperatur. Hasil dari
eksperimen disajikan dibawah ini. Menggunakan regresi linier ganda (multiple
regresi linier), carilah konstanta-konstanta yang sesuan dengan persamaan
berikut:
1
= k1 + k2T + k3T 2
μ
T(oC) 10 20 30 40 50 60 70
μ (cp) 1.308 1.005 0.801 0.656 0.549 0.469 0.406
Nomor 2
Sebuah reaksi heterogen diketahui terjadi pada laju yang dapat digambarkan oleh
model Langmuir-Hinshelwood berikut ini:
k1 PA
r=
(1 + K A PA + K R PR ) 2
Dari pengukuran laju awal, k1 ditentukan sebagai 0.015 mol/s.g-cat.atm, pada 400
K. Dengan menggunakan data laju reaksi pada 400 K, perkirakan nilai dari KA
dan KR.
PA 1 0.9 0.8 0.7 0.6 0.5 0.4
PR 0 0.1 0.2 0.3 0.4 0.5 0.6
r 3.4x10-5 3.6x10-5 3.7x10-5 3.9x10-5 4.0x10-5 4.1x10-5 4.2x10-5
________________________________o0o______________________________
Bab 6
Integrasi
(Under construction)
6.1 Metode Trapesium
f(x)
f(b)
f(a)
a b x
f (a) + f (b)
b
∫ f ( x)dx = (b − a)
a
2
x2
h
∫ f ( x)dx = 3 ( f ( x ) + 4 f ( x ) + f ( x ) )
x0
0 1 2
Kasus 1
Dua buah besaran yang sangat penting dalam pembelajaran proses-proses
fermentasi adalan laju pembebasan CO2 dan laju pengambilan O2. Hal tersebut
dihitung dari analisis eksperimental dari gas masuk dan gas keluar fermentor, dan
laju alir, temperatur dan tekanan dari gas-gas ini. Rasio pembebasan CO2 terhadap
pengambilan O2 menghasilkan RQ (Respiratory Quotient) yang merupakan
barometer aktivitas metabolik dari mikroorganisme. Laju di atas dapat
dintegrasikan untuk memperoleh jumlah keseluruhan dari CO2 yang diproduksi
dan oksigen yang dikonsumsi selama fermentasi. Tabel berikut menunjukan laju
respirasi dihtung dari fermentasi Penicillium chrysogenum yang menghasilkan
antibiotik penicilin.
Hitunglah jumlah keseluruhan CO2 yang dihasilkan dan Oksigen yang dikonsumsi
selama fermentasi berlangsung.
%Respiratory_Quotient
clear
clc
CO2 = trapz(t,dCO2dt)
O2 = trapz(t,dO2dt)
RQ = CO2/O2
Q = quad(fungsi,A,B)
Kasus 2
Harga kapasitas panas suatu material dapat dievaluasi dengan menggunakan
persamaan sbb:
Hitunglah besar entalpi material sebanyak 1 gram pada rentang temperatur -100
o
C s.d 200 oC dengan rumus sbb:
T2
ΔH = m ∫ c(T )dT
T1
%kapasitas.m
function cp = kapasitas(T)
cp=0.132+1.56e-4.*T+2.64e-7*T.^2;
%runkapasitas.m
Q = quad('kapasitas',-100,200)
>> runkapasitas
Q =
42.7320
%integrnd.m
function z = integrnd(x, y)
z = y*sin(x)+x*cos(y);
%run_integrnd.m
Q = dblquad(@integrnd,pi,2*pi,0,pi);
%intgrnd3
function f = integrnd3(x,y,z)
f = y*sin(x)+z*cos(x);
%run_integrnd3
Q = triplequad('integrnd3', 0, pi, 0, 1, -1, 1)
Tugas
Nomor 1
Lakukan komputasi yang sama seperti pada kasus 1, namun dengan massa
material 2000 gram dan temperatur -200 s.d 100 oC.
Nomor 2
Profil kecepatan dari partikel pasir unggun terfluidakan dengan udara pada
kecepatan 1 m/s diberikan pada tabel Tabel 1 dan Tabel 2. Hitunglah kecepatan
gradien aksial ( ∂Vz / ∂z , ∂Vr / ∂z ). Plot rata-rata gradien z versus posisi radial dan
bandingkanlah besar ordenya.
Bab 7
Persamaan Diferensial Biasa (PDB)
Definisi PDB
Persamaan diferensial biasa adalah persamaan diferensial yang terdiri atas fungsi
turunan satu buah variabel bebas.
Contoh:
Persamaan gaya geser (shear stress) pada aliran fluida dirumuskan sbb.
dτ xz
= ρg
dx
Perhatikan PDB hanya memiliki satu buah variabel bebas yaitu x dan satu variabel
terikat yaitu τxz.
Aplikasi PDB
PDB banyak ditemukan pada pemodelan-pemodelan teknik reaktor, kinetika
reaksi kimia, peristiwa-peristiwa perpindahan dll.
Klasifikasi PDB
Berdasarkan ordenya PDB terdiri atas tiga jenis (paling umum ditemukan dalam
permasalahan teknik kimia).
dy
Orde 1 + y = kx
dx
d2y dy
Orde 2 2
+y = kx
dx dx
2
d3y d2y ⎛ dy ⎞
Orde 3 3
+ a 2
+ b ⎜ ⎟ = kx
dx dx ⎝ dx ⎠
dny d n −1 y dy
bo ( x ) n
+ b1 ( x ) n −1
+ ... + bn −1 ( x ) + bn ( x ) y = R ( x )
dx dx dx
2. Taklinier
PDB yang tidak memenuhi persamaan umum PDB linier di muka
dikelompokan ke dalam PDB tak linier.
harga x berbeda
Transformasi PDB orde 4 linier tersebut akan menghasilkan 4 buah PDB linier
orde 1.
Misalkan:
z = y1 dy1
= y2
dz dy1 dt
= = y2 ⎡ dydt1 ⎤ ⎡ 0 1 0 0 ⎤ ⎡ y1 ⎤
dt dt dy2 ⎢ dy2 ⎥ ⎢
1 0 ⎥⎥ ⎢⎢ y2 ⎥⎥
Maka PDB Penulisan
= y3
d 2 z dy2 orde 4 dapat dt dalam bentuk ⎢ dt ⎥ = ⎢ 0 0
= = y3 dituliskan sbb: matrik sbb: ⎢ dy3 ⎥ ⎢ 0 0 0 1 ⎥ ⎢ y3 ⎥
dt 2 dt dy3 ⎢ dydt ⎥ ⎢
= y4 ⎥⎢ ⎥
d 3 z dy3 dt ⎢⎣ dt4 ⎥⎦ ⎣ −3 6 2 −5⎦ ⎢⎣ y4 ⎥⎦
= = y4
dt 3 dt dy4
= −3 y1 + 6 y2 + 2 y3 − 5 y4
d 4 z dy4 dt
=
dt 4 dt
Contoh 2:
d4z d 3z d 2z dz
4
+ 5 3
− 2 2
− 6 + 3z = e−t
dt dt dt dt
Transformasi PDB orde 4 linier tersebut akan menghasilkan 5 buah PDB linier
orde 1.
Misalkan:
z = y1
dz dy1 dy1
= = y2 = y2
dt dt dt
d 2 z dy2 dy2
= = y3 Maka PDB = y3
dt 2 dt dt
orde 4 dapat
d 3 z dy3 dituliskan sbb: dy3
= = y4 = y4
dt 3 dt dt
d 4 z dy4 dy4
= = −3 y1 + 6 y2 + 2 y3 − 5 y4 + y5
dt 4 dt dt
−t
y5 = e dy5
= − y5
dt Penulisan
dy5 dalam
= −e − t = − y5
dt bentuk
matrik sbb:
⎡ dydt1 ⎤ ⎡ 0 1 0 0 0 ⎤ ⎡ y1 ⎤
⎢ dy2 ⎥ ⎢
⎢ dt ⎥ ⎢ 0 0 1 0 0 ⎥⎥ ⎢⎢ y2 ⎥⎥
⎢ dy3 ⎥ = ⎢ 0 0 0 1 0 ⎥ ⎢ y3 ⎥
⎢ dt ⎥ ⎢ ⎥⎢ ⎥
⎢ dydt4 ⎥ ⎢ −3 6 2 −5 1 ⎥ ⎢ y4 ⎥
⎢ dy ⎥ ⎢
⎢⎣ dt5 ⎥⎦ ⎣ 0 0 0 0 −1⎥⎦ ⎢⎣ y5 ⎥⎦
Contoh 3:
3
d 3z 2
2 d z ⎛ dz ⎞
3
+ z 2
− ⎜ ⎟ − 2z = 0
dx dx ⎝ dx ⎠
Transformasi PDB orde 3 taklinier.
Misalkan:
z = y1
dy1
dz dy1 = y2
= = y2 dx
dx dx Maka PDB dy2
d 2 z dy2 orde 3 taklinier = y3
= = y3 dituliskan sbb: dx
dx 2 dx dy3
d 3 z dy3 = 2 y1 − y12 y3 + y23
= dx
dx 3 dx
PDB taklinier tidak dapat dituliskan dalam bentuk matrik.
Contoh 4:
d 3 z 3 d 2 z 2 dz
+t −t + 5z = 0
dt 3 dt 2 dt
Transformasi PDB orde 3 taklinier.
Misalkan:
z = y1
dz dy1 dy1
= = y2 = y2
dt dt dt
d 2 z dy2 Maka PDB dy2
= = y3 orde 3 taklinier = y3
dt 2 dt dituliskan sbb: dt
d 3 z dy3 dy3
= = −5 y1 + y42 y2 − y43 y3
dt 3 dt dt
y4 = t dy4
=1
dy4 dt
=1
dt
PDB taklinier tidak dapat dituliskan dalam bentuk matrik.
Keterangan:
A adalah sebuah matrik kubus
λk adalah nilai eigen
Berikut ini akan dipaparkan cara menghitung nilai dan vektor eigen secara
analitik.
Kasus 6
Tentukanlah vektor dan nilai eigen dari matrik A berikut ini dengan menggunakan
cara analitik.
⎡1 0 3 ⎤
A = ⎢⎢0 2 1 ⎥⎥
⎣⎢ 3 1 −1⎦⎥
Jawaban:
( A − λk I ) w[ k ] = 0
det ( A − λk I ) = 0
(1 − λ ) 0 3
0 (2 − λ ) 1 =0
3 −1 (−1 − λ )
(1 − λ ) 0 3 (1 − λ ) 0
0 (2 − λ ) 1 0 (2 − λ ) = 0
3 −1 (−1 − λ ) 3 −1
Karena vektor eigen (w) tidak bernilai nol, maka kita misalkan harga w3 sebagai
basis bernilai 1.
(1 − λ ) w1 + 3w3 = 0
(2 − λ ) w2 + w3 = 0
Misalkan w3 = 1, maka system persamaan linier menjadi
−3
w1 =
(1 − λ )
(1 − λ ) w1 = −3 −1
w2 =
(2 − λ ) w2 = −1 (2 − λ )
w3 = 1
Masukan harga nilai eigen
Untuk:
λ1 = 3.4211 λ2 = −3.2880 λ3 = 1.8669
w[1]
2
= (1.23912
+ 0.7037 2 + 12 ) = 1.741
⎡ 1.2391 ⎤
⎢ 1.741 ⎥ ⎡0.7117 ⎤
w[1] = ⎢ 0.7037 ⎥ = ⎢ 0.4042 ⎥
⎢ 1.741⎥ ⎢ ⎥
⎢ 1 ⎥ ⎣ ⎢ 0.5744 ⎥⎦
⎢⎣ 1.741 ⎦ ⎥
w[2]
2
= ( 0.6996 2
+ 0.18912 + 12 ) = 1.235
⎡ −0.6996 ⎤
⎢ 1.235⎥ ⎡ −0.5665⎤
w[2] = ⎢ −0.1891 ⎥ = ⎢ −0.1531⎥
⎢ 1.235 ⎥ ⎢ ⎥
⎢ 1 ⎥ ⎢⎣ 0.8097 ⎥⎦
⎢⎣ 1.235 ⎥⎦
w[3]
2
= ( 3.4607 2
+ 7.51312 + 12 ) = 8.332
⎡ 3.4607 ⎤
⎢ 8.332 ⎥ ⎡ 0.4153 ⎤
w[3] = ⎢ −7.5131 ⎥ = ⎢ −0.9017 ⎥
⎢ 8.332 ⎥ ⎢ ⎥
⎢ 1 ⎥ ⎢
⎣ 0.1200 ⎥⎦
⎣⎢ 8.332 ⎦⎥
MATLAB telah menyediakan rutin untuk menghitung nilai dan vektor eigen
matriks A yaitu eig.
Penulisan perintahnya pada MATLAB command window sbb:
[V , D ] = eig ( A)
Vektor eigen Nilai eigen
Sebagai contoh berikut ini akan ditampilkan perintah pada command window
untuk menghitung nilai dan vektor eigen dari matrik A yang telah diselesaikan
secara analitik sebelumnya.
>> [V,D]=eig(A)
V=
-0.5665 -0.4153 -0.7118
-0.1531 0.9018 -0.4042
0.8097 -0.1200 -0.5744
D=
-3.2880 0 0
0 1.8669 0
0 0 3.4211
Tugas 6
Transformasi kanonikal PDB dan analisis eigen
Nomor 1
Hitunglah nilai dan vektor eigen dari matrik A berikut ini. Bandingkan hasilnya
dengan menggunakan subrutin eig di MATLAB.
⎡1 2 3⎤
A = ⎢⎢ 2 5 1 ⎥⎥
⎢⎣ 3 1 4 ⎥⎦
Nomor 2
Ubahlah persamaan differensial berikut ke dalam bentuk kanonikal.
d 2x dx
a. 2
− 3 − 10 x = 0
dt dt
d 3T 3 d 2T 2 dT
b. +t −t − 10T = 0
dt 3 dt 2 dt
2
d3y 2
3 d y ⎛ dy ⎞
c. 3
− y 2
−⎜ ⎟ + 9y = 0
dx dx ⎝ dx ⎠
dy
= Ay y ( 0 ) = y0
dt
A adalah matriks persegi (m x m) dan y adalah vektor kolom (m x 1)
Integrasikan persamaan diferensial linier tersebut.
y t
dy
∫y y = A∫0 dt
0
y
ln = At
y0
y = e At y0
Fungsi matriks eksponensial dapat dituliskan sebagai berikut:
A 2 t 2 A 3t 3
exp(At ) = I + At + + + ...
2! 3!
Contoh soal:
Kasus 7
Berikut ini adalah PDB linier orde 2.
d 2x dx
2
− 3 − 10 x = 0
dt dt
Dengan nilai awal pada t = 0, sbb:
x(0) = 3
dx
0 = 15
dt
Jawaban :
d 2x dx
2
− 3 − 10 x = 0 ⎡ dy1 ⎤
dt dt ⎢ dt ⎥ ⎡ 0 1⎤ ⎡ y1 ⎤
x = y1 ⎢ ⎥=⎢ ⎥⎢ ⎥
⎢ dy2 ⎥ ⎣1 3⎦ ⎣ y2 ⎦
dx dy1
= = y2 ⎣⎢ dt ⎦⎥
dt dt
d 2 x dy2
= = 3 y2 + y1
dt 2 dt
dy A y
dt
dy
= Ay
dt
Integrasikan.
⎡3⎤
y = e At y0 y0 = ⎢ ⎥
⎣15⎦
Rentang integrasi 0 ≤ t ≤ 1.0. Langkah integrasi 0.1
t 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
⎡ y1 ⎤ ⎛ ⎢⎣ t ⎞⎡ 3 ⎤
⎡0 t⎤
⎥
⎢ y ⎥ = ⎜⎜ e ⎟
3t ⎦
⎣ 2⎦ ⎝ ⎟ ⎢⎣15⎥⎦
⎠
Dengan mensubstitusikan t = 0 s.d 1 (langkah integrasi 0.1) selesailah persoalan
ini.
Berikut ini pemrograman MATLAB-nya.
kasus7.m
clear
clc
A = [0 1
1 3];
% Nilai awal
yo = [3;15];
t = [0:0.1:1]';
for i = 1:length(t)
y(i,:) = expm(A*t(i))*yo;
end
%kurva t-x
x = y(:,1)
plot(t,x)
xlabel('t')
ylabel('x')
grid on
>>kasus7a
t=
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
x=
3.0000
4.7688
7.2122
10.5945
15.2839
21.7922
30.8319
43.3941
60.8578
85.1416
118.9150
120
100
80
60
x
40
20
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t
e At = Ve Dt V −1
Sehingga solusi PDB linier menjadi.
y = ⎡⎣ Ve Dt V −1 ⎤⎦ y0
Dengan menggunakan rutin eig MATLAB diperoleh harga nilai (D) dan vektor
eigen (V).
>> A=[0 1
1 3]
A=
0 1
1 3
>> [V,D]=eig(A)
V=
-0.9571 0.2898
0.2898 0.9571
D=
-0.3028 0
0 3.3028
y = ⎡⎣ Ve Dt V −1 ⎤⎦ y0
⎡ ⎡ −0.9571 0.2898⎤ ⎡e−0.3028t 0 ⎤ ⎡ −0.9571 0.2898⎤ ⎤ ⎡ 3 ⎤
−1
y = ⎢⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎥⎢ ⎥
⎢⎣ ⎣ 0.2898 0.9571⎦ ⎣ 0 e0.3028t ⎦ ⎣ 0.2898 0.9571⎦ ⎥⎦ ⎣15⎦
kasus7.m
clear
clc
A = [0 1
1 3];
% Nilai awal
yo = [3;15];
a=length(yo);
x =zeros(length(t),a);
for i = 1 : length(t)
y = (V*diag(exp(diag(D)*t(i)))*inv(V))*yo;
x(i,:) = y;
end
x
% kurva t-x
plot(t,x(:,1))
xlabel('t')
ylabel('x')
grid on
>>kasus7
t= x=
0 3.0000 15.0000
0.1000 4.7688 20.6902
0.2000 7.2122 28.6127
0.3000 10.5945 39.6409
0.4000 15.2839 54.9901
0.5000 21.7922 76.3512
0.6000 30.8319 106.0768
0.7000 43.3941 147.4403
0.8000 60.8578 204.9959
0.9000 85.1416 285.0806
1.0000 118.9150 396.5110
120
100
80
60
x
40
20
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t
Tugas 7
Metode eigen untuk menyelesaikan sistem persamaan diferensial biasa linier
Suatu bahan radioaktif meluruh berdasarkan mekanisme reaksi berantai
sbb:
A ⎯⎯
k1
→ B ⎯⎯
k2
→C
dC A
= − k1C A CA, CB, dan CC adalah konsentrasi
dt
dCB bahan A, B, dan C.
= k1C A − k2CB
dt k1= 3 s , k2= 1 s-1.
-1
dCC
= k2CB Konsentrasi mula-mula bahan sbb:
dt
CA(0)=1 mol/m3 CB(0)=0 CC(0)=0
1. Metode Euler
dy y −y y −y
= f ( x, y ) = i +1 i = i +1 i
dx xi +1 − xi h
yi +1 = yi + hf ( xi , yi )
yi +1 = yi + hf ( xi , yi ) + O ( h 2 )
Kesalahan
pemotongan lokal
yi +1 = yi + 16 ( k1 + 4k2 + k3 ) + O ( h 4 )
k1 = hf ( xi , yi )
⎛ h k ⎞
k2 = hf ⎜ xi + , yi + 1 ⎟
⎝ 2 2⎠
k3 = hf ( xi + h, yi + 2k2 − k1 )
yi +1 = yi + 16 ( k1 + 2k2 + 2k3 + k4 ) + O ( h5 )
k1 = hf ( xi , yi )
⎛ h k ⎞
k2 = hf ⎜ xi + , yi + 1 ⎟
⎝ 2 2⎠
⎛ h k ⎞
k3 = hf ⎜ xi + , yi + 2 ⎟
⎝ 2 2⎠
k4 = hf ( xi + h, yi + k3 )
5. Metode Runge-Kutta-Fehlberg
yi +1 = yi + h ( 135
16
k1 + 12825
6656
k3 + 56430
28561
k4 − 509 k5 + 552 k6 )
k1 = f ( xi , yi )
k2 = f ( xi + h4 , yi + h4 k1 )
k3 = f ( xi + 38h , yi + 38h k1 + 932h k2 )
k4 = f ( xi + 1213h , yi + 1932
2197 k1 − 2197 k 2 + 2197 k3 )
h 7200 h 7296 h
k5 = f ( xi + h, yi + 439
216 k1 − 8hk 2 + 513 k3 − 4104 k 4 )
h 3680 h 845 h
d i +1 = h ( 360
1
k1 − 4275
128
k3 − 75240
2197
k4 + 501 k5 + 552 k6 )
Algoritma
1. Mulai
2. Definisikan fungsi f(x,y) [turunan ke-1]
3. Tetapkan nilai awal, x awal, langkah integrasi (h), dan x akhir.
4. Hitung panjang vektor x
5. Hitung yi +1 = yi − hf ( xi , yi ) untuk i = 1 s.d (panjang vektor-1)
6. selesai
Mulai
Definisikan
fungsi f(x,y)
Masukan harga
yo, xo, h, xn
yi +1 = yi − hf ( xi , yi )
untuk i = 1 s.d (panjang
vektor x -1)
Selesai
eulerku.m
function [x y] = eulerku(dfungsi,yo,xo,dx,xn)
x = xo:dx:xn
a = length(x)
y(1) = yo
for i = 1 : (a-1)
y(i+1)= y(i) + dx*feval(dfungsi,x(i),y(i))
end
dcoba.m
function f = dcoba(x,y)
f = 2*x
>> [x y] = eulerku('dcoba',0,0,1,10)
x=
Columns 1 through 9
0 1 2 3 4 5 6 7 8
Columns 10 through 11
9 10
y=
Columns 1 through 9
0 0 2 6 12 20 30 42 56
Columns 10 through 11
72 90
[t,y] = ode23(‘fungsiPDB’,rentang_t,y0)
Misal:
dy
= −2 x 3 + 12 x 2 − 20 x + 8.5 dengan kondisi awal y = 1 pada x = 0 dan rentang
dx
integrasi dari x = 0 s.d x = 4.
dydx = -2*x^3+12*x^2-20*x+8.5;
%runpdb.m
clear
clc
rentang_x = [0 4];
y0 = 1;
[x,y] = ode23('pdb',rentang_x,y0)
plot(x,y)
xlabel('x')
ylabel('y')
0 1.0000
0.0094 1.0791
0.0565 1.4488
0.1712 2.1817
0.3046 2.7701
0.4524 3.1483
0.6111 3.3031
0.7777 3.2609
0.9511 3.0709
1.1319 2.7893
1.3196 2.4787
1.5150 2.2006
1.7217 2.0131
1.9512 1.9808
2.2503 2.2494
2.4902 2.6978
2.7301 3.2901
2.9516 3.8780
3.1622 4.3716
3.3655 4.6749
3.5614 4.6862
3.7483 4.3176
3.9277 3.4933
4.0000 3.0015
4.5
3.5
3
y
2.5
1.5
1
0 0.5 1 1.5 2 2.5 3 3.5 4
x
Kasus 8
Studi terhadap kinetika proses fermentasi berhasil dimodelkan secara matematis
sbb:
dy1 ⎛ y ⎞
= k1 y1 ⎜1 − 1 ⎟
dt ⎝ k2 ⎠
dy2
= k3 y1 − k4 y2
dt
Dengan k1 = 0.03120; k2 = 47.70; k3 = 3.374 ;k4 = 0.01268 serta nilai pada t = 0,
y1=5, y2=0. Evaluasi harga y1 dan y2 dalam interval waktu 0 s.d 10 jam setiap
jamnya!.
dydt=[k1*y(1)*(1-y(1)/k2)
k3*y(1)-k4*y(2)];
%kasus8
clear
clc
tspan = [0:1:10];
yo = [5 0];
[t,y]=ode23('fermen',tspan,yo)
0 5.0000 0
1 5.1414 17.0000
2 5.2863 34.2657
3 5.4347 51.8056
4 5.5868 69.6282
5 5.7425 87.7422
6 5.9020 106.1564
7 6.0652 124.8796
8 6.2323 143.9206
9 6.4033 163.2886
10 6.5783 182.9924
Tugas 8
Solusi PDB tak linier menggunakan subrutin MATLAB ode23
Nomor 1
Konversi glukosa menjadi asam glukonik merupakan reaksi oksidasi sederhana
dari gugus aldehid gula menjadi gugus karboksil. Enzim glukosa oksidase,
terbentuk dalam mikroorganisme untuk mengubah glukosa menjadi
glukonolaktona. Kemudian glukonolaktona bereaksi dengan air membentuk asam
glukonik. Mekanisme reaksi secara keseluruhan proses fermentasi dapat dituliskan
sbb:
Pertumbuhan sel:
Glukosa + sel → sel
Oksidasi glukosa:
Glukosa + O 2 ⎯⎯⎯⎯⎯→
Glukosa oksidase
Glukonolactona + H 2 O 2
Hidrolisis glukonolactona:
Glukonolactona + H 2 O → Asam glukonik
Dekomposisi peroksida:
1
H 2 O 2 ⎯⎯⎯
Katalis
→ H 2O + O2
2
Model matematika untuk fermentasi bakteri Pseudomonas ovalis yang
memproduksi asam glukonik telah dirumuskan oleh Rai dan Constantinides.
Model yang menggambarkan dinamika pertumbuhan fasa logaritmik ini dapat
dituliskan sbb:
Bab 8
Persamaan Diferensial Parsial (PDP)
Definisi PDP
Persamaan diferensial parsial adalah persamaan diferensial yang terdiri
atas fungsi turunan lebih dari satu variabel bebas.
Contoh:
Persamaan konduksi tak tunak satu dimensi pada lembaran suatu material
dirumuskan dalam PDP sbb.
∂T k ∂ 2T
=
∂t ρc p ∂x 2
PDP tersebut terdiri dari dua buah variabel bebas, yaitu x (tebal lembaran) dan t
(waktu). Sedangkan variabel terikatnya adalah T (Temperatur). Jika digambarkan
pada koordinat kartesius akan diperoleh gambar 3 dimensi.
Aplikasi PDP
Pemodelan kimia dan fisika atas suatu fenomena dalam bidang teknik
kimia seringkali menghasilkan rumusan matematis dalam bentuk PDP khususnya
pada berbagai fenomena perpindahan (momentum, massa, dan panas).
Klasifikasi PDP
Berdasarkan ordenya PDP terdiri atas tiga jenis.
Orde 1
∂u ∂u
−α =0
∂x ∂y
Orde 2
∂ 2u ∂u
+u =0
∂x 2
∂y
Orde 3
2
⎛ ∂ 3u ⎞ ∂ 2u ∂u
⎜ 3⎟ + + =0
⎝ ∂x ⎠ ∂x∂y ∂y
Kajian PDP dalam diktat ini terbatas hanya untuk PDP orde 2 linier saja.
PDP linier orde 2 memiliki persamaan umum sbb:
∂ 2u ∂ 2u ∂ 2u ∂u ∂u
a + 2b + c +d + e + fu + g = 0
∂x 2
∂x∂y ∂y 2
∂x ∂y
Berdasarkan harga b 2 − ac PDP orde 2 linier terbagi atas tiga bagian, sbb:
1. Eliptik b 2 − ac < 0
2. Parabolik b 2 − ac = 0
3. hiperbolik b 2 − ac > 0
Kondisi Batas
Untuk lebih memahami kondisi batas pada PDP perhatikan contoh persamaan
konduksi tak tunak satu dimensi sbb:
∂T k ∂ 2T
=
∂t ρc p ∂x 2
1. Kondisi Dirichlet
Nilai variabel terikat (T) diketahui pada nilai variabel bebas (x,t) tertentu
kondisi awal
T = f ( x) pada t = 0 dan 0 ≤ x ≤ 1, atau
T = T0 pada t = 0 dan 0 ≤ x ≤ 1
kondisi batas
T = f (t ) pada x = 0 dan t > 0, dan
T = T1 pada x = 0 dan t > 0
Contoh :
∂ 2T ∂T
α =
∂x 2 ∂t
T ( 0, t ) = 1200 C
T (1, t ) = 1200 C
T ( x = 0 :1, 0 ) = 250 C
2. Kondisi Neuman
Turunan variabel terikat (T) diketahui pada nilai tertentu atau sebagai fungsi dari
variabel bebas (x,t).
∂T
=0 pada x = 1 dan t ≥ 0
∂x
3. Kondisi Robbin
∂T
k = h(T − T f ) pada x = 0 dan t ≥ 0
∂x
Turunan variabel terikat (T) diketahui sebagai fungsi dari variabel terikat itu
sendiri.
Solusi PDP
Solusi yang paling sederhana dan gampang untuk diterapkan yaitu dengang
metode penghampiran selisih terhingga (finite difference approximationi).
d2y
= 6x + 4
dx 2
x = 0 → y =1
x =1→ y =1
Rentang Integrasi x = 0 s/d 1
Jawaban:
Rentang integrasi x = 0 s.d 1 didiskretisasikan menjadi 10 bagian (N = 10).
N = 10
1
Δx = = 0.1
N
∆x
1 2 3 4 5 6 7 8 9 10
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
0 1 2 3 4 5 6 7 8 9 10
Untuk i = 1
1
( y2 − 2 y1 + 1) − 6(0.1) − 4 = 0
Δx 2
Untuk i = 2 s.d. 8
1 SISTEM
( yi +1 − 2 yi + yi −1 ) − 6 xi − 4 = 0 PERSAMAAN LINIER
Δx 2
Untuk i = 9
1
(1 − 2 y9 + y8 ) − 6(0.9) − 4 = 0
Δx 2
⎡ −2 1 0 0 0 0 0 0 0 ⎤ ⎡ y1 ⎤ ⎡{6(0.1) + 4} Δx − 1⎤
2
⎢ 1 −2 1 0 0 0 0 0 0 ⎥ ⎢ y ⎥ ⎢ 6(0.2) + 4 Δx 2 ⎥
⎢ ⎥⎢ 2⎥ ⎢ { } ⎥
⎢ 0 1 −2 1 0 0 0 0 0 ⎥ ⎢ y3 ⎥ ⎢ {6(0.3) + 4} Δx 2 ⎥
⎢ ⎥⎢ ⎥ ⎢ 2 ⎥
⎢ 0 0 1 −2 1 0 0 0 0 ⎥ ⎢ y4 ⎥ ⎢ {6(0.4) + 4} Δx ⎥
⎢ 0 0 0 1 −2 1 0 0 0 ⎥ ⎢ y5 ⎥ = ⎢ {6(0.5) + 4} Δx 2 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ 0 0 0 0 1 −2 1 0 0 ⎥ ⎢ y6 ⎥ ⎢ {6(0.6) + 4} Δx ⎥
2
⎢ 0 0 0 0 0 1 −2 1 0 ⎥ ⎢ y ⎥ ⎢ {6(0.7) + 4} Δx 2 ⎥
⎢ ⎥⎢ 7⎥ ⎢ ⎥
⎢ 0 0 0 0 0 0 1 −2 1 ⎥ ⎢ y8 ⎥ ⎢ {6(0.8) + 4} Δx ⎥
2
⎢⎢ 0 0 0 0 0 0 0 1 −2 ⎥⎥ ⎢ y ⎥ ⎢ 6(0.9) + 4 Δx 2 − 1⎥
⎣ ⎦ ⎣⎢ 9 ⎦⎥ ⎢⎣{ } ⎥⎦
A y C
Harga y dapat dihitung dengan metode yang telah dipelajari pada bagian sistem
persamaan linier.
Ay = C
y = A −1C
Berikut ini kita hitung harga vektor y dalam m-file MATLAB.
kasus9.m
clear
clc
%Diskretisasi terhadap x
N=10;
dx=1/N;
x =[0:dx:1]'
%Membuat matrik A koefisien y
A = diag(-2*ones(N-1,1))+diag(ones(N-2,1),1) + diag(ones(N-2,1),-1)
%Vektor konstanta C
C = (6*[dx:dx:x(end)-dx]+4)*dx^2
C(1)=C(1)-1
C(end)=C(end)-1
%Menghitung harga y
y=inv(A)*C'
y=[1;y;1]
%Membuat kurva x-y
plot(x,y)
xlabel('x')
ylabel('y')
grid on
>> kasus9
y=
1.0000
0.7210
0.4880
0.3070
0.1840
0.1250
0.1360
0.2230
0.3920
0.6490
1.0000
Dari hasil perhitungan MATLAB di atas dapat dibuat grafik dan hasil lengkap
untuk persoalan ini sbb:
x y
0 1
0.1 0.721
0.2 0.488
0.3 0.307
0.4 0.184
0.5 0.125
0.6 0.136
0.7 0.223
0.8 0.392
0.9 0.649
1 1
0.9
0.8
0.7
0.6
y
0.5
0.4
0.3
0.2
0.1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Tugas 9
Menyelesaikan persamaan differensial dengan penghampiran selisih
terhingga (diskretisasi)
Nomor 1
Dengan menggunakan penghampiran selisih terhingga terpusat selesaikan
persamaan diferensial sbb:
d2y
= y+2
dx 2
y (0) = y (1) = 1
Rentang Integrasi = 0 s/d 1
Sertakan pula kurva x,y diagram kartesiusnya.
kasus10
diletakan diantara pelat yang bertemperatur 120 oC. Diketahui massa jenis plastik
900 kg/m3, konduktivitas termal 0.13 W/moC, dan kalor jenis 1670 J/kgoC .
Pemodelan matematis untuk kasus konduksi tak tunak adalah sbb:
∂ 2T ∂T k
α 2 = α=
∂x ∂t ρcp
Jawaban:
∂ 2T ∂T
α = Kondisi Dirichlet
∂x 2 ∂t
T ( 0, t ) = 1200 C
T (1, t ) = 1200 C
T ( x = 0 :1, 0 ) = 250 C
k (0.13)
α= = = 8.6494x10−8 m 2 / s
ρ c p (900)(1670)
= 5.1896x10−2 cm 2 / menit
Diskretisasi dilakukan terhadap x.
N = 20
∆x 1− 0
Δx = = 0.05 x
20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1
Untuk i = 1
∂T α
= 2 (T2 − 2T1 + 120 )
∂t Δx
Untuk i = 2 : 18
SISTEM
∂T α PERSAMAAN
= 2 (Ti +1 − 2Ti + Ti −1 )
∂t Δx DIFERENSIAL
BIASA
Untuk i = 19
∂T α
= 2 (120 − 2T19 + T18 )
∂t Δx
Solusi sistem persamaan diferensial biasa telah dibahas pada bagian sebelumnya.
Rutin yang akan digunakan untuk sistem PDB di termaksud adalah ode23
MATLAB. Berikut ini pemrogramannya.
function dTdt=taktunak(t,T)
N=20;
dx=1/N;
a=5.1896e-2; %diffusivitas termal,cm2/menit
% untuk i = 1
dTdt(1,:) = a/(dx^2)*(T(2)-2*T(1)+120);
% untuk i = 2 s.d 18
for i = 2:18
dTdt(i,:) = a/(dx^2)*(T(i+1)-2*T(i)+T(i-1));
end
% untuk i = 19
dTdt(19,:) = a/(dx^2)*(120-2*T(19)+T(18));
clear
clc
% Fungsi pengintegrasi.
[t,T] = ode23(‘taktunak',tspan,To);
figure(2)
pcolor(x,t,T)
xlabel('x')
ylabel('t')
zlabel('T')
colorbar
shading interp
>>runkasus10
Tslab =
119.5598
Gambar 3-D.
Profil temperatur plastik sepanjang x pada interval waktu t
Nomor 1
Suatu fenomena difusi-konveksi dapat dideskripsikan dengan PDP berikut ini:
∂θ ∂ 2θ ∂θ
= 2 −λ 0 < x < 1, t>0
∂t ∂x ∂x
θ (0, t ) = 1, t >0
∂θ
(1, t ) = 0, t > 0
∂x
θ ( x, 0) = 0, 0 < x <1
Jika harga λ = 25, selesaikan PDP diatas untuk rentang t = 0 s.d 5. Buat pula
gambar 3-D θ,t,x pada koordinat kubus (kartesius).
Daftar Pustaka
5. Lindfield G. & Penny J., “Numerical Method Using MATLAB”, Elis Horwood,
London, 1995.