Modul Matlab 2014
Modul Matlab 2014
BAB 1
MENGENAL MATLAB
1.1. Pendahuluan
a) MATLAB (MATrix LABoratory) merupakan merk software yang dikembangkan oleh
Mathworks.Inc. dan merupakan software yang paling efisien untuk perhitungan numerik
berbasis matriks
b) MATLAB berisi fungsi-fungsi built-in untuk melakukan tugas pengolahan sinyal, aljabar
linier, dan kalkulasi matematis lainnya.
c) MATLAB berisi toolbox yang berisi fungsi-fungsi tambahan untuk aplikasi khusus.
d) MATLAB bersifat extensible, dalam arti bahwa seorang pengguna dapat menulis fungsi
baru untuk ditambahkan pada library ketika fungsi-fungsi built-in yang tersedia tidak
dapat melakukan tugas tertentu..
e) Matlab banyak diaplikasikan pada:
Matematika dan Komputasi
Pengembangan dan Algoritma
Pemrograman modeling, simulasi, dan pembuatan prototip
Analisis data, eksplorasi dan visualisasi
Analisis numerik dan statistik
Pengembangan aplikasi teknik
1.2. Command Windows
a) Windows yang dibuka pertama kali setiap kali MATLAB dijalankan.
b) Digunakan juga untuk memanggil tool Matlab seperti editor, debugger atau fungsi.
c) Cirinya terdapat prompt (>>) yang menyatakan MATLAB siap menerima perintah.
d) Perintah dapat berupa fungsi-fungsi pengaturan file (seperti perintah DOS/UNIX)
maupun fungsi-fungsi bawaan/toolbox MATLAB sendiri.
e) Beberapa fungsi pengaturan file dalam MATLAB:
Perintah
dir / ls
cd
pwd
mkdir
what
who
whos
delete
clear
clc
doc
demo
Fungsi
Melihat isi dari sebuah direktori aktif.
Melakukan perpindahan dari direktori aktif.
Melihat direktori yang sedang aktif
Membuat sebuah direktori
Melihat nama file m dalam direktori aktif
Melihat variabel yang sedang aktif
Menampilkan nama setiap variabel
Menghapus file
Menghapus variabel
Membersihkan layar
Melihat dokumentasi The mathworks, Inc. dalam format html secara online
Mencoba beberapa tampilan demo yang disediakan oleh Matlab
>> plot(x,y)
BAB II
DASAR PEMROGRAMAN MATLAB
2.1. Variabel
a) Nama yang diberikan untuk mewakili suatu data, berupa masukan data atau hasil
perhitungan
b) Aturan penulisan variabel:
Maksimal terdiri dari 31 karakter
Harus diawali dengan huruf
Tidak boleh mengandung spasi dan tanda baca (karakter khusus)
Tidak boleh menggunakan key words
Dibedakan antara huruf besar dan huruf kecil, misalnya: nama, nama, nama, nama, dsb.
Merupakan variabel yang berbeda.
2.2. Memasukkan Data, terdapat 2 cara :
a) Inisialisasi data, dimana data diberikan langsung pada saat pembuatan program.
variabel = ekspresi
b) Menggunakan perintah input, dimana data diberikan pada saat program di-running
sehingga bersifat interaktif
variabel = input(teks) numerik dan string
atau
variabel = input(teks, s) string
pada layar akan tampil apa yang tertulis di antara tanda petik (teks), kemudian
komputer menanti masukan data yang diikuti dengan menekan enter
Contoh 2.1: Perhitungan luas persegi panjang dengan cara inisialisasi data.
>> data = 'persegi panjang'
data =
persegi panjang
>> panjang = 4
panjang =
4
>> lebar = 3
lebar =
3
>> luas = panjang * lebar
luas =
12
Contoh 2.2: Perhitungan luas persegi panjang dengan cara input data.
>> data = input('Masukkan jenis bangun geometri yang akan dihitung: ')
Masukkan jenis bangun geometri yang akan dihitung: 'persegi panjang'
data =
persegi panjang
>> panjang=input('Masukkan data panjang : ')
Masukkan data panjang : 4
panjang =
4
>> lebar=input('Masukkan data lebar : ')
Masukkan data lebar : 3
lebar =
3
>> luas = panjang * lebar
luas =
12
2.3. Menampilkan Hasil
a) disp(A) : menampilkan nilai dari suatu variabel
A adalah variabel; yang ditampilkan adalah nilai yang tersimpan dalam variabel A
b) disp(teks) : menampilkan teks atau string
yang ditampilkan adalah apa yang tertulis di antara tanda petik teks
c) Bila ingin menampilkan gabungan teks dan nilai dari suatu variabel, gunakan tanda
kurung siku dimana nilai numerik harus dikonversi ke bentuk string terlebih dahulu
dengan menggunakan fungsi num2str (number to string)
Contoh 2.3 :
>> x = 2.678;
>> disp(['Nilai x adalah = ', num2str(x), ' pada iterasi ini'])
Nilai x adalah = 2.678 pada iterasi ini
d) fprintf (file name, format string, list)
- file name bersifat optional (dapat ditulis atau tidak)
- list adalah daftar nama variabel yang dipisahkan dengan tanda koma (,)
- format string adalah format/bentuk tampilan:
%P.Qe untuk bentuk eksponensial
%P.Qf untuk bentuk fixed point
\n untuk membentuk baris baru (kelang)
dimana P dan Q merupakan integer (bilangan bulat).
Contoh 2.4 :
>> x = 1007.46;
>> y = 2.1278;
>> k = 17;
>> fprintf('\n x = %8.2f y = %8.6f k = %2.0f \n', x, y, k)
x = 1007.46 y = 2.127800 k = 17
2.4. Bilangan dan Operator Matematika
a) Ada 3 tipe bilangan dalam Matlab : bilangan bulat (integer), real, kompleks
b) Bilangan kompleks z= a+bi dapat ditampilkan Matlab secara langsung. Beberapa fungsi
dasar yang berhubungan dengan bilangan kompleks adalah:
Perintah
Keterangan
real
Bagian riil dalam koordinat kartesian.
Imag
Bagian imaginer dalam koordinat kartesian.
abs
Nilai absolute atau magnitude dalam koordinat polar.
angle
Sudut fase dalam koordinat polar ( dalam satuan radian )
Contoh 2.5 :
>> y=sqrt(-2) % akar negatif 2
y =
0 + 1.4142i
>> real(y)
ans =
0
>> imag(y)
ans =
1.4142
>> abs(y)
ans =
1.4142
>> angle(y)
ans =
1.5708
Contoh 2.6. Program perhitungan luas persegi panjang dalam bentuk fungsi
Tuliskanlah program berikut pada M-file, dan simpanlah dengan nama luas.m.
function A = luas (p,l)
% menghitung luas persegi panjang
A = p*l;
Untuk menjalankan fungsi di atas, ketikkanlah pada command window nama fungsi
yang diikuti dengan 2 buah variabel yang dibutuhkan:
>> luas(4,3)
ans =
12
h) Tanda titik koma ( ; ) dalam Matlab berguna untuk mencegah menampilkan hasil
2.7. Fungsi Matematika Dasar
Matlab mempunyai berbagai fungsi matematika umum yang biasa digunakan dalam
matematika. Daftar fungsi dapat dipelajari melalui help elfun (elementary fuction)
2.8. Operator Logika dan Relasional
a) MATLAB menyediakan operasi logika dan relasional, untuk mengambil keputusan
berdasarkan benar atau salahnya suatu pernyataan. Aplikasinya adalah untuk mengontrol
urutan eksekusi sederetan perintah Matlab (biasanya dalam M-File).
b) Operator Relasi, dapat digunakan untuk membandingkan dua array berukuran sama atau
untuk membandingkan array dengan skalar.
Operator Relasi
Deskripsi
<
Kurang dari
>
Lebih dari
<=
Kurang dari atau sama dengan
>=
Lebih dari atau sama dengan
=
Sama dengan
~=
Tidak sama dengan
c) Operator Logika
Operator Logika
&
|
~
Deskripsi
AND
OR
NOT
BAB III
VEKTOR DAN MATRIKS
3.1. Vektor
a) Vektor adalah sekumpulan data yang membentuk hanya satu baris atau satu kolom
b) Penulisan elemen dilakukan di dalam kurung siku [ ] yang dipisahkan dengan spasi
atau titik koma.
3.2. Operasi Vektor
a) Membentuk deret sederhana
variabel = n : m
dimana n = nilai awal, m = nilai akhir
Contoh 3.1 :
>> a = 1:3
a =
1 2 3
>> b = 2*a
b =
2 4 6
>> c = [1:3]
c =
1 2 3
b) Penggunaan increment
variabel = n : i : m
dimana n = nilai awal, m = nilai akhir, dan i = increment/langkah;
Bila i tidak didefinisikan, maka Matlab akan menggunakan default-nya yaitu 1
Contoh 3.2 :
>> A = 1:10
A =
1 2 3 4 5 6 7 8 9 10
>> B = 0:2:10
B =
0 2 4 6 8 10
>> C = 10:-1:1
C =
10 9 8 7 6 5 4 3 2 1
>> D = 3:3:14
D =
3 6 9 12
10
d) Operasi penjumlahan dan pengurangan berlaku pada vektor yang ordenya sama.
e) Perkalian 2 buah vektor juga harus berorde sama, tetapi 1 vektor kolom dan yang
lainnya vektor baris.
3.3. Matriks
Matriks merupakan himpunan data yang membentuk beberapa baris dan kolom.
3.4. Pengalamatan (Addressing)
11
12
Kegunaan
Mengubah letak dari atas ke bawah
Mengubah letak dari kiri ke kanan
Memutar suatu matriks 90 derajat berlawanan arah jarum jam
menghasilkan matriks ukuran mxn dengan elemen diambil searah
kolom dari A. A harus berisi m x n elemen
mengeluarkan diagonal matriks A sebagai vektor kolom
membentuk matriks diagonal dengan vektor v pada diagonalnya
mengeluarkan bagian segitiga bawah matriks A
mengeluarkan bagian segitiga atas matriks A
13
Contoh 3.5 :
2 3
A 4 5
6 7
dan c=8,
c=8
c =
8
K=c*A
K =
16
24
32
40
48
56
14
Contoh 3.7 :
P=A'
P =
1
-1
D=P*B
??? Error using ==> *
Inner matrix dimensions must agree.
A.x = b
Dimana A adalah matriks, x dan b adalah vektor. Dalam MATLAB kasus seperti ini
dapat diselesaikan dengan menjalankan perintah :
x = A\b
Dapat digunakan untuk menyelesaikan Sistem Persamaan Linier (SPL).
d) Manipulasi Elemen-elemen Matriks.
Elemen-elemen matriks dapat dimanipulasi secara individu atau dalam satu blok.
Sebagai contoh :
X(1,3)=C(4,5)+V(9,1); a(1)=b(1)+d(1) atau C(i,j+1)=D(i,j+1) + E(i,j+1)
adalah pernyataan-pernyataan yang benar yang berhubungan dengan elemen matriks.
Baris dan kolom dapat dimanipulasikan sebagai suatu entitas yang lengkap. Jadi A(:,3),
A(5,:). Menunjukkan kolom ke 3 dan baris ke 5 dari matriks A.
15
Contoh 3.8 :
Diketahui matriks a :
a=[2 3 4 5 6;-4 -5 -6 -7 -8;3 5 7 9 1;4 6 8 10 12;
-2 -3 -4 -5 -6]
a =
2
-4
-5
-6
-7
-8
10
12
-2
-3
-4
-5
-6
v=[1 3 5];
b=a(v,2)
b =
3
5
-3
% b merupakan susunan elemen dari baris pertama, ketiga dan kelima dari
kolom kedua matriks a.
c=a(v,:)
c =
2
-2
-3
-4
-5
-6
d(:,1)=a(v,2)
d =
3
-3
-7
-8
16
d(:,1)=a(v,2)
d =
3
-3
-7
-8
17
Contoh 3.9:
P=[1 2;3 4]
P =
1
2
3
4
Q=[5 6;7 8]
Q =
5
P*Q
ans =
19
22
43
50
dapat dilihat bahwa hasil perkalian di atas merupakan hasil perkalian dari matriks
dengan operasi standar.
P.*Q
ans =
5
12
21
32
64
2187
65536
0.3333
0.5000
3.0000
2.3333
2.0000
18
Contoh 3.10:
>> x = [1 2 3; 4 5 6; 7 8 9; 0 11 12]
x =
1 2 3
4 5 6
7 8 9
0 11 12
>> y = [0 0 3; 1 2 3; 4 5 0; -1 2 3]
y =
0 0 3
1 2 3
4 5 0
-1 2 3
>> a = max(x)
% mencari nilai maksimum berdasarkan kolom
a =
7 11 12
>> b = max(x,y) % mencari nilai maksimum elemen pada setiap
posisi
b =
1 2 3
4 5 6
7 8 9
0 11 12
>> c = min(x)
c =
0 2 3
>> d = min(x,y) % mencari nilai minimum elemen pada setiap
posisi
d =
0 0 3
1 2 3
4 5 0
-1 2 3
>> e = mean(x) % mencari nilai rata-rata berdasarkan kolom
e =
3.0000 6.5000 7.5000
>> f = sum(x) % menjumlahkan nilai berdasarkan kolom
f =
12 26 30
>> g = sort(x) % mengurutkan nilai berdasarkan kolom
g =
0 2 3
1 5 6
4 8 9
7 11 12
>> h = std(x) % mencari nilai standar deviasi berdasarkan
kolom
h =
3.1623 3.8730 3.8730
19
BAB IV
PENGATURAN ALUR PROGRAM
Pengaturan alur program memungkinkan pengguna untuk mengulangi perhitungan secara
berulang-ulang ataupun memilih serta memutuskan kondisi-kondisi yang sesuai/diinginkan.
Matlab menyediakan empat bentuk pengaturan alur program yang akan dibahas berikut ini.
4.1. Loop For
a) Loop for memungkinkan sekelompok perintah diulang sebanyak suatu jumlah yang
tetap. Bentuk umum:
for loop_variable = loop_expression
perintah-perintah
end
b) Loop_variable merupakan nama variabel yang diberikan, sedangkan loop_expression
biasanya memiliki bentuk increment (n:m atau n:i:m). Perintah-perintah di antara baris
for dan end dikerjakan berulang-ulang dari nilai awal n sampai nilai akhir m, dengan
increment (langkah) sebesar i.
Contoh 4.1: Perhitungan bilangan kuadrat dari himpunan bilangan bulat dari 1 sampai 5
>> for n = 1:5
x(n) = n^2
end
x =
1
x =
1
4
x =
1
4
x =
1
4
x =
1
4
9
9
16
16
25
Latihan 4.1:
Perhatikanlah hasil keluaran yang terbentuk bila tanda ditambahkan tanda (;) pada
perintah di antara for-end
Bandingkan bila penulisan perintah perhitungan x(n) = n^2 ditulis x = n^2.
20
4.3. If Statement
a) Bentuk umum:
if if_expression
perintah-perintah
end
b) If_expression juga berisi bentuk relasional
c) Perintah-perintah di antara baris if dan end dikerjakan jika semua elemen di dalam
ekspresi benar.
21
Contoh 4.4:
Sebuah toko yang menjual buah-buahan menetapkan akan memberikan potongan harga
sebesar 20% bila pelanggannya membeli apel lebih dari 10.
clc
apel = input('Apel yang dibeli = ');
bayar = apel * 1000;
if apel > 5
bayar = (1-20/100)*bayar;
end
disp(['Jumlah yang harus dibayar = Rp ', num2str(bayar)])
Running Program:
Apel yang dibeli = 5
Jumlah yang harus dibayar = Rp 5000
Apel yang dibeli = 10
Jumlah yang harus dibayar = Rp 8000
d) if-else-end
Pada kasus dengan dua pilihan, konstruksi if-else-end adalah:
if if_expression
perintah dikerjakan jika benar
else
perintah dikerjakan jika salah
end
22
Contoh 4.5:
Penentuan kelulusan seorang siswa berdasarkan dua buah ujian yang diikutinya.
Ditetapkan bahwa siswa yang lulus harus memiliki nilai rata-rata minimal 60.
clc
nama = input('Nama Siswa
N1
= input('Nilai Ujian 1
N2
= input('Nilai Ujian 2
NR = (N1+N2)/2;
if NR > 60
ket = 'lulus';
else
ket = 'gagal';
end
disp(' ') disp(['Nama
disp(['Nilai rata-rata = ',
disp(['Hasil akhir
= ',
= ', 's');
= ');
= ');
= ', nama])
num2str(NR)])
ket])
Running Program
Nama Siswa
=
Nilai Ujian 1 =
Nilai Ujian 2 =
Nama
Nilai rata-rata
Hasil akhir
A
60
70
= A
= 65
= lulus
23
4.4. Swith-Case-Otherwise
a) Bentuk umum:
switch ekspresi
case ekspresi1
perintah-perintah
case ekspresi2
perintah-perintah
case .
.
.
otherwise
perintah-perintah
end
Contoh 4.6:
clc
disp('1. Metoda Substitusi Berurut')
disp('2. Metoda Newton-Raphson')
disp('3. Metoda Tali Busur')
n = input('Metoda yang dipilih = ');
switch n
case (1), disp('Metoda Substitusi Berurut')
case (2), disp('Metoda Newton-Raphson')
case (3), disp('Metoda Tali Busur')
otherwise
disp('Metoda tidak termasuk dalam daftar')
end
24
BAB V
KONSEP BERPIKIR MATRIKS
Suatu persoalan yang dapat dirumuskan dalam bentuk matriks akan lebih mudah
diselesaikan dengan langkah ynag lebih sederhana.
Contoh 5.1:
Pendekatan array untuk Contoh 4.1.
>> n = 1:5;
>> x= n.^2
x =
1
16
25
Meskipun kedua cara memberikan hasil yang serupa, namun cara kedua jauh lebih cepat
dan memerlukan pengetikan yang lebih sedikit.
Contoh 5.2:
Harga kapasitas panas campuran gas pada suatu temperatur dihitung dengan cara
menjumlahkan hasil perkalian fraksi (mol/massa) komponen, yi, dengan kapsitas panas
komponen, Cpi, yang merupakan polinom Cpi = Ai + BiT + CiT2 + DiT3.
Penyelesaiannya dapat dibandingkan antara dua cara berikut:
(i) cara loop
Cp = [1.0 0.02 0.00323 0.000003233;
0.000004345];
y = [0.4 0.6];
T = 300;
Cpc = 0;
for i = 1:length(y)
Cpi = 0;
for j = 1:length(Cp)
Cpi = Cpi + Cp(i,j)*T^(j-1);
end
Cpc = Cpc + y(i)*Cpi;
end
Cpc
>> Cp1
Cpc =
480.2854
3.2
0.013
0.00466
25
26
BAB VI
PENYAJIAN DATA DALAM MATLAB
Pengolahan dan penyajian data yang diperoleh dari hasil penelitan, biasanya dibuat model dan
simulasi sehingga diperoleh visualisasinya.
6.1. Grafik Sederhana
a) Perintah plot akan menghasilkan grafik dua dimensi x-y. Dibutuhkan tabel data x dan y
untuk menggunakan perintah ini.
b) Bentuk umum: plot(x,y)
Contoh 6.1 :
>> x = [1 2 3];
>> y = [2 4 9];
>> plot(x,y)
Keterangan
27
Latihan 6.1. Data reaksi berikut telah diperoleh dari reaksi peluruhan sederhana:
AB
Gunakan Matlab untuk memplot konsentrasi komponen A dalam mol/L terhadap waktu reaksi,
dalam menit.
d) Dua buah grafik dapat pula diplot pada layar yang sama. Matlab akan mengatur warna
dari kedua grafik tersebut.
Contoh 6.2:
>>
>>
>>
>>
x = [1 2 3];
y = [2 4 9];
z=[3 7 12];
plot(x,y, x,z)
e) Untuk membuat grafik dalam skala logaritma atau semilogaritma, perintah plot diganti
dengan loglog atau semilog dengan cara yang sama.
f) Bila terdapat lebih dari 1 grafik, misalkan 2 grafik, maka pada layar grafik hanya muncul
grafik yang kedua, demikian seterusnya. Untuk mengatasinya, dapat ditambahkan perintah
figure(n) dimana n menunjukkan nomor grafik. Akibatnya akan muncul sebanyak n buah
layar grafik yang baru.
6.2. Grafik Multiple Plot
a) Menampilkan beberapa grafik dalam sebuah layar grafik saja
b) Bentuk umum :
subplot(m,n,k) atau subplot(mnk)
dimana m menunjukkan baris, n menunjukkan kolom, dan k menunjukkan grafik yang
ke berapa. Misalnya: subplot(1,3,1) artinya terdapat sebanyak 3 grafik dalam 1 baris
dimana grafik yang dimaksud pada perintah ini diletakkan pada kolom 1.
c) Sebagai default, Matlab memilih style garis lurus serta warna biru. Pada perintah plot
dapat ditambahkan tambahan argumen untuk memilih warna dan style untuk grafik yang
akan dibuat.
Contohnya, plot(x, y, r+) akan menghasilkan grafik dengan warna merah (red) dan
style garis yang merupakan gabungan tanda +.
28
Diantara contoh warna, penandaan, dan style garis yang disediakan Matlab adalah:
Simbol
Warna
Simbol
Penandaan
Simbol
Style Garis
biru
titik
Garis lurus
hijau
lingkaran
Garis titik-titik
merah
tanda x
-.
magenta
bintang
--
Garis terpotong-potong
kuning
Bujur sangkar
hitam
diamond
>> x=[1 2 3]
x =
1 2 3
>> y=[1 2 3 4]
y =
1 2 3 4
>> z=[2 5 10;5 8 13;10 13 18;17 20 25]
z =
2
5
10
5
8
13
10
13
18
17
20
25
>> surf(x,y,z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
29
BAB VII
PERSAMAAN TAK LINIER
Masalah persamaan tak linier umumnya ditujukan untuk mencari akar persamaan. Pada saat
awal pembuatan program harus didefinisikan terlebih dahulu toleransi perhitungan yang
diperkenankan serta bentuk kriteria konvergensi yang digunakan.
7.1. Persamaan Tak Linier Variabel Tunggal
a) Bentuk umum persamaan tak linier variabel tunggal adalah: f(x) = 0
b) Metoda numerik yang dapat digunakan untuk menyelesaikan persamaan tak linier adalah
metode bisection, regula falsi, Newton-Raphson, secant dan lain sebagainya.
c) Matlab mempunyai fungsi khusus untuk menyelesaikan masalah pencarian akar
persamaan tak linier ini atau pencarian nol dengan perintah fzero.
d) Caranya adalah dengan menuliskan function pada sebuah M-file yang berisikan
persamaan tersebut.
e) Setelah perintah fzero, buatlah di dalam kurung nama file dalam bentuk string yang
diikuti dengan tebakan awal yang diberikan, dimana di antaranya dipisahkan dengan
tanda koma. Bila akar persamaan lebih dari satu, maka hasil yang ditampilkan hanyalah
akar yang paling mendekati dengan tebakan.
Contoh 7.1.:
Program penentuan akar persamaan f(x) = x4 - ex + 1 = 0 dengan menggunakan
fungsi built-in Matlab
function y = akar(x)
y = x^4 - e^x + 1;
Simpanlah file tersebut dengan nama akar.m, selanjutnya ketiklah pada command
windows:
>> x=fzero('akar', 0)
x =
-1.3916
7.2. Polinomial
a) Polinomial Matlab disimpan sebagai vektor koefisiennya, yang disusun mulai pangkat x
terbesar hingga terkecil.
b) Bentuk polinomial : Pn(x) = c1xn + c2xn-1 + . . . + cn-1x + cn
30
Kegunaan
conv(x,y)
poly((x)
polyder(x)
polyval(x)
polyfit(x,y)
roots(x)
b) Membentuk polinom
Contoh 7.3 : Membentuk polinom dari akar-akar yang diketahui
Untuk akar persamaan yang diperoleh pada contoh di atas, dapat ditentukan
persamaannya:
>> b = [-2 -1];
>> poly(b)
ans =
1
3
31
berikut
Menurut teori, data ini bersesuaian dengan model polinom orde ketiga. Berikut langkahlangkah untuk mendapatkan model polinom tersebut :
>> x=[0:0.2:3];
>> y=[2.952383 6.209525 6.1624 5.465714 7.891386 8.181819
10.47825 16.69245 16.6094 23.76093 23.91732 29.41918
34.0725 43.34264 51.50684 57.81625];
>> polyfit(x,y,3) % koefisien polinom orde-3
ans =
1.2851
1.1226
3.2621
3.9039
yc = polyval(P,x) % harga y dari fungsi polinom
yc =
Columns 1 through 7
3.9039 4.6115 5.4706 6.5429 7.8901 9.5738 11.6557
Columns 8 through 14
14.1975 17.2610 20.9077 25.1994 30.1978 35.9645
42.5613
Columns 15 through 16
50.0497 58.4916
32
c)
Operasi polinom
Contoh 7.5: Penjumlahan dan Pengurangan Polinomial
Diketahui dua buah fungsi polinom :
f(x) = 3x3 + 2x2 + 1
g(x) = 4x2 + 2x + 3
Operasi penjumlahan terhadap dua polinom adalah dengan cara menjumlahkan masingmasing koefisiennya, demikian pula dengan pengurangan.
>> f=[3 2 0 1];
>> g=[4 2 3];
>> f+g
??? Error using ==> +
Matrix dimensions must agree.
-2
-2
0.6250
33
d) Evaluasi Polinom
Fungsi polyval digunakan untuk mengevaluasi polinom.
Contoh 7.7:
>> f=[3 2 0 1];
>> nilai = polyval(f,3)
nilai =
100
>> nilai = polyval(f,[3 2])
nilai =
100
33
>> x=linspace(-3,3);
>> nilai = polyval(f,x);
>> plot(x,nilai), title('3x^3+2x^2+1'), xlabel('x')
e) Turunan Fungsi
Polyder merupakan fungsi yang disediakan Matlab untuk mencari turunan (derivat) dari
suatu polinom.
Contoh 7.8.:
>> f=[3 2 0 1];
>> der=polyder(f)
der =
9
4
0
34
BAB VIII
SISTEM PERSAMAAN LINIER
Penyelesaian masalah neraca massa seringkali melibatkan banyak persamaan linier sehingga
membentuk suatu Sistem Persamaan Linier (SPL). SPL tersebut dapat disusun membentuk
matriks, dimana umumnya merupakan matriks bujur sangkar. Untuk proses pemisahan yang
berlangsung secara multitahap seperti distilasi, absorpsi, ekstraksi, dan lainnya, persamaan
neraca massanya umumnya membentuk matriks tridiagonal.
Bentuk umum sistem persamaan aljabar linier :
A. x = b
x = A\b
Ada beberapa tahap yang harus dilalui agar dapat menyelesaikan masalah SPL secara matriks:
(i) Membuat block diagram yang melibatkan semua alur masuk dan semua alur keluar
(ii) Menurunkan persamaan neraca massa
(iii) Mengubah SPL menjadi bentuk matriks A x = b.
35
Contoh 8.1.:
Waste acid dari proses nitrasi dengan komposisi 21% HNO3, 55% H2SO4, dan 24% air
dipekatkan dengan menambahkan larutan H2SO4 93% dan larutan HNO3 90%. Hasil
pencampuran diharapkan sebanyak 1000 lb/jam dengan komposisi 28% HNO3 dan 62%
H2SO4. Hitunglah laju alir pada semua alur masuk!
(1)
(2)
(3)
0.07
0.1];
Maka diperoleh laju alir umpan waste acid (F1) adalah 126.7894 lb/jam, laju alir asam
sulfat pekat (F2) 591.6837 lb/jam, dan laju alir asam nitrat pekat (F3) 281.5269 lb/jam.
36
Proses ekstraksi berlawanan arah 10 tahap dilakukan untuk mengekstrak solute A dari
campuran umpan W dengan menggunakan solvent S murni. Pada masing-masing tahap
diasumsikan terjadi kesetimbangan dengan persamaan : yi = K.xi.
Neraca komponen A untuk tahap ke-i:
xi-1.W + yi+1.S = xi.W + yi.S
Bila diketahui data berikut:
S = 1000 kg/jam
xAin = 0,05 K = 10
W = 2000 kg/jam
yAin = 0
Maka dengan membuat peneracaan pada masing-masing tahap, diperoleh persamaan
berikut yang membentuk matriks tridiagonal:
(1) -6x1 + 5x2 `
= -0,05
(2) x1 - 6x2 + 5x3
= 0
(3)
x2 - 6x3 + 5x4
= 0
(4)
x3 - 6x4 + 5x5
= 0
(5)
x4 - 6x5 + 5x6
= 0
(6)
x5 - 6x6 + 5x7
= 0
(7)
x6 - 6x7 + 5x8
= 0
(8)
x 7 - 6x8 + 5x9
= 0
(9)
x8 - 6x9 + 5x10
= 0
(10)
x9 - 6x10
= 0
Selesaikan menggunakan Matlab!
Latihan 8.1:
Aturlah cara memasukkan data dengan memanfaatkan fungsi zeros yang diikuti dengan
pendefinisian ulang elemen dengan pengalamatan yang benar. Gunakan juga bentuk loop-for
untuk pendefinisian ulang elemen matriks A pada posisi tridiagonal.
37
BAB IX
PENCOCOKAN KURVA
9.1. Interpolasi
Pendekatan yang dilakukan pada interpolasi adalah mencocokkan sebuah atau sederetan
kurva secara langsung melalui masing-masing titik data.
a) Interpolasi 1 Variabel
Interpolasi adalah metode penaksiran (estimasi) nilai antara di antara sejumlah titik-titik
data. Kita dapat membuat fungsi polinom orde ke-n dari n+1 data. Polinom inilah yang
merupakan rumus untuk menghitung nilai antara diantaranya.
Builtin function
Penyelesaian dengan menggunakan built-in function adalah dengan perintah interpolasi.
Y1 = interp1(X,Y,X1)
X dan Y merupakan vektor yang berisikan data-data diskrit dimana Y = f(X). Melakukan
interpolasi untuk mendapatkan nilai Y1 pada titik data X1. Interpolasi dapat dilakukan
dengan beberapa metoda (linear, cubic, spline dan nearest). Bila metoda yang akan
digunakan tidak dispesifikasi, maka Matlab akan menggunakan metoda linier sebagai
default. Perintah yang digunakan menjadi:
YI = interp1(X,Y,XI,method)
Contoh 9.1:
Gunakan polinom interpolasi Matlab untuk menghitung ln 2 berdasarkan data berikut :
i
0
1
2
xi
1
4
6
f(xi) = ln(xi)
0
1,3862944
1,7917595
clc
% data x
x = [1 4 6];
% data ln x
lnX = [0 1.3863 1.7917];
hasil = interp1(x, lnX,
hasil1 = interp1(x, lnX,
hasil2 = interp1(x, lnX,
hasil3 = interp1(x, lnX,
hasil4 = interp1(x, lnX,
hasil5 = interp1(x, lnX,
hasil6 = interp1(x, lnX,
Running Program
hasil =
0.4621
hasil1 =
2)
2, 'linear')
2, 'cubic')
2, 'spline')
2, 'nearest')
[2, 5])
[2, 5],cubic)
38
1.5890
1.6329
Latihan 9.1:
Jika diberikan data
x
f(x)
4,75
5,25
19,75
36
b) Interpolasi 2 Variabel
Interpolasi 2 variabel juga bertujuan untuk menaksir nilai di antara nilai-nilai yang diketahui
dengan baik, tetapi dilakukan pada data yang mempunyai 2 variabel.
Z1 = interp2(X,Y,Z,X1,Y1)
X, Y, dan Z merupakan vektor yang berisikan data-data diskrit dimana Z = f(X,Y). Interp2
melakukan interpolasi untuk mendapatkan nilai Z1 pada titik data X1 dan Y1. Seperti
interp1, interp2 dapat dilakukan dengan beberapa metoda dengan metoda linier sebagai
default.
Contoh 9.2:
Diketahui sebuah kumpulan data sebagai berikut
x1
1
2
3
x2
1
10
20
30
2
40
46
50
3
50
60
100
Tentukanlah nilai data pada x1 = 1,5 dan x2 = 2,3.
Penyelesaian berikut dilakukan dengan menggunakan built-in function interp2.
clc
x1 = [1 2 3];
x2 = [1 2 3];
data = [10 20 30
40 46 50
39
Running Program
hasil =
46.6000
Latihan 9.2:
Data berikut diambil dari steam table untuk superheated steam
kJ/kg
500C
750C
1500C
H
230,7
334
647,7
U
205,7
308,7
620,8
300
H
235
338,1
650,9
U
205
307,7
618,7
500
H
251,9
354,2
664,1
U
202,4
304
611
Buatlah program untuk menentukan entalpi pada 225 bar dan 75oC
Buatlah program untuk menentukan energi dalam pada 345 bar dan 125oC.
Buatlah program tersebut masing-masing dengan mengikuti urutan pekerjaan secara
manual (dengan tangan) serta dengan menggunakan built-in function.
P(bar)
250
9.2. Regresi
a) Pendekatan yang dilakukan pada regresi adalah menyusun persamaan suatu kurva
tunggal yang mewakili sekumpulan data.
b) Regresi dapat berupa persamaan linier (garis lurus) atau polinom berderajat tertentu, juga
persamaan eksponensial atau logaritma.
c) Bentuk umum persamaan linier: y = a0 + a1.x
dimana: a1 = slope (kemiringan) dan a0 = intersep (perpotongan garis dengan sumbu y).
Contoh 9.3: Buatlah model persamaan dari data-data berikut
X
1
2
3
4
5
6
7
Y
0,5
2,5
2
4
3,5
6
5,5
Penyelesaian dilakukan dengan memanfaatkan fungsi polyfit dengan bentuk umum:
P = polyfit (X,Y,N)
untuk mencari koefisien polinom P(X) berderajat N yang cocok terhadap pasangan data
X(i) dan Y(i) dengan mencari least square. Bila N=1, akan dihasilkan pendekatan garis
lurus; bila N=2 akan dihasilkan pendekatan kuadratis.
clc
x = [1:7];
y = [0.5 2.5 2 4 3.5 6 5.5];
p = polyfit(x,y,1)
r = polyfit(x,y,2)
yi = linspace(1, 7);
s = polyval(p, yi); subplot(1,2,1); plot(x, y, '-o', yi, s,
40
Running Program
p =
0.8393
0.0714
-0.0298
1.0774
r =
-0.2857
41
BAB X
PERSAMAAN DIFERENSIAL
Running Program:
y =
1
y =
1.0010
y =
1.0050
y =
1.0140
y =
1.0303
y =
1.0560
y =
1.0940
y =
1.1477
y =
1.2211
y =
1.3200
42
Contoh 10.2:
Reaksi berikut dilangsungkan pada suatu reaktor semi-batch A(l) P(l) dimana
r = kCA2. Pada saat awal reaktor diisi dengan cairan inert dengan volume V0. Pada
saat t = 0 senyawa A dengan konsentrasi CA0 diumpankan ke reaktor dengan laju Q0.
Dari neraca mol komponen A pada keadaan unsteady diperoleh:
dnA/dt = Q0. CA0 - k.nA2/VR
dimana CA = nA/VR
Karena cairan ditambahkan ke reaktor, maka VR akan bertambah terhadap waktu.
b)
Metoda RungeKutta
c)
Running Program:
>> [x,y]=ode45('diferensial',[0:0.1:1],1)
x=
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
y=
1.0000
43
x2
i,j
i,j+1 -yi,j
i,j
x
i,j
yi-
,j
. t
x2
Contoh 10.5:
Sebuah benda dengan panjang dan lebar tak terhingga memiliki ketebalan 5 cm. Mulamula benda bersuhu 30 0C. Tepat mulai saat t = 0, kedua suhu sisi benda dirubah dan
dipertahankan tetap. Pada x = 0, suhu benda dibuat 70 0C dan pada x = 5 dibuat bersuhu 40 0C.
Distribusi suhu sebagai fungsi posisi dan waktu mengikuti persamaan:
=
Jika = 2 cm2/menit, tentukanlah suhu pada titik berjarak 4 cm pada saat 2 menit
44
BAB XI
INTEGRAL
11.1. Metode Trapesium
a) Pada kaidah ini, pendekatan polinom interpolasi menggunakan garis lurus yang
menghubungkan dua titik. Bentuk yang muncul adalah trapesium.
c) Bila pembagian daerah dilakukan dengan jarak (x) yang tidak sama maka :
n
xn
f x dx =
x0
i1
f(xi )+f(xi 1 )
(xi xi 1 )
2
45
Contoh 11.1:
Dengan menggunakan data pada tabel berikut, tentukanlah data fugasitas N2 pada 25oC dan
800 atm. Untuk komponen murni, fugasitas f dihitung dengan persamaan:
f
1
ln
=
d
0
Khusus untuk kasus di atas, dilakukan manipulasi data P awal untuk menghindari terjadinya
operasi 0/0.
clc
z = [1 0.998 0.996 1.004 1.057 1.146 1.254 1.495 1.723];
P = [1 10 50 100 200 300 400 600 800];
integral=0;
for i = 2:9
jumlah=((z(i)-1)/P(i)+(z(i-1)-1)/P(i-1))*(P(i)-P(i-1))/2;
integral = integral + jumlah;
end
integral
fugasitas = P(9) * exp(integral)
Running Program:
integral =
0.4223
fugasitas =
1.2204e+003
46
Running Program:
area =
0.4394
fugasitas =
1.2414e+003
Contoh 11.2 :
0,4
x. exp x dx
0
clc
x= 0:0.1:0.4;
y=x.*exp(-x);
area = trapz(x,y)
x1= 0:0.05:0.4;
y1=x1.*exp(-x1);
area1 = trapz(x1,y1)
Running Program:
area =
0.0611
area1 =
0.0614
47
Contoh 11.3 :
F = inline('x.*exp(-x)');
area2 = quad(F,0,0.4)
area3 = quadl(F,0,0.4)
Running Program:
area2 =
0.0616
area3 =
0.0616
48
Atau bila hendak menggunakan fungsi quadl dapat ditulis sebagai berikut:
>> hasil = dblquad(dint,0,pi,0,pi,quadl)
hasil =
25.1361