DAFTAR ISI
KATA PENGANTAR
.............................................................................................................. iii
DAFTAR ISI
......................................................................................................................
......... iv
Bab 1
1.5
1.6
Bab 2
Pendahuluan
......................................................................................
Memulai MATLAB
...........................................................................
Matrik .................................................................................................
Ekspresi
1.4.1 Ekspresi Variabel ...................................................................
1.4.2 Ekspresi Angka .......................................................................
1.4.3 Ekspresi Operator ...................................................................
1.4.4 Ekspresi Fungsi ......................................................................
Operasi-Operasi Matematis dan Analisis Data
1.5.1 Fungsi-Fungsi Polinom dan Interpolasi .................................
1.5.2 Permasalahan Harga Nol (fzero) ............................................
1.5.3 Integral Numerik (quad) .........................................................
1.5.4 Regresi Polinom dan Linearisasi (bck slash)
........................
1.5.5 Penyelesaian Sistem Persamaan Linear (back slash) .............
1.5.6 Penyelesaian Sistem Persamaan Non-Linear (fsolve) ............
1.5.7 Minimasi Fungsi (fminbnd dan fminsearch) ..........................
1.5.8 Persamaan Diferensial Ordiner (ode45 ; ode15i ; ode15s) .....
Latihan Soal-Soal ...............................................................................
1
1
2
4
5
6
12
14
24
26
27
37
37
39
42
44
2.5
2.6
2.7
2.8
Pendahuluan
......................................................................................
Membuat M-File ................................................................................
Komponen-Komponen Program Dasar ..............................................
Pemrograman M-File .........................................................................
2.3.1 Script ......................................................................................
2.3.2 Function
.................................................................................
Program Control Statements ..............................................................
2.4.1 Conditional Control
...............................................................
2.4.2 Loop Control ..........................................................................
2.4.3 Break ......................................................................................
Referensi Simbol-Simbol
..................................................................
Built-in Function ................................................................................
Grafik .................................................................................................
2.7.1 Penggambaran dengan plot ....................................................
2.7.2 Penggambaran dengan fplot ...................................................
Beberapa Trik Pemrograman
2.8.1 Membuat Gambar Fungsi Polinom ........................................
2.8.2 Permasalahan Harga Nol ........................................................
2.8.3 Permasalahan Persamaan Diferensial .....................................
50
50
51
51
51
52
55
55
57
59
60
60
60
60
62
64
64
67
2.9
Bab 3
DAFTAR PUSTAKA
................................................................................................
80
82
87
89
91
93
95
96
98
101
103
106
108
109
111
112
114
116
BAB 1
MENGENAL MATLAB
1.1
Pendahuluan
1.2
Memulai MATLAB
Command Line Window dan setelah itu menekan tombol ENTER, maka
kodekode tersebut langsung di eksekusi dan nilai-nilai variabel dan konstanta
akan
tetap ada dan tersimpan didalam memori, tentu saja selama Anda belum
menghapusnya. Dengan Command Line Window ini, Anda dapat
menggunakan MATLAB selayaknya sebuah kalkulator yang canggih, yang
memiliki kemampuan diatas rata-rata kalkulator yang ada.
Sebelum Anda dapat menggunakan MATLAB seperti selayaknya
sebuah kalkulator, Anda perlu memahami terlebih dahulu tentang matrik,
jenis-jenis ekspresi dan beberapa fungsi khusus yang dapat membantu
Anda menyelesaikan permasalahan-permasalahan
matematika dan
sekaligus membuat suatu analisis / interpretasi data.
1.3
Matrik
Matrik di dalam MATLAB pada dasarnya adalah sekumpulan data
yang tersusun dalam baris dan kolom sehingga seakan-akan membentuk
bidang segi empat. Dalam hal ini, MATLAB mampu mengidentifikasi apakah
suatu matrik merupakan sebuah matrik skalar, matrik kuadrat, vektor
baris atau vektor kolom. Matrik skalar adalah matrik yang memiliki
elemen matrik yang tersusun dalam 1 baris dan 1 kolom saja atau dengan
kata lain hanya memiliki 1 elemen saja. Matrik yang elemen-elemennya
tersusun dalam 1 kolom atau 1 baris saja disebut vektor, sehingga
sehubungan dengan hal tersebut dikenal 2 jenis vektor, yakni vektor baris
dan vektor kolom. Matrik yang elemen-elemennya tersusun sedemikian
rupa sehingga memiliki jumlah baris yang sama banyak dengan jumlah
kolom disebut matrik kuadrat.
Berikut ini adalah aturan atau cara penulisan yang digunakan dalam
pembuatan matrik di dalam MATLAB:
(1) elemen elemen matrik yang terletak dalam 1 baris dipisahkan oleh
tanda koma atau spasi
(2)
pergantian
semikolon ;
setiap
baris
matrik
menggunakan
tanda
Vektor A bernilai 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12
Vektor A bernilai 3 , 7 , 11
indexing)
dengan penulisan yang benar:
Jika matrik A=[1 2 3 4 ; 5 6 7 8 ; 9 10 11 12], maka
A(1 : 3) adalah vektor baris [1 5 9], sedangkan A(1 : 5) adalah [1 5 9 2
6]
A(1 , 3) adalah elemen matrik A pada baris ke- 1 dan pada kolom ke- 3,
yaitu 3
A(1 , 2 : 3) adalah sebuah vektor baris [2 3], yang mana merupakan
elemen matrik A pada baris ke - 1 dan pada kolom ke- 2 dan ke- 3.
A(: , 2 : 4) adalah elemen-elemen matrik A pada semua baris dan kolom
ke- 2, 3 dan 4. Ekspresi yang agak identik adalah A(: , 1)=[ ]. Mengapa
disebut agak identik??
A([1 3] , 2 : 4) adalah elemen matrik A pada baris ke- 1 dan ke- 3 dan
pada kolom ke- 2, 3, dan 4
A(2 : 3 , :).^2 adalah kuadrat setiap elemen matrik A pada baris ke- 2 dan
3
sum(A) adalah jumlah elemen matrik A pada setiap kolom, jadi [15 18 21
24]
sum(sum(A))
1.4
Ekspresi
1.4.2
Angka
Ekspresi
tersebut
dengan
Operasi A' dan A.' adalah transpose dari A menghasilkan vektor [1; 2;
>> A=[1 2 3], A', A.'
1
ans =
1
2
3
ans =
1
2
3
(2)
Operasi A+B atau A-B adalah penjumlahan atau pengurangan antara
matrik
A dan matrik B. Operasi matrik ini berhasil jika matrik A dan
matrik B
memiliki ukuran yang sama atau salah satunya merupakan matrik
skalar.
>> A+B , A-B
ans =
3
-1
-1
ans =
-1
(3)
12
ans =
20
ans =
3
6
(4)
Operasi A.*B adalah perkalian antar elemen matrik A dan B.
Operasi
berhasil jika A dan B berukuran sama atau salah satunya merupakan
matrik skalar.
>> A.*B , B.*A
ans =
2
6
12 ans =
2
12
(5)
(6)
ans =
0.5000
0.6667
0.7500
Contoh-contoh lain :
A/2
[0.5000 1.0000
1.5000] A./2
[0.5000
1.0000 1.5000]
2/A
2./A
(7)
(8)
Operasi A^B : Lihat referensi fungsi : mpower. Jika salah satu matrik
skalar, maka matrik lainnya harus matrik kuadrat.
>> A^B
??? Error using ==> mpower
At least one operand must be scalar.
>> A^3
??? Error using ==> mpower
Matrix must be square.
>> 3^A
??? Error using ==> mpower
Matrix must be square.
(9)
Operasi A.^B menghasilkan matrik dengan elemen A(i,j) pangkat
B(i,j).
Operasi ini berhasil jika A dan B memiliki dimensi yang sama atau
salah satunya merupakan matrik skalar.
>> A.^B , B.^A
ans =
1
8
81
ans =
2
64
Operator Relasional
Operator relasional membandingkan operand secara kuantitatif, dan
meliputi lebih kecil dari ( < ), lebih kecil dari atau sama dengan ( <= ),
lebih besar dari ( > ), lebih besar dari atau sama dengan ( >= ), sama
dengan ( = = ), dan tidak sama dengan ( ~= ). Operator-operator
relasional ini menghasilkan data logika berupa 1 untuk true dan 0 untuk
false.
>> A=5, B=A*ones(3
, 3) A =
5
B=
5
Y=
10
ans =
ans =
Operator Logika
Tipe data logika merepresentasikan logika benar atau salah
menggunakan angka 1 untuk benar dan 0 untuk salah. Operator logika
menggunakan AND, OR, NOT atau dengan menggunakan simbol & , |
, dan
~ .
Berikut adalah tabel logika yang dapat membantu Anda memahami
operator-operator logika ini.
Tabel 1.1 : Tabel Logika
A B A & B atau
A | B atau
~A atau
or(A,B) 0
not(A)1
0 and(A,B)0
11
Contoh 1:
Jika A=5; B=A*ones(3,3), maka ekspresi logika
X=A&B atau
X=and(A,B) akan menghasilkan matrik [1 1 1; 1 1 1; 1 1 1]. Buktikan!!
Contoh 2:
Ekspresi 3>6 menghasilkan 0 sedangkan ekspresi
(5*10)>40 menghasilkan 1 dan ekspresi [30 40 50]>40 menghasilkan [0 0
1].
Contoh 3:
Jika a=5; dan b=[4 5 6], maka ekspresi
or(a>=b,a>b) akan menghasilkan [1 1 0] sedangkan and(a>=b,a>b)
menghasilkan [1 0 0]
12
y1
2
3
x 4
y dan z,
r 3x 2 y 3z
,
maka nilai r untuk x=1 ,y=2 dan z=3 didapat dengan kode-kode berikut:
>> r=@(x,y,z) 3*x.^2+2*y.^3-2*z.^4; r(1,2,3)
ans =
-143
MATLAB juga memiliki fungsi yang tidak membutuhkan
masukan argumen. Perhatikan contoh pendefinisiannya berikut :
>> t=@( ) datestr(now)
t=
@( )
datestr(now)
>> t( )
ans =
04-Oct-2014 04:51:39
13
1.5
Operasi-Operasi Matematis dan Analisis
Data
Pada sub bab ini, Anda akan melihat MATLAB dapat
dipergunakan seperti layaknya sebuah kalkulator dengan fasilitas yang
efisien. Bersama dengan contoh-contoh yang sudah dibahas pada subsub bab sebelumnya, topik-topik bahasan pada sub-bab ini juga akan
memberikan pengetahuan pada Anda, bahwa MATLAB memang lebih baik
dibandingkan dengan kalkulator biasa.
-2
-5
-3 -13
15
r=
0 -15 -24 -21
fungsi
polinom
dalam
bentuk
fungsi
anonymous,
sehingga contoh diatas juga dapat diselesaikan dengan cara sebagai berikut:
>> p=[1 -3 -13 15]; y=@(x) polyval(p,x); x=[1:5]; r=y(x)
roots(p) dan poly(r)
Ekspresi r=roots(p) akan menghasilkan vektor sebagai titik-titik
potong terhadap sumbu x dari fungsi polinom, yang mana berarti juga harga
nol dari fungsi polinom tersebut, termasuk juga yang imajiner. Dalam hal ini
p adalah vektor koefisien dari fungsi polinom yang dievaluasi.
-3
-13 15 ], r=roots(p),
p
=
1
-3 -13
15
r
=
5.0000
-3.0000
1.0000
q
=
1.0000 -3.0000 -13.0000 15.0000
Ekspresi r=roots(p) diatas menghasilkan vektor r=[5 ; -3 ; 0] sebagai
harga nol dari polinom ( titik-titik potong terhadap sumbu x ).
Sebaliknya, operasi berikutnya dengan q=poly(r) menghasilkan vektor
koefisien fungsi polinom dengan urutan mulai dari pangkat tertinggi hingga
konstanta.
Dari contoh ini terlihat bahwa fungsi-fungsi MATLAB roots dan poly
merupakan sepasang fungsi yang sifatnya saling berkebalikan.
Polyder(p) dan polyint(p) atau polyint(p,k)
Ekspresi polyder(p) akan menghasilkan vektor koefisien polinom hasil
diferensiasi fungsi polinom dengan koefisien p sedangkan ekspresi polyint(p)
dan polyint(p,k) akan menghasilkan vektor koefisien polinom hasil integrasi
tidak tentu dari fungsi polinom p. Dalam hal ini k adalah konstanta integrasi
yang ditetapkan sepihak, artinya jika diinginkan hasil integrasi yang memiliki
kontanta integrasi, maka nilai k harus ditetapkan.
-2
q=
1
-2
qk =
1 -2 -15
Terlihat bahwa ekspresi polyint(d) menghasilkan vektor [1 -2 0],
yang mana merupakan integral dari fungsi polinom d = 2x - 2 , dan
konstanta integrasi ditetapkan
sepihak
sama
dengan
nol.
Untuk
2
mendapatkan kembali fungsi polinom p = x 2x 15, maka digunakan
polyint([2 -2],-15).
Untuk hitung integral tentu terhadap fungsi polinom, maka dapat
dimanfaatkan secara bersama-sama fungsi MATLAB polyint dan polyval
seperti contoh 2 berikut:
Contoh 2 : Integralkan polinom p = x2 2x 15 dengan batas integrasi
atas dan bawah berturut-turut adalah 3 dan 0.
>> p=[1 -2 -15]; q=polyint(p); Q=polyval(q,3)polyval(q,0) Q =
-45
conv dan deconv
Ekspresi ab=conv(a,b) menghasilkan vektor hasil perkalian antara
vektor koefisien polinom a dan b. Misal a = x + 5 ; b = x + 3 dan c = x - 1,
maka perkalian
3 polinom ini dapat dilakukan dengan cara sebagai berikut:
2
-2
15
abc =
1
12 -15
s=
0
a( x )
:
x) ,
b( x)
r1
r2
x p1 x p2
r n
k(
x pn
1:
Untuk
mendapatkan
pecahan-pecahan
parsial
2x 3x 32x 15
2
x 2x
15
dari
p=
-5
3
k=
2
-1
0
0
2x 1 2x 1
x5 x3
3
Contoh 2:
berikut
Sederhanakan pecahan
2x 3x 32x 20
2
x 2x
15
-1
3
Jadi :
2x 3x 32x
20
2
x 2x
15
0.6250
x5
0.6250
x3
2x 1
, maka
polyfit(x,y,n)
Jika vektor data x berpasangan dengan vektor data y dan dicari
fungsi polinom yang memiliki kesalahan kuadrat terkecil ( SSE, sum of
the squared errors, least square method ) terhadap semua data (x,y),
maka hubungan fungsional y = f(x) sebagai suatu fungsi polinom orde
ke- n tercakup melalui penggunaan fungsi MATLAB p=polyfit(x,y,n). Dalam
hal ini, p adalah vektor koefisien dari persamaan fungsi polinom yang
dicari. (baca keterangan lebih lanjut pada MATLAB online help).
Contoh 1 : Dari data x dan y berikut, nyatakan hubungan fungsional
antara keduanya sebagai fungsi polinom order ke- 3 kemudian tentukan
prediksi nilai y berdasarkan fungsi polinom tersebut untuk nilai x=[1 2 3 4
5]. Hitung pula nilai error kuadrat ( SSE) -nya.
x
11
10
22
4.2963
5.6345
ans =
9.0108 10.8374 11.5496 11.5829 11.3727
>> SSE=sum((ypolyval(p3,x)).^2) SSE =
0.6715
Untuk memperlihatkan kinerja fungsi polyfit ini, maka fungsi
polinom p3 dapat dievaluasi nilai fungsinya y1 pada setiap nilai
x1=[1:0.1:10] sebagai berikut :
>> x1=1:0.1:10; y1=polyval(p3, x1); plot(x,y,'o',x1,y1); grid on;
>> legend(4,'data','polyfit')
22
20
18
16
14
12
10
data
polyfit
8
1
10
26
83
194
377
650
2.0000
ans
=
48.8750 130.6250
Pada contoh 2 terlihat modifikasi penggunaan polyfit(x,y,n), yang
mana argumen x disubstitusikan dengan x.^3, sehingga pada akhirnya
terbentuk persamaan fungsi polinom order 1. Perlakuan yang sama bisa juga
diterapkan untuk argumen y.
interp1
Interpolasi adalah perkiraan nilai titik data yang terletak diantara
titik-titik data yang sudah diketahui berdasarkan suatu asumsi bahwa semua
titik-titik data tersebut dilewati oleh suatu kurva fungsi tertentu. Sedangkan
ekstrapolasi adalah perkiraan nilai-nilai titik data diluar range dari titik data
yang diketahui. Terdapat beberapa pilihan syntax interpolasi/ekstrapolasi,
diantaranya adalah :
yi = interp1(x,y,xi)
yi = interp1(x,y,xi,'method')
yi = interp1(x,y,xi,'method','extrap')
Metode interpolasi diantaranya adalah 'linear', 'spline' dan
'cubic'.
Contoh 1 : Berdasarkan data x dan y pada tabel dibawah ini, tentukanlah
nilai perkiraan data y pada x=[2.5 3.5] menggunakan a) polyfit dan b)
menggunakan interpolasi linear dan spline.
x
26
83
194
377
650
ans
=
48.8750 130.6250
Contoh 2 : Evaluasi lebih lanjut Contoh 1 dengan membuat visualisasi data
x dan y dan kurva nilai-nilai perkiraannya menggunakan polyfit dan
interpolasi/ekstrapolasi pada xi=[1:0.1:8].
>> x=1:6; y=[5 26 83 194 377 650];
xi=[1:0.1:8];
>>
p5=polyfit(x,y,5);
polyval(p5,x);
fp5=@(x)
>>
y1=interp1(x,y,xi,'linear','extrap
');
>>
y2=interp1(x,y,xi,'spline','extrap
');
>>
plot(x,y,'o',xi,y1,'--',,xi,y2,xi,fp5(x
i));
>>
grid
legend(2,'data','linear','spline','polyfit')
on,
1600
data
linear
1400
spline
polyfit
1200
1000
800
600
400
200
0
x x10
x.^3-x-1;
x0
=
1.3247
Contoh 2:
x=cos(x)
Selesaikan
persamaan
Untuk menemukan satu nilai dari x yang cocok dan sesuai dengan
persamaan x=cos(x), maka mula-mula didefinisikan dahulu fungsi y dengan
y=@(x) x-cos(x); atau y=@(x) cos(x)-x; Selanjutnya operasi x=fzero(y,1)
akan menghasilkan x=
0.7391 sebagai nilai yang
dicari.
Contoh 3: Ekspresi berikut menyelesaikan
persamaan :
ini
>> y=@(x) 1./x-3./(x.^2-1)+x.^3./(x.^2+4)-0.5;
x0=fzero(y,4)
x0 =
2
1
3
x
2
x 4
x x
2
1
0.5
Contoh 4:
persamaan
Untuk
menemukan
nilai
yang
cocok
dengan
b=
5.3065
Contoh 5: Diketahui
f ( x)
f ( x) dx
a
1:
Ekspresi
berikut
untuk
menyelesaikan
hitung
integral
3 dx
3 dx 1
berikut dapat
polinom
adalah
pencocokan
secara
least square
fungsi
polinom
yang
benar-benar
cocok
(1) y=ax
ax +bx+c
(2) y=ax+1
(3) y=ax+b
(4) y =
,maka untuk menentukan nilai a, b dan atau c yang cocok ( secara least
square )
digunakan kode-kode MATLAB sebagai berikut:
>> x=[0:5]; y=[1 9 17 25 33 41];
>> x=x'; y=y';
vektor kolom
>> a=x\y
%data dibuat
%soal (1)
a=
8.2727
>> a=x\(y-1)
%soal (2)
a=
8
>> ab=[x ones(size(x))]\y
%soal (3)
ab =
8.0000
1.0000
>> abc=[x.^2 x ones(size(x))]\y
%soal (4)
abc =
-0.0000
8.0000
1.0000
Catatan : Hasil-hasil ini dapat dibandingkan dengan cara yang
sudah dipelajari pada mata kuliah Matek (topik bahasan Least
Square : Regresi Polinom) sebagai berikut:
Untuk y=ax
xy
2
x
>> a=sum(x.*y)/sum(x.^2)
a=
8.2727
Untuk y=ax+b
nxy
x y
x 2 n x
2
b=
1
atau langsung dengan :
>> ab=[n sx; sx sx2]\[sy; sxy]; a=ab(2), b=ab(1)
a=
8
b=
1.0000
b=
8
c=
1.0000
Kode-kode penyelesaian dengan MATLAB terlihat lebih sederhana
dibandingkan dengan metode penyelesaiannya sendiri. Untuk seterusnya
tanpa melupakan prinsip dasar dari metode least square sendiri, Anda
diminta untuk menggunakan cara penyelesaian MATLAB ini dalam
menyelesaikan semua permasalahan-permasalahan regresi atau linearisasi.
Contoh 2: Diketahui data x dan y sesuai tabel dibawah.
x
-7
-25.75
-54.55
-93.44
a
x2
8
-349.23
+c+dx+ex2 , maka
+ tentukanlah
x
>> x=[1:8]'; y=[-7 -25.75 -54.55 -93.44 -142.36 -201.31 -270.26 -349.23]';
b=
-2.2008
c=
3.1222
d=
-4.0274
e=
-4.9980
Contoh 3: Diketahui x=[1 2 3 4 5]'; y=[6 20 58 132 254]'; Bentuk
manakah yang paling cocok menggambarkan hubungan fungsional data x
dan y?
1) y a x
Mula-mula,
menjadi :
b
2) y a x 4
bentuk
1)
dilinearisasi
b
3) y a x c
ln( y) ln(a) b ln( x)
b1 =
2.3332
>> SSE1=sum((ya1*x.^b1).^2) SSE1 =
1.5553e+003
Dengan cara sama, bentuk
persamaan
ln( y 4) ln(a) b ln( x)
b
y a x 4 juga dilinearisasi
menjadi
b2 =
3.0000
>> SSE2=sum((y(a2*x.^b2+4)).^2) SSE2 =
1.1304e-027
Nilai SSE pada bentuk 2) lebih kecil daripada nilai SSE pada bentuk 1)
sehingga bentuk 2) lebih cocok menggambarkan hubungan fungsional
antara data x dan y.
0.1
0.2
0.3
0.4
0.5
0.4755
1.8534
2.4977
3.3227
b=
-1.9995
c=
1.0000
sse =
2.7640e-009
2) z ax
by
3) z a x y
b1 =
-1.9995
>> m=[x'.^2 y'.^2 ones(size(x'))]; RL2=m\z'; a2=RL2(1), b2=RL2(2),
c2=RL2(3)
a2 =
-2.5000
b2 =
2.500
0
c2 =
0.500
0
>> m=[ones(size(x')) log(x') log(y')]; RL3=m\z'; a3=RL3(1),
b3=RL3(2),c3=RL3(3)
a3 =
31.5583
b3
=
-26.8140
c3
=
57.1742
Berikut adalah kesimpulan pada penyelesaian persamaan regresi
Yr=f(x)
dengan menggunakan pembagian kiri (back slash)
( \ ):
1)
Data x dan y harus merupakan vektor
kolom.
2) Buat matrik m yang elemen-elemennya sesuai dengan bentuk ekspresi
data x pada fungsi Yr=f(x)), khusus untuk konstanta gunakan
ones(size((x))
3) Koefisien-koefisien yang dicari pada fungsi Yr=f(x) adalah
m\y
Berdasarkan 3 hal di atas, semua permasalahan tentang regresi, baik
pada regresi linear, regresi polinomial, ataupun regresi linear multi fungsi,
dapat diselesaikan. Pada Tabel 1.2 dapat dilihat beberapa bentuk
regresi dan linearisasi.
Bentuk
Linearisasi
RL
HASIL
y ax
[ x]
m\ y
y ax b
[x ones(size(x))]
m\ y
a RL
a RL(1)
yae
bx
ln( y) ln(a) bx
[ones(size(x)) x]
m \ log( y)
yax
m \ log( y)
yax
bx
m \ log( y)
yax
m \ log( y)
ya
bx c
b
ex
y e xb
a
y bc
3x
e x
ln( y) ln(a)
b
a x
ln( y)
xb
1
xb x b
ln( y)
a
a a
[ones(size(x)) 1. / x]
m \ log( y)
[x ones(size(x))]
m \ 1. / log(
y)
b RL(2)
a exp( RL(1))
b RL(2)
a exp( RL(1))
b RL(2)
a exp( RL(1))
b RL(2)
a exp( RL(1))
b RL(2)
c RL(3)
a exp( RL(1))
b RL(2)
1
a
RL(1)
RL(2)
b
RL(1)
a RL(1)
m\ y
b RL(2)
c RL(3)
36
3c
2a +
3b
2c
2a
3b
13
b=
2
c=
3
1.5.6
Contoh-contoh berikut memperlihatkan cara penyelesaian sistemsistem non linear yang terdiri dari 2 persamaan dalam bentuk fungsi implisit
dengan 2 variabel.
37
2a b 4 0
3
a 2b 9 0
>> F = @(x) [2*x(1).^2 + x(2) - 4; x(1).^3 + 2*x(2).^2 - 9];
>> Tebakan_Awal = [2; 1]; % tebakan awal sebagai hasil penyelesaian
>> xy = fsolve(F, Tebakan_Awal); x=xy(1), y=xy(2)
Optimization terminated: first-order optimality is less than
options.TolFun. x =
1.0000
y=
2.0000
Contoh 2 : Selesaikan persamaan non linear berikut:
3
2a a b 2b 19 0
2
a b 0.5 a b 6 0
>> f=@(x) [2*x(1).^3 + x(1).^2 + x(2).^3 + 2*x(2).^2 - 19;
x(1).^2 + x(2).^2 + 0.5*x(1).*x(2) - 6];
>> xy=fsolve(f , [1 3]), xy=fsolve(f , [3 3]), xy=fsolve(f , [-3 3])
Optimization terminated: first-order optimality is less than
options.TolFun. xy =
1.0000
2.0000
38
1.4269
2.3380
Anda bisa melihat, bahwa fsolve memiliki prinsip kerja mirip fzero,
jadi untuk menemukan harga nol lain eksekusi fungsi harus diulang lagi
dengan nilai awal yang lain. Anda disarankan membaca lebih lanjut tentang
fsolve pada MATLAB online help.
1.5.7
Syntax :
x = fminbnd(fungsi,x1,x2) dan x = fminsearch(fungsi,x0)
Contoh 1 : Tentukan minimum dari fungsi
polinom
>> y=@(x) 3*x.^3 -4*x - 5;
fminbnd(y, 0, 4)
y f (x) 3x 4x 5
ans =
0.6667
Contoh 2: Diketahui vektor koefisien fungsi polinom p=[1 2 3 4 5 6 -7
-8 -9]. Tentukanlah titik-titik minimum dan maksimumnya.
39
ymin =
-14.2007
Jadi, pada interval dari -20 s/d 20, terdapat titik mnimum (-1,3462 ;
-14,2007)
Untuk mencari titik maksimum, fungsi polinom harus dikalikan dengan
faktor -1, sehingga :
>> y2=@(x) -polyval(p,x); xmax=fminbnd(y2,-20,20), ymax=y2(xmax)
Benarkah telah dihasilkan titik maksimum??? Untuk membuktikan
hal tersebut, kurva fungsi polinom digambarkan pada interval -20 s/d 20
dan pada interval -2 s/d 1.5 sebagai berikut:
10
x 10
140
120
2.5
100
2
80
1.5
60
1
40
0.5
20
-0.5
-20
-15
-10
-5
10
15
20
-20
-2
-1.5
-1
-0.5
0.5
1.5
Dari kurva diatas, terlihat jelas terdapat 2 titik mnimum absolut dan
1 titik
maksimum relatif. Hal ini membuktikan kebenaran titik mnimum yang
sudah dihitung tetapi sekaligus juga membuktikan adanya titik mnimum lain
dan kesalahan perhitungan titik maksimum yang dilakukan. Menyikapi hal
ini, maka sangat baik untuk mengikuti saran berikut:
xmin2 =
0.6106
>> ymin=y([xmin1 , xmin2])
ymin =
-14.2007 -13.8561
Jadi, kurva memiliki 2 titik mnimum pada (-1,3462 ; -14,2007) dan
(0,6106 ; 13,8561). Berikutnya untuk titik maksimum :
>> y=@(x) -polyval(p , x); xmax=fminbnd(y , -1 , 0) , ymax=-y(xmax)
xmax =
-0.4192
ymax =
-7.2032
y f (x1 , x2 ) 100(x2 x1 ) (1 x1 )
1.0000
MATLAB
online
help
atau
tepatnya
pada
MATLAB-
Contoh 1: Persamaan
y' y x dengan nilai awal (0 , 0) akan
diferensial
dicari
penyelesaian pada x = 0.2 ; 0.4 ; 0.6 dan 0,8, maka kode MATLAB-nya
adalah:
>> D=@(x,y) y - x; x0=0; y0=0;
>> Xspan=[x0 : 0.2 : 0.8];
>> [x , y]=ode45(D , Xspan , y0); [x y]
%fungsi eksplisit
ans =
0
0.200 0
0.400 -0.0214
0
0.600 0.0918
0
0.800
-0.2221
0
0.4255
Jika fungsi didefinisikan secara implisit, maka:
>> D=@(x,y,yp) y x - yp; x0=0; y0=0;
%fungsi implisit
0.200 0
0.400 -0.0214
0
0.600
-0.0918
0
0.800 0.2221
0
0.4256
2
Contoh 2: Diketahui persamaan
y' x 2x 1 dengan nilai awal
diferensial
y
(1,0). Buatlah tabel penyelesaian pada x = 2 ; 5 ; 7 ; 10
2.0000 3.0000
5.0000 24.000
0
7.0000 47.999
10.000 399.000
0
5
1.6
Latihan Soal-Soal
Jika a=[1:4;5:8;9:12] dan
b=[13:16;17:20;21:24], maka
(1)
b) a*b(1,:)'
c) a(:,3)
d) sum(a)
e) sum(a')
(2)
f) sum(a(2,2:3))
g) sum(a(2,2:3).^2)
(3) Diketahui matrik A berukuran 6x7. Jika elemen matrik B diambilkan dari
elemen-elemen matrik A dengan ketentuan bahwa:
a) Matrik B berukuran 3x3 dengan elemen-elemen pada baris ke- 1, 2,
dan 3 berturut-turut adalah elemen-elemen matrik A pada baris ke2, 4, dan 6 dan pada kolom ke- 1, 3, dan 4.
b) Matrik B berukuran 3x7 dengan elemen-elemen pada baris ke- 1, 2,
dan 3 berturut-turut adalah kuadrat dari elemen-elemen matrik A
pada baris ke1, 3, dan 6
Tentukan ekspresi yang diperlukan untuk membentuk matrik B
diatas. (4) Hitung jumlah seluruh bilangan ganjil pada interval 3 s/d
999
(5) Hitung jumlah kuadrat dari seluruh bilangan ganjil pada interval 3
s/d 999 (6) Hitung jumlah rata-rata dari 1 s/d 1000; 1001 s/d 2001 dan
3001 s/d 4000 (7) Nyatakan bilangan 0.012333333333333... sebagai
suatu pecahan
(8) Matrik A adalah matrik yang berukuran 4x6, nilai elemen-elemen pada
baris ke- 1 adalah [1 2 3 4 5 6]. Tentukan matrik A tersebut jika nilai
elemen-elemen pada baris ke- 2, 3, dan 4 berturut-turut merupakan
elemen-elemen pada
pada baris ke- 1 pangkat nomor barisnya masing-masing.
x 1 2
(9) Diketahui tabel data x dan y sebagai berikut :
y 0 14
44 96 176
a2) x vs 1/(5x-y)
a3)
x vs ln(y-
9.5
Waktu, detik
45
92
rF
t rc k
V
2
A dP
V 2A
dP
k
Vca ke
1 bar = 100000
Pa ;
a)
rc
0.001 Pa
b)
2
; Vcake A x tebal cake A
d ;L F
V Filtrat
rC
4
;
Hitung
a2) polyfit
(11) Jika data pada soal no (9b1) akan diperlembut dan diperluas untuk
x=1:0.1:5,
maka tentukan nilai y dengan menggunakan prinsip least square dan
prinsip
interpolasi/ekstrapolasi
(12) Tabel berikut adalah data tentang suhu T dan kapasitas panas Cp
suatu gas tertentu.
T[ K]
400
480
520
Cp[kal/(gmol K)
41
45
47
(13) Untuk
fungsi
y (2x 3)
dT .
x 3
, tentukan
x 1
y' y x 3x 2x
4
dengan
??
c. [3; 7; 11]
d. [15 18 21 24]
baris matrik a
f. 13
a(2,3)=7 g. 85
ukuran matrik a
jumlah kolom
matrik a nbaris=A(1)
jumlah
baris matrik a
(3) a) B=A([2 4 6],[1 3 4])
b) B=[A(1,:).^2; A(3,:).^2;
A(6,:).^2] (4) sum(3:2:999)
(5) sum([3:2:999].^2)
(6) sum([sum(1:1000) sum(1001:2001)
sum(3001:4000)])/3 (7) 37/3000
(8) a=[1 2 3 4 5 6]; A=[a; a.^2;
a.^3; a.^4] (9) x=[1 2 3 4 5]'; y=[0
14 44 96 176]';
a11) p1=polyfit(x,y,length(x)-1)
a12) RL1=[x.^4 x.^3 x.^2 x
ones(size(x))]\y a21) p2=polyfit(x, 1./
(5*x-y),length(x)-1)
q=polyint(p); Q=3*(polyval(q,510)-polyval(q,410))
(13) y=@(x) (2*x-3).^2-(x.^4+3)/(x.^2+1);
a)
x=fzero(y,1)
b)
x=fzero(@(x) y(x)-3,1)
c) x1=fzero(y,1);x2=fzero(y,10);
L=abs(quad(y,x1,x2))+quad(y,x2,7)316; f=@(a) abs(quad(y,a,x1))
+L;fzero(f,-3)
d)
f=@(a) quad(y,a,a+2)-316;a=fzero(f,10)
BAB 2
MEMBUAT
2.1
PROGRAM MATLAB
Pendahuluan
Sebuah program MATLAB sebenarnya adalah sekumpulan ekspresiekspresi MATLAB seperti yang Anda biasa tuliskan dalam MATLAB command
line window, tetapi kode-kode tersebut terkumpul dalam satu file dan akan
dieksekusi oleh MATLAB secara berurutan, satu persatu dengan cepat
sehingga mengesankan program tereksekusi secara serentak. Pada
prinsipnya program MATLAB dapat dituliskan melalui penggunaan suatu
text editor dan disimpan dalam bentuk file dengan ekstensi .m pada
folder tertentu yang dikehendaki sehingga membuat file tersebut masuk
dalam kategori MATLAB M-file.
Bab ini akan membahas program MATLAB dasar dan beberapa trik
pemrograman MATLAB. Melalui contoh-contoh yang diberikan, diharapkan
Anda dapat dengan lebih mudah memahami MATLAB ini sehingga dapat
dipergunakan untuk menyelesaikan beberapa permasalahan-permasalah
matematis dan pada gilirannya nanti dapat menyelesaikan permasalahanpermasalahan pada bidang teknik kimia. Jika dalam penulisan program Anda
mengalami keraguan tentang suatu syntax fungsi MATLAB, dianjurkan
Anda mengkombinasikan text-editor dengan help navigator.
2.1.
Membuat M-File
2.2
2.3
Pemrograman M-File
2.3.1 Script
Script adalah bentuk paling sederhana dari M-file yang tidak
menerima masukan ( tidak memiliki argumen input ) atau menghasilkan
argumen keluaran. Script dapat mengolah data yang sudah ada didalam
memori internal MATLAB, atau membuat data baru. Meskipun script tidak
menghasilkan keluaran argumen, setiap variabel yang dibuat tetap akan
berada pada memori internal MATLAB sehingga dapat digunakan pada
komputasi berikutnya. Sebagai tambahan, script juga dapat menghasilkan
keluaran grafis menggunakan perintah sejenis plot.
Contoh : Script berikut menghitung rho untuk beberapa fungsi
trigonometri,
kemudian
membuat
beberapa
gambar
Baris
% Komputasi
dalam
sistem
rho(3,:) = sin(theta) .^ 2;
rho(4,:) = 5 * cos(3.5 * theta) .^ 3;
for k = 1:4
polar(theta, rho(k,:))
% Keluaran
grafis pause
end
Jika ekspresi-ekspresi diatas akan dieksekusi, Anda harus menekan
tombol F5 atau klik debug-run. Pada saat mengeksekusi kode-kode
MATLAB untuk yang pertama kali, maka jendela Save file as akan
muncul dan Anda diminta memberi nama file dan menyimpannya pada
folder tertentu. Untuk itu masukkan saja nama file ( tanpa nama
ekstensi ), yang tentunya juga harus mengikuti aturan pembuatan nama
variabel.
Setelah script menampilkan sebuah grafik, tekan tombol ENTER
untuk menggerakkan gambar grafik berikutnya. Dalam hal ini tidak ada
argumen masukan atau keluaran, ekspresi-ekspresi diatas hanya membuat
variabel- variabel yang dibutuhkan di dalam memori internal MATLAB.
Ketika eksekusi telah lengkap, variabel-variabel (i, theta, dan rho) tetap
berada dalam memori. Jika Anda ingin melihatnya, ketikkan saja pada
command line windows : whos.
2.3.2 Function
Function
adalah
salah
satu
bentuk
M-File yang
dapat
menerima argumen masukan dan menghasilkan argumen keluaran. Function
bekerja dengan variabel-variabel yang berasal dari argumen masukan dan
atau variabel- variabel yang berlaku secara lokal, artinya setiap M-File
function memiliki daerah memori tersendiri dan terpisah dengan memori
MATLAB. Selama menggunakan MATLAB, satu-satunya variabel yang dapat
diakses keluar dari sebuah function adalah variabel dari argumen keluaran
yang telah didefinisikan pada function tersebut. MATLAB menyediakan
beberapa jenis function, diantaranya adalah:
- Primary M-file function, yakni
- Subfunctions merupakan
sub-rutin
dari
fungsi
utama.
Anda
dapat menggunakan subfunction ini untuk mendefinisikan rangkaian
fungsi didalam sebuah M-file.
menuliskan
menyimpannya dengan
fungsi
nama
RL.m,
diatas
maka
dengan
text-editor
jika sebuah
pernyataan berikut :
clc
x=1 : 0.1 : 100; y=2*x + 5; [a, b, sse]=RL(x,y);
fprintf('slope
= %1.4f \n',a); fprintf('intercept = %1.4f \n',b);
fprintf('SSE
= %1.4f \n',sse);
,maka jika dieksekusi akan menghasilkan :
slope
=
2.0000 intercept
= 5.0000
SSE
= 0.0000
dan
script berisi
2
f (x, y) 2 x x akan didefinisikan dan dihitung nilai
y
fungsi
x 2 ; 3 ; 4 dan y 3 ; 7 ; 2
39
40
2.4
suatu ekspresi
logika
tertentu.
Bentuk
paling
sederhana
dari
indeks
Bentuk while
Bentuk umum pengulangan menggunakan while adalah :
while ekspresi
[kode atau blok
kode] End
Kode atau blok kode akan diulang seterusnya selama ekspresi
bernilai benar. Jika ekspresi pada tahap awal sudah salah, maka tidak terjadi
pengulangan.
Contoh : Program berikut menghasilkan perkalian 1 x 1 x 2 x 3 x 4 = 24
A=1;
i=1;
while i<=4
A=A*i;
i=i+1;
end
A
2.4.3 Break
Untuk mengakhiri suatu pengulangan menggunakan for atau
while, maka digunakan break. Berikut adalah bentuk lain dari program
contoh diatas, yang mana sama-sama menghasilkan nilai A=24
A=1;
i=1;
while
i<100
A=A*i
;
i=i+
1;
break
if
i==5
end
end
A
2.5
Referensi Simbol-Simbol
keperluan
mencetak
teks
program
adalah
Dot-Dot-
Dot (Ellipsis) ( ... ). Simbol ini berguna untuk memutus suatu baris ekspresi
dalam MATLAB dan melanjutkannya pada baris berikutnya. Tanda ini tidak
dapat digunakan untuk memotong string panjang yang terletak dalam tanda
single quotes.
2.6
Built-in Function
MATLAB
dapat melihatnya
sendiri
pada
List.
Fungsi-fungsi
tersebut
ada
yang
2.7
Grafik
b) plot(x1,'o')
c) plot(x1,'r')
d) plot(x1,'o-r')
b) plot(x1,y(x1))
c)
e)
b) plot(x2,y(x2),'-.or')
marker type, marker size, marker face and edge coloring (for filled
markers)
Line Style Specifiers:
Specifier
-
--
-.
(default)
Marker Specifiers
Specifier
Marker Type
Plus sign
Circle
Asterisk
Point
Cross
'square' or s
'diamond' or d
Square
Diamond
Upward-pointing triangle
Downward-pointing triangle
>
Right-pointing triangle
<
Left-pointing triangle
'pentagram' or
p
Color Specifiers
Specifier
Color
color
Contoh : plot(x,y,'-.or') adalah cara penggambaran titik-titik data y versus
data x menggunakan dash-dot line (-.), circular markers (o) pada setiap
titik data, dan menggunakan warna merah (r, red) untuk garis dan marker.
Syntax:
fplot(fungsi,limits)
fplot(fungsi,limits,LineSpe
c)
Fungsi fplot harus dalam bentuk y = f(x), dimana x adalah vektor
dengan batas-batas tertentu dan y adalah vektor dengan ukuran yang
sama dengan vektor x dan berisi nilai fungsi tersebut pada / didalam
interval x. Argumen limits dapat berupa interval dalam x ( [xmin
xmaks]
) atau interval dalam x dan y sekaligus ( [xmin xmaks ymin ymaks] ).
Perhatikan contoh-contoh berikut:
1)
2*pi])
y=@sin; fplot(y,[0
2)
y=@(x) 200*sin(x)./x; fplot(y,[20 20])
3)
y=@(x) sin(x); fplot(y,[0 2*pi
-1.5 1.5])
4)
y=@(x) 0.5*sin(1.5*x); fplot(y,[0 2*pi -1.5
1.5],'-r')
5)
y=@(x) [sin(x) 0.5*sin(1.5*x)]; fplot(y,[0
2*pi])
Pada contoh 1) terlihat fungsi built in MATLAB sin diawali dengan
simbol
@ dan penggambaran dilakukan pada interval sumbu x dari 0 s/d 2 .
Pada
contoh 2) digunakan fungsi anonymous dan penggambaran pada interval
sumbu x dari -20 s/d 20. Pada contoh 3) digunakan fungsi anonymous
dan penggambaran pada interval sumbu x dari 0 s/d 2 dan sekaligus
juga pada
sumbu y dari -1.5 s/d 1.5. Pada contoh 4) didefinisikan juga LineSpec jenis
garis berwarna merah. Terakhir pada contoh 5) dua buah fungsi berbeda
digambarkan dalam interval sumbu x dari 0 s/d 2 .
Jika fungsi didefinisikan melalui M-file, maka dilakukan seperti
berikut: Misal diinginkan fungsi y dapat menghasilkan 4 vektor kolom,
maka:
function
y
=
myfun(x)
y(:,1) = 20*sin(x(:))./x(:);
y(:,2) =
10*sin(x(:)).^2./x;
y(:,3) = (x.^2+1).^0.5;
y(:,4) = 20*sin(x(:)-pi)./(x(:)
+5*pi).^0.5;
2.8
ekstrim
(makimum
-1.5
-1
-0.5
0.5
1.5
Jawab : b) Dari kurva juga terlihat, pada y=12 terdapat 2 nilai x, yakni antara
-2 s/d
-1.5 dan antara 1 s/d 1.5. Dengan demikian pada program diatas
dapat ditambahkan kode-kode berikut:
g=@(x) polyval(p,x)-12; fzero(g,-2),
fzero(g,1) Jawab : c) g=@(a) quad(y,3,a)20000; fzero(g, 4)
Jawab : d) Mnimum : fminbnd(y,-1.5, -1), fminbnd(y,0.5, 1)
Maksimum : y=@(x) -polyval(p,x) ; fminbnd(y,0.5, 0)
Dari contoh d) terlihat, titik maksimum juga bisa ditentukan dengan
menggunakan fminbnd, asalkan fungsi asalnya dikalikan dahulu
dengan bilangan -1.
Contoh 2: Diketahui polinom y=f(x) dengan vektor koefisien polinom : p=[1
2 3 4
5 6 -7 -8 -9]; tentukanlah nilai batas integrasi bawahnya supaya integrasi
fungsi tersebut hingga batas integrasi atas 3 bernilai 15
p=[1 2 3 4 5 6 -7 -8 -9];
b=3;
q=polyint(p);
y=@(x) polyval(q,b)polyval(q,x)-15 a=fzero(y,2)
Jawaban alternatif berikut menggunakan fungsi
quad. p=[1 2 3 4 5 6 -7 -8 -9];
y=@(x) polyval(p,x);
g=@(a) quad(y,a,3)-15;
fzero(g,2)
Contoh 3:
Diketahui
2x
2
x 1
5x 4 e
2 x
, hitunglah :
y ax 4 e
2 x
diatas
untuk x = 2 adalah 10.5
x=2; y=@(a) a*x+4*exp(-2*x)-10.5;
fzero(y,3)
Jawaban alternatif berikut menggunakan manipulasi aljabar, tanpa fzero
x=2; y=10.5;
a=(y-4*exp(-2*x))/x
built
in
MATLAB
ode45
dan
kerabatnya
sebenarnya
Berikut
dapat
akan
dibuat
suatu
otomatis. Terima
nama ini
dengan
menekan
tombol
ENTER.
Berikutnya buka M-file baru atau jendela command line dan ketikkan
ekspresi-ekspresi berikut untuk menyelesaikan permasalahan diatas:
Dy
=@(x,y)
x.^2+2*x-y;
awal=[0
0];
h=0.1;
y=@(x)
PDORK(Dy,awal,h,x)-9;
fzero(y,2
)
the squared error) yang minimum antara data yang diketahui dan data
perhitungan. SSE didefinisikan dengan menggunakan rumus berikut:
yang
paling cocok menggunakan metode least square.
x=[1 2 3 4 5]; y=[5 7 9
11 13]; k=4; Y=@(X)
k*X+3; SSE=sum((yY(x)).^2)
Jika nilai k diubah dari 4 menjadi 3, maka didapatkan nilai SSE yang lebih
kecil. Artinya nilai k yang cocok kemungkinan berada pada nilai SSE yang
lebih kecil dari pada 3. Jika dicoba lagi nilai k = 2, ternyata didapatkan nilai
SSE = 0 yang mana menandakan SSE sudah mencapai nilai minimum. Jadi
nilai k yang cocok adalah 2
Contoh 2 : Jika contoh soal 1 diselesaikan dengan menggunakan fungsi,
maka mula-mula dibuatkan dahulu M-file function berikut:
function
f=SSE(x,y,k)
fun=@(x) k*x + 3;
f=sum((yfun(x)).^2);
Kemudian dilanjutkan dengan membuat script berikut:
clc
x=[1 2 3 4 5]; y=[5 7 9 11 13];
k=1;
% nilai perkiraan
awal utk k k=fminbnd(@(k) SSE(x,y,k),-10, 10)
Contoh 3 : Jika data yang sama didekati
dengan dan n yang cocok.
y mx n , maka tentukanlah
m
x 1 2 3 2 1
Cocokkan data
y 4 13 28 13 4
y ax 1 dan
y ax c
b)
dilanjutkan
clc
x=[1 2 3 4
5];
y=[4 13 28 49
76];
ab=fminsearch(@(k)
dengan
membuat
SSE2(x,y,k),[10
script
10]);
a=ab(1),
b=ab(2)
abc=fminsearch(@(k) SSE3(x,y,k),[10 10
10]);
a=abc(1),
b=abc(2),
c=abc(3)
Untuk soal a) dapat diperbandingkan dengan jawaban alternatif
menggunakan metode linearisasi berikut:
clc
x=[1 2 3 4 5]';
y=[4 13 28 49 76]';
m=[ones(size(x))
log(x)]; RL=m\log(y-1);
a=exp(RL(1)), b=RL(2)
x 0 1 2 3 4
yang akan
y 0 1 4 9 16
dan
y' ax cx y .
b)
Persamaan-persamaan diferensial ordiner (PDO) order 1 tersebut memiliki
nilai awal (0 ; 0). Tentukan nilai konstanta-konstanta yang tidak diketahui
dan buat tabel perbandingan antara data y dan y terhitung.
a)
berikut:
y' ax bx
y
Buat 2 M-file
for i=xi+h:h:x(jx)
k1=h*fun(xi,yi); k2=h*fun(xi+h/2,yi+k1/2);
k3=h*fun(xi+h/2,yi+k2/2);
k4=h*fun(xi+h,yi+k3);
K=(k1+2*k2+2*k3+k4)/6;
xi=xi+h;
yi=yi+K;
end
yhit(jx)=yi;
f=f+(y(jx)yi).^2;
end
fSSE=f
;
b)
2.9
1)
Latihan Soal-Soal
b)
yx 2e
3
x 1
dengan
yx
2x
2
x 2
x 1
2
3
5
7
0.1 0.2 0.3 0.4
y 1.6 4.7 9.5 25.4 49.3 0.11 0.22 0.38 0.53
5)
y' ax bx c y ,
maka
Persamaan Antoinne ln p A
B
berikut adalah persamaan
T C empiris
yang menghubungkan data tekanan (mmHg) dan suhu (K) dari zat
tertentu. Hitung tekanan zat-zat berikut pada suhu T=30 ; 40 ; 50 dan
60 C dengan menggunakan alur perhitungan a) tekanan semua zat
untuk setiap suhu b) tekanan setiap zat untuk semua suhu
0
A
Amonia
Metanol
Etanol
Water
dengan
y ax b ln( x) ,
maka
tentukanlah nilai a dan b terbaik menggunakan metode regresi linear
multi fungsi (dengan operator back slash) dan metode least square
( dengan SSE )
8)
0.86 ln (
3.7
a) Jika kekasaran
/ D 10
relatif
5
Re 10 , hitunglah faktor gesek f
2.51
)
f
Re
dan
4
b) Jika
kekasaran
/ D 10
relatif
hitunglah pada nilai Re berapa
faktor gesek f bernilai 0.02.
5
Script :
ulang=1;
while ulang
clc
a=input('Angka Anda = ');
if a==0
disp('sebuah bilangan nol')
elseif
rem(a,2)==1
if isprime(a)
disp('sebuah bilangan ganjil yang prima')
else
disp('sebuah bilangan ganjil yang bukan prima')
end
elseif
rem(a,2)==0
if isprime(a)
disp('sebuah bilangan genap yang prima')
else
disp('sebuah bilangan genap')
end
else
disp('bilangan apa ya???')
end
input('\nTekan ENTER untuk lanjut')
end
1b)
Script :
x=1 : 1000; jumlah=0;
for i=1:length(x)
if and(rem(x(i),2)==1,isprime(x(i)))
jumlah=jumlah+x(
i);
end
end
jumlah
2)
Script :
y=@(x) x.^2 +2*exp(x-1)-3;
Dy=@(x) (y(x+1e-4)- y(x-1e-4))/2/1e-4; %diferensiasi numeris
x0=4;
%diubah-ubah sesuai keperluan atau utk mencari akar lain
Tol=1e-5; selisih=1;
while selisih >=Tol
x1=x0y(x0)/Dy(x0);
selisih=abs(x1x0); x0=x1;
end x0
x0=fzero(y,
4)
3)
M-file function
function f=NewtonRaphson(y,x0)
Dy=@(x) (y(x+1e-4)- y(x-1e4))/2/1e-4; Tol=1e-5;
selisih=1;
while selisih >=Tol
x1=x0y(x0)/Dy(x0);
selisih=abs(x1x0); x0=x1;
end
f=x0
;
Script:
y=@(x) x.^2 +2*exp(x1)-3 x=
NewtonRaphson(y,4)
4)
Script:
y=@(x) x.^2+2*x./(x.^2+2)
Xdata=[1 2 3 5 7 0.1 0.2 0.3
0.4];
Ydata=[1.6 4.7 9.5 25.4 49.3 0.11 0.22
0.38 0.53]; SSE=sum(Ydata-y(Xdata)).^2
5)
M-file function:
function fSSE=SSE5(awal,h,x,y,abc)
n=length(x);
f=0;
a=abc(1); b=abc(2); c=abc(3);
fun=@(x,y) a*x.^2+b*x+c-y;
for jx=1:n
xi=awal(1); yi=awal(2);
for i=xi+h:h:x(jx)
k1=h*fun(xi,yi);
k2=h*fun(xi+h/2,yi+k1/2);
k3=h*fun(xi+h/2,yi+k2/2);
k4=h*fun(xi+h,yi+k3);
K=(k1+2*k2+2*k3+k4)/6; xi=xi+h; yi=yi+K;
end
f=f+(y(jx)-yi).^2;
end
fSSE=f
;
Scrift:
x=[1:4 0.1:0.1:0.5];
y =[6 12 20 30 2.31 2.64 2.99 3.36 3.75];
abc=[50 5 5]; h=0.1;
awal=[0 2];
abc=fminsearch(@(abc) SSE5(awal,h,x,y,abc),abc)
6)
Script:
%Persamaan Antoinne
%ln P = A - B/(T+C) --> P : mmHg T : K
clc
%Konstanta A, B, C dari persamaan
Antoinne amonia =[16.9481 2132.5
-32.98]; benzena=[15.9008 2788.51
-52.36];
aceton =[16.6513 2940.46
-35.93]; metanol=[18.5875
3626.55 -34.29]; etanol
=[18.9119 3803.98 -41.68];
water =[18.3036 3816.44
-46.13];
51.6094
]';
function f=SSE7b(x,y,k)
a=k(1);
b=k(2);
fun=@(x) a*x.^2+b*log(x);
f=sum((y-fun(x)).^2);
Script:
clc;
x=[1 2 3 4 5]';
y=[2.0000 8.6931 19.0986
33.3863 k=[1 1];
ab=fminsearch(@(k)
SSE7(x,y,k),k)
51.6094
]';
8a) Script:
clc
eps_per_D=1e4; Re=1e5;
g=@(f) f-1./(0.86*log(eps_per_D/3.7+2.51/Re/f.^0.5)).^2;
fzero(g,0.1)
8b)
Script:
clc
eps_per_D=1e4; f=0.02;
g=@(Re) f-1./(0.86*log(eps_per_D/3.7+2.51/Re/f.^0.5)).^2;
fplot(g,[1e4 1e5]); grid
on fzero(g,7e+4)
8c)
Script:
clc
f=0.018
9;
Re=1e+
5;
g=@(eps_per_D) f-1./(0.86*log(eps_per_D/3.7+2.51/Re/f.^0.5)).^2;
fplot(g,[1e-6 0.0002]); grid
on fzero(g,1e-4)
BAB 3
KOMPUTASI PROSES TEKNIK KIMIA
3.1
Pendahuluan
3.1
Pengayakan
80
Screen 1
undersize
h kg
dikumpulkan
berikut:
Recycled undersize
a kg
persamaan-persamaan
Untuk screen 1 :
b kg
Recycled undersize
c kg
e kg
d kg
(1) N=100
(2) h=N-d
N-d-h=0
(4) b=N. E1
N. E1-b=0
Untuk screen 2 :
Screen 2
Oversize to waste
g kg
f kg
Screen 3
(5) c=b+f
b-c+f=0
(7) e=c.E2
cE2-e=0
Untuk screen 3 :
(8) f=e-g
(9) g=e.E3
e-f-g=0
e.E3-g=0
Konstanta
100
-1
-1
-1
-1
E1
-1
-1
-1
-1
E2
-1
-1
-1
E3
-1
Persamaan
81
3.2
20
80 125
50
75
45
30
50
Sieving
No
i
Oversize Oversize
Cumulativ
product product
e
OP
percentage percentage
( kg )
( OPP )
( CPOP )
0,710
0,0139
0,500
0,0711
0,355
0,1201
0,250
0,1167
0,180
0,0763
0,125
0,0500
0,071
0,0346
0,045
0,0103
Pan
0,0070
Total M
0,5000
OP
Rumus : 1) OPPi
i
in
2) CPOPi
M
OPPi
3) PiPi
d Pi
i1
4) PuP
OPi
in
Probability percentage
size
particle
interval
PiP
(1/mm)
--
size
PuP
(1/mm)
OPPi
d (CPOP)
d (dp)
i1
Metode Penyelesaian :
1) Data dp dan OP dituliskan sebagai suatu vektor, sehingga OPP, CPOP dan
PiP
juga merupakan vektor dan dapat dihitung dengan kode-kode berikut
dp=[0.71 0.5 0.355 0.25 0.18 0.125 0.071 0.045 0];
OP=[0.0139 0.0711 0.1201 0.1167 0.0763 0.05 0.0346
0.0103 0.007]; M=sum(OP); OPP=OP/M; CPOP(1)=OPP(1);
PiP(1)=0;
for i=1:8
CPOP(i+1)=CPOP(i)+OPP(i+1);
PiP(i+1)=OPP(i+1)/(dp(i)dp(i+1));
end
2) Untuk menghubungkan CPOP sebagai suatu fungsi dari dp, dan PuP
sebagai turunan negatif dari CPOP ( rumus 4 ), diusulkan suatu fungsi
polinom order ke-7, sehingga :
fCPOP=polyfit(dp, CPOP,7); fPuP=-polyder(fCPOP);
3) Untuk mendapatkan nilai PuP untuk setiap nilai dp,
digunakan: PuP=polyval(fPuP,dp)
4) Sesuai definisi d , yakni nilai dp pada CPOP=50%, maka nilai dp
merupakan
harga nol dari fungsi polinom fCPOP dikurangi 0.5. Untuk itu perlu
dilakukan manipulasi berikut:
pm
fCPOP=polyfit(dp,
CPOP,7);
fPuP=-polyder(fCPOP);
PuP=polyval(fPuP,dp);
g=@(dp)
polyval(fCPOP,dp)-0.5;
dpm=fzero(g,0.2) h=@(dp) -polyval(fPuP,dp);
dpf=fminbnd(h,0.1,0.3) [dp' OP' OPP' CPOP'
PiP' PuP']
Program diatas harus Anda ketikkan menggunakan text editor
sebagai
M-File . Hasil eksekusi program diatas menghasilkan keluaran sebagai
berikut:
dpm
=
0.3133
dpf
=
0.2670
ans
=
0.7100 0.0139 0.0278 0.0278
0 0.1083
0.5000 0.0711 0.1422 0.1700 0.6771 1.2144
0.3550 0.1201 0.2402 0.4102 1.6566 2.0673
0.2500 0.1167 0.2334 0.6436 2.2229 2.2777
0.1800 0.0763 0.1526 0.7962 2.1800 2.0235
0.1250 0.0500 0.1000 0.8962 1.8182 1.5778
0.0710 0.0346 0.0692 0.9654 1.2815 0.9607
0.0450 0.0103 0.0206 0.9860 0.7923 0.6193
0 0.0070 0.0140 1.0000 0.3111
0.0017
Berikut adalah alternatif penyelesaian menggunakan
pendekatan distribusi
RRSB,
dimana
rumus
2
didekati
dengan
persamaan
CPOP exp
[(dp
n
dpp) ] dengan dpp dan n adalah parameter dari
distribusi
RRSB. Kembangkanlah program sieving diatas untuk menggambarkan
kurva CPOP dan PuP versus dp dan tentukan nilai dpm , dpF , dpmin dan
dpmaks ( dpmin dan dpmaks adalah dp dengan CPOP=0.999 dan 0.001)
Metode Penyelesaian :
1)
Perhitungan untuk
sebelumnya, yakni:
M,
PiP,
dan
CPOP
identik
dengan
program
0.2287
0.0070
0.0140
1.0000
6
0.3111
n_dpp =
2.0075
0.3760
dpmin_dpmaks =
0.0120
0.9847
dpm_dpF =
0.3133
3.3
0.1887
Hubungan Cp versus T
300
400
500
600
700
800
Cp
[ Joule/gmol K ]
39.87
39.85
39.90
45.16
45.23
45.17
50.72
51.03
50.90
56.85
56.80
57.02
63.01
63.09
63.14
69.52
69.68
69.63
Metode Penyelesaian :
1) Mula-mula data T dan Cp dapat Anda tuliskan dengan susunan berikut :
clc
T=[300 400 500 600 700 800]';
%suhu, C Cp=[39.87 39.85 39.9; 45.16 45.23
45.17;
50.72 51.03 50.90; 56.85 56.8 57.02;
63.01 63.09 63.14; 69.52 69.68 69.63]'; % J/gmol/K
2) Menghitung Cpr, yakni Cp rata-rata pada suhu T. Elemen-elemen Cpr
harus tersusun sebagai vektor kolom (mengapa?), maka dapat digunakan
rumus :
Cpr=sum(Cp/3)';
3) Bentuk regresi polinom order 2 adalah sesuai
Cp aT bT c ,
dengan sehingga :
RL=[ T.^2 T ones(size(T))]\Cpr;
p=polyfit(T,Cpr,2);
%atau
Q2
Cp
dT
350
Pemrograman :
T=[300 400 500 600 700 800]';
%suhu, C Cp=[39.87 39.85 39.9; 45.16 45.23
45.17;
50.72 51.03 50.90; 56.85 56.8 57.02;
% J/gmol/K
ans =
729.7438
ans =
4.3221e+004
3.4
Hubungan P versus T
Diketahui beberapa data tekanan dan suhu dari uap air sebagai
berikut.
T, C
10
p, kPa
1.228
20
30
2.338 4.242
40
50
7.375 12.33
3
60
70
19.92
31.16
80
90
47.34 70.1
Metode Penyelesaian :
1) Data suhu T dan tekanan p disusun sebagai vektor kolom sebagai berikut.
T=[10 20 30 40 50 60 70 80 90]';
p=[1.228 2.338 4.242 7.375 12.333 19.92 31.16 47.34 70.1]';
2) Linearisasi
menghasilkan
dapat dilakukan
dengan
ln(p) = a/T+b,
2
cara,
yaitu
sehingga
dengan
penyelesaiannya
dan
keluaran
berikut: P1 =
5.5579
P2 =
5.5579
ans =
60.3167
3.5
Proses Filtrasi pada Filter Testing Unit
(FTU)
Tabel berikut adalah data hasil percobaan filtrasi pada FTU
dengan viskositas filtrat = 0,001 Pa.s ; diameter media filter d = 0,2 m;
dan beda tekanan
P = 0.5 bar . Jika A adalah luas penampang filter dan diperoleh cake
dengan
tebal rata-rata tcr = 0,82 cm, maka hitung nilai tahanan-tahanan
filtrasi rc
dan rF
serta tebal cake ekivalen L. Gambarkan juga data filtrasi dan garis filtrasinya.
Waktu t [
45 92
detik]
Volume V [ L]
160
290
405
586
788
rc k
rF
Rumus : t
V
2
V
2 A P
A P
r
dan L F
serta
rc
Metode Penyelesaian
1) Pemasukan data yang diketahui
1060 1328
8
Vc
V
1520
9,5
V=[1:9 9.5]';
%volume filtrat, L V=V/1000;
%konversi ke m3
sehingga
penyelesaiannya
Ingat:
Penggunaan
bisa
dengan
back slash)
cara,
yaitu
Vc=A*tcr;
%Volume cake, m3
k=Vc/V(length(V));
%konstanta
proporsional rc=slope*2*A^2*dP/miu/k;
%specific cake resistence rf=intercept*A*dP/miu;
%filter medium resistence L=rf/rc*1000;
%tebal eqivalen, mm disp('Cake filtration pada beda tekanan
konstan');
fprintf(' rc [1/m2] = %1.3e
\n',rc); fprintf(' rf [1/m] =
%1.3e \n',rf); fprintf(' L [mm]
= %3.0g \n',L);
plot(V,t./V,'*'); hold on
%plot titik data
fgf=@(V)
RL(1)*V+RL(2);
xr=(0:0.0001:0.01)';
yr=fgf(xr);
plot(xr,yr,'-r','LineWidth',2); grid on
xlabel('V [m3]'); ylabel('t/V [sm-3]')
title('Cake Filtration'); legend(2,'0.5
bar');
Eksekusi program akan menghasilkan keluaran
berikut: Cake filtration pada beda tekanan konstan
rc [1/m2] =
5.149e+013 rf [1/m]
= 2.781e+010
L [mm]
= 0.5
3.6
G ; Tu1 ; H1
solid
Ls ; Ts1 ; X1
Udara
G ; Tu2 ; H2
Dryer
Ls ; Ts2 ; X2
Pada
sebuah
continuous countercurrent
a) Padatan
- Ls
- Ts1 = 26,7 C
Cps = 1,465 kJ/kg/K
(konstant)
0
b) Udara
- Udara masuk : G=1166 kg dry air/h ; Tu2=93,3 C ;
H O/kg dry air
- Udara keluar : Tu1=37,8 C
0
H2=0,01 kg
dengan
asumsi tidak ada panas yang hilang.
Penyelesaian :
Entalpi udara masuk :
Eu2 = cs (Tu2-To)+H2 o = (1,005 + 1,88 . 0,01) . (93,3 0) + 0,01 .
2501
= 120,5 kJ/kg dry air
Entalpi udara keluar :
Eu1 = cs (Tu1-To)+ H1 o = (1,005 + 1,88 . H1) . (37,8 0) + H1 .
2501
= 37,989 + 2572,064 H1
Entalpi padatan masuk :
Es1
G H2 + Ls X1 = G H1 + Ls X2
3.7
Proses Level
Lc h
st
hst
FL
dM
dh sehingga :
dt A dt
Fc h
dh F c h
dh
dM
dt
dt
dt
A
3.8
Batch Sedimentation
Pada batch sedimentation dari limestone slurry diperoleh data
0.2
0.4
1.74
4.74 12
20
Hc =
14.1750
3.9
Distilasi Sederhana pada Tekanan
Atmosfer
Cairan biner mengandung 50 mol% n-heptane (A) dan 50 mol% noctane
(B) di distilasi secara diferensial pada tekanan atmosfer hingga 60% cairan
dapat
terdistilasi. Hitung komposisi dari
distilat
y D,
dan residu xW
avg
Rumus :
1)
2)
xF
xW
F W
dx
*
(persamaan Rayleight)
dan F x F D y D, avg W xW
F=100;
xF=0.5;
D=0.6*F;
W=F-D;
SisiKiri=log(F/W);
*
1 ( y x) didekati sebagai
fungsi
polinom order ke- 5 menggunakan fungsi MATLAB polyfit. Fungsi
polinom yang didapat kemudian diintegralkan menggunakan fungsi
MATLAB polyint
dan dievaluasi nilainya pada
dan
menggunakan fungsi
xF
xW
polyval.
Karena
xW
belum
diketahui
MATLAB
nilainya
xW
adalah
nilai
yang
dicari/ditanyakan!!), maka
xW
persamaan
Rayleight pada sisi kiri dan sisi kanan memiliki nilai yang sama.
p=polyfit(x,1./(yb-x),5);
q=polyint(p);
g=@(xw) polyval(q,xF)-polyval(q,xw)-SisiKiri;
xW=fzero(g,0.3)
3) Komposisi distilat terkumpul kemudian dapat dihitung melalui rumus :
y D, avg
F x F W xW
D
Pemrograman
x=[0.5 0.46 0.42 0.38 0.34 0.32]'; %data kesetimbangan nheptane yb=[0.689 .648 .608 .567 .523 .497]';
F=100;
%basis feed, mol
xF=0.5;
%utk komponen n-heptane
D=0.6*F;
%distilat 60%, mol
W=F-D;
%residu, mol
SisiKiri=log(F/W);
%Nilai sisi kiri persamaan
Rayleight p=polyfit(x,1./(yb-x),5); q=polyint(p);
g=@(xw) polyval(q,xF)-polyval(q,xw)-SisiKiri;
xW=fzero(g,0.3)
yDavg=(F*xF-W*xW)/D
%komposisi distilat terkumpul
Hasil eksekusi program diatas adalah keluaran berikut:
xW =
0.328
7 yDavg
=
0.6142
Alternatif jawaban soal :
Permasalahan diatas juga dapat diselesaikan dengan cara berikut:
*
y (1
x (1 y
)
2) Hitung
nilai
xW
dengan
menggunakan
hubungan
persamaan:
log
F xF
F (1 x F )
avg log
W xW
W (1 xW )
Pemrograman :
x=[0.5 0.46 0.42 0.38 0.34 0.32]'; %data kesetimbangan nheptane yb=[0.689 .648 .608 .567 .523 .497]';
F=100; xF=0.5; D=0.6*F;
W=F-D; DataY=yb.*(1-x);
DataX=x.*(1-yb);
alfa=DataX\DataY;
%Cara MATLAB dgn operator \
g=@(xW) F*xF/W./xW-(F*(1-xF)/W./(1-xW))^alfa;
fplot(g,[0.1 0.5]); grid on
xW=fzero(g,0.3), yDavg=(F*xF-W*xW)/D
Hasil eksekusi program diatas adalah keluaran berikut:
xW =
0.328
9 yDavg
=
0.6140
0.50
1370
Koefisie
n
Distribu
si
m=p/pt
?
0.25
550
0.25
200
y *D
W
1)
D
W
(
1)
Dm
z F(
xW
y
D
m
y *D 1 ,
z F ,i (WperD 1)
1 . Fungsi ini didefinisikan
dalam
i 1 WperD / mi 1
MATLAB sebagai sebuah fungsi anonymous berikut:
3
Sigma f (WperD)
Untuk mengetahui titik awal yang paling dekat dengan nilai WperD yang
dicari,
maka fungsi Sigma dapat digambarkan dengan menggunakan
fungsi
MATLAB fplot berikut:
fplot(Sigma,[1 5]); grid on;
Interval [1 5] dapat diubah-ubah sesuai keperluan. Dari kurva fungsi
yang diperoleh, akhirnya dapat diketahui bahwa nilai awal senilai 2
dapat dipakai,
sehingga :
WperD=fzero(Sigma,2);
3) Dengan diketahuinya nilai WperD, maka nilai
y
dan xW
untuk tiap
F W D
(1)
dan
W
WperD
D
atau
0W
DWperD
(2)
%keluaran program
disp('FLASH VAPORIZATION')
disp('Komponen Feed Cairan Uap')
fprintf(' benzene %0.2f %0.4f
%0.4f\n',zF(1),xW(1),yD(1)) fprintf(' toluene %0.2f
%0.4f %0.4f\n',zF(2),xW(2),yD(2)) fprintf(' 0-xylene
%0.2f %0.4f %0.4f\n',zF(3),xW(3),yD(3)) disp('Basis F
= 100 mol, maka')
fprintf(' Cairan = %2.2f mol Uap = %2.2f mol \n',WdanD(1),WdanD(2))
Program ini harus Anda ketikkan sebagai M-File dan hasil eksekusi
program diatas menghasilkan keluaran berikut:
FLASH VAPORIZATION
Komponen Feed Cairan
Uap benzene 0.50 0.3965
0.7147 toluene 0.25 0.2747
0.1988
0-xylene 0.25 0.3288 0.0865
Basis F = 100 mol, maka
Cairan = 67.46 mol Uap = 32.54 mol
zF,
Komponen
fraksi
mol
Koefisien Distribusi
0
0
Kesetimbangan m
0
m82
30 C
60 C
90 C
120 C
82 C
L
1)
G
y
L
1
Gm
z F(
C1 : CH4
0.03
16.1
19.3
21.8
24.0
C2: C2H6
0.07
3.45
4.90
6.25
8.15
C3: n-C3H8
0.15
1.10
2.00
2.90
4.00
C4: n-C4H10
0.33
0.35
0.70
1.16
1.78
C5: n-C5H12
0.30
0.085
0.26
0.50
0.84
C6: n-C6H14
0.12
0.030
0.13
0.239
0.448
?
6
i1
1.
i1
G .
1L
G
4) Untuk melihat kurva fungsi Sigma di dalam interval [1 5], menghitung nilai
L/G ,
kualitas uap dan komposisinya, maka digunakan kode-kode berikut:
fplot(Sigma,[1 5]); grid on ;
LperG=fzero(Sigma,1.5); q=LperG/
(1+LperG); y=zF.*(LperG+1)./
(LperG./m82+1)
Pemrograman :
T=[30 60 90 120];
m30=[16.1 3.45 1.1 0.35 0.085
0.03]; m60=[19.3 4.9 2 0.7
0.26 0.13]; m90=[21.8 6.25 2.9
1.16 0.5 0.239]; m120=[24
8.15 4 1.78 0.84 0.448];
zF=[0.03 0.07 0.15 0.33 0.3 0.12];
m82=interp1(T,[m30; m60; m90; m120],82)
%interpolasi linear
Sigma=@(LperG) sum(zF.*(LperG+1)./(LperG./m82+1))1; fplot(Sigma,[1 5]); grid on ; %melihat titik potong
smb LperG LperG=fzero(Sigma,1.5); q=LperG/(1+LperG)
y=zF.*(LperG+1)./(LperG./m82+1)
Berikut adalah hasil
eksekusinya. m82 =
21.1333
5.8900
2.6600
1.0373
0.4360
0.2099 q =
0.615
7y=
0.0726
0.1432
0.2436
0.3375
0.1670
0.0362
0.215
z2 z1 + f.Le.v / 2/g/D Hm = 0
Hitung kecepatan aliran dalam pipa v untuk rho=1 g/cm3, miu=0.01
g/cm/det, g=981 cm/det2, z = 300 cm, dan z = 800 cm
1
Le=20000;
%cm, panjang ekivalen pipa
Tol=0.001; dv=1; v=200; %perkiraan
awal while dv > Tol
Re=rho*v*D/miu; f=0.0596/Re^0.215;
Q=pi/4*D^2*v; Hm=3718.5-2.3496*Q+7.8474e4*Q.^2-9.5812e-8*Q.^3; fPB=@(v) z2z1+f*Le*v^2/2/g/D-Hm; v1=fzero(fPB,v);
dv=abs(v1-v); v=v1;
end
Q=pi/4*D^2*v;
fprintf('Kecepatan : %g cm/det.\n',v)
fprintf('Debit : %g cm3/det.\n',Q)
Eksekusi prorgram diatas
menghasilkan : Kecepatan : 227.674 cm/det.
Debit : 2861.03 cm3/det.
Pemrograman 2:
rho=1; miu=0.01; g=981; z1=300; z2=800; D=4;
Le=20000; Re=@(v) rho*v*D/miu; f=@(v)
0.0596./Re(v)^0.215;
Q=@(v) pi/4*D^2*v;
Hm =@(v) 3718.5 - 2.3496*Q(v) + 7.8474e-4*Q(v)^2-9.5812e-8*Q(v)^3;
fPB=@(v) z2-z1 + f(v)*Le*v^2/2/g/D-Hm(v);
v=fzero(fPB,200);
fprintf('Kecepatan : %g cm/det.\n',v)
fprintf('Debit : %g cm3/det.\n',Q(v))
Eksekusi prorgram diatas
menghasilkan : Kecepatan : 227.674 cm/det.
Debit : 2861.03 cm3/det.
Berikut adalah penyelesaian dengan menggunakan M-File
function
menggunakan kode-kode berikut:
function k=KecAlir(v,z1,z2,Le,D,rho,miu,g)
Re=rho*v*D/miu; f=0.0596/Re^0.215;
Q=pi/4*D^2*v; Hm=3718.5-2.3496*Q+7.8474e4*Q^2-9.5812e-8*Q^3; k=z2z1+f*Le*v^2/2/g/D-Hm;
berisi
Mulai
berkadar
larutan)
ke dalam tangki
F 15 kg/menit dan secara bersamaan
sebanyak
juga
dikeluarkan cairan dari dalam tangki sebanyak L kg/menit. Tentukanlah
kadar garam larutan keluar tangki setiap t 30 menit jika dianggap terjadi
pengadukan yang sempurna. Tinjaulah untuk beberapa kasus nilai F L
Metode Penyelesaian :
Dari neraca massa total
diperoleh :
FL
dM
dt
M M0t
dM
dx
Dari neraca massa komponen F x L x d (Mx) x
F
L
M
dt
dt
:
dt
Asumsi pengadukan sempurna adalah mengandaikan bahwa
proses
pengadukan telah mengakibatkan homogenisasi konsentrasi cairan dalam
tangki disetiap sudut dalam tangki sehingga dapat dikatakan konsentrasi
cairan dalam tangki sama dengan konsentrasi keluar tangki. Jika konsentrasi
cairan dalam dan keluar tangki sama dengan x, maka neraca massa
komponen berubah menjadi:
F xF L x x
dM
dx
M
dt
dt
a)
Jika L = F,
maka :
dx F xF L x
dt
M
dt
F . xF L x x (F L) M (F L) t
dx
0
dt
b) Jika L < F,
maka :
Fx
dx
F Fx
sehingga
dt
M 0 (F L) t
:
F
( x xF )
M0 t
F . xF L x x (F L) M (F L) t
dx
0
dt
c) Jika L > F,
maka :
sehingga
:
Fx Lxx.0M
dx
dx
dt
F
M0 t
(t 0 ; x0 ) (0; 0) .
k1
air
k2
,dengan
reaktan
Waktu
[menit]
Suhu reaksi T, C
60
65
70
75
80
3.86 3.86
15
2.68 2.23
30
1.91 1.36
45
1.40 0.89
60
1.40 0.63
75
0.82 0.48
90
0.69 0.40
C A0 C A
C A0
b) Perbandingan ekivalen RE
R dengan
RE E
DAL Kadar FFADAL 46 V
V
RV Etan o l
VDALMS
Pemrograman:
C0=3.86;
C60=[C0 2.68 1.91 1.40 1.40 0.82 0.69]'; C65=[C0 2.23 1.36 0.89 0.63
0.48 0.40]'; C70=[C0 1.92 1.06 0.65 0.44 0.38 0.34]'; C75=[C0 1.60
0.79 0.48 0.38 0.33 0.31]'; C80=[C0 1.50 0.61 0.42 0.35 0.33 0.31]';
C=[C60 C65 C70 C75 C80];
Xdata=(C0-C)./C0
%data konversi percobaan
rhoEtanol=0.8022; rhoDAL=0.9433;
%gram/mL VEtanol=375; VDAL=300;
%mL KadarEtanol=0.96;
EkiDAL=rhoDAL*VDAL*C0;
%mgek EkiE=rhoEtanol*VEtanol*KadarEtanol/46;
%gek Re=1000*EkiE/EkiDAL
0.3057 0.422
0.5052 3
0.647
7
0.6373 0.769
4
0.6373 0.836
0
0.8316 0.8756 0.891
2
0.8860 0.9016 0.909
0.7876 8
0.875
6
0.8212 0.896
0.9016 0.9145 3
0.914
5
0.9119 0.9197 0.919
Re =
5.7474
Komponen
Ethane
8%
Propane
n-Butane
n-Pentane
53% 0.00516 T
0.177
17% 0.00254 T
0.143
derajat
0.0242 T + 0.28
Fahrenheit,
hitung
Petunjuk :
a) Untuk bubble point berlaku :
y F ,i Ki z F ,i ai T bi z F ,i 1
z
x F ,i K
i
F ,i
F ,i
z
a i T bi
bubblepoint =
150.043
7
b1
Konstant a1 , b1 , a2 , dan
a
b2
0 a
dan Substans 2 : log( p )
2
T
b
2
liq
xi
demikian, tekanan
p x
1
liq
p 0 dan
1 p
liq
2
p . Pada
2
liq
) p02
Atau
a
a
liq
pt x1 .exp 1 b1 ) (1 liq ) .exp 2 b2 ) .
T
(
(
x1
T
Berdasarkan persamaan ini, suhu campuran dapat di-trial jika
tekanan
total dan fraksi mol fase cair diketahui. Fraksi mol masing-masing substans
pada
fase gas diberikan melalui
persamaan:
x1gas
p1
p
dan x 2gas 2
pt
pt
b2
nilai
turut
adalah -3809.9 ; 17.785 ; -3330 ; 17.403. Tekanan total diasumsikan
tekanan atmosfer.
Pemrograman :
pgas=760;
%Tekanan
total torr a1=-3809.9;
b1=17.78
5;
a2=3330.0;
b2=17.40
3;
x1=0.1;
%fraksi mol awal substan 1
n=6;
%jumlah plate teoritis
T1=a1/(log(pgas)-b1)
% titik didih substans 1 pada
760 torr T2=a2/(log(pgas)-b2)
% titik didih
substans 2 pada 760 torr Td1=(T1+T2)/2;
fprintf('plate x-liquid x-vapor Td, C\n')
if T1 >= T2
%Cek substan 1 memiliki Td yang lebih
rendah help=T2; T2=T1; T1=help;
%jika tidak
data harus ditukar help=a1; a1=a2; a2=help;
help=b1; b1=b2; b2=help;
end
i=0;
while i < n
f=@(T) pgas-x1*exp(a1/T+b1)-(1x1)*exp(a2/T+b2); Td=fzero(f,Td1); i=i+1;
xg=x1*exp(a1/Td+b1)/pgas;
%hukum Raoult utk
substans 1 xl=x1;
fprintf(' %1d
%0.4f %0.4f %2.1f\n',i,xl,xg,Td-273.15)
x1=xg; Td1=Td;
end
Eksekusi program diatas menghasilkan keluaran
berikut: T1 =
T2 =
309.201
3
plate x-liquid x-vapor Td, C
1 0.1000 0.239 63.
9
4
2 0.2399 0.479 57.
3 0.4793 3
0.736 3
48.
4
5
6
0
9
0.7360 0.897
41.
2
8
0.8972 0.965
38.
0.9653 3
0.988 2
36.
9
a
(P RT ) (V
b)
2
V
L . atm
,
R 0.082054
dengan
mol . K
Jika untuk
konstanta
b 0,03183
5;6;
gas
oksigen
diketahui
nilai
a 1,36
L . atm
mol
dan
mol
7 ; 8 ; 9 dan 10 atm
Pemrograman :
clc
R=0.082054;
(mol.K) a=1.360;
%L^2.atm/mol^2 b=0.03183;
%L/mol
T=300;
%K P=[1:10];
%atm for i=P
f=@(V) (i+a./V.^2).*(V-b)R*T;
Volume(i)=fzero(f,20);
end
[P' Volume']
%L.atm/
DAFTAR PUSTAKA
BIODATA PENULIS