Modul MATLAB UMM. 742KB Mar 31 2011 12:26:52 AM
MODUL PRAKTIKUM
MATLAB
Oleh :
Team Labkomputer UMM
DIVISI PENDIDIKAN DAN PELATIHAN
LEMBAGA INFORMASI DAN KOMUNIKASI
UNIVERSITAS MUHAMMADIYAH MALANG
(2)
BAB I
PENGENALAN MATLAB I.1 DEFINISI MATLAB
MATLAB (Matrix Laboratory) adalah bahasa tingkat tinggi dan interaktif yang memungkinkan untuk melakukan komputasi secara intensif. MATLAB telah berkembang menjadi sebuahenvironment pemrograman yang canggih yang berisi fungsifungsi builtin untuk melakukan pengelolahan sinyal, aljabar linear dan kalkulasi matematis lainnya. MATLAB juga berisi toolbox yang berisi fungsi fungsi tambahan untuk aplikasi khusus. Penggunaan MATLAB meliputi bidang bidang :
Matematika dan Komputasi Pembentukan Algorithm Akuisisi Data
Pemodelan, simulasi dan Pembuatan Prototype Analisis Data, Explorasi, dan Visualisasi Grafik Keilmuan dan Bidang Rekayasa I.2 MEMULAI MATLAB
Setelah melakukan instalasi MATLAB pada PC, perhatikan icon MATLAB pada tampilan desktop kemudian doubleclick pada icon tersebut. Selanjutnya akan muncul tampilan seperti pada gambar berikut ini.
(3)
Gambar 1. Tampilan awal MATLAB
Pada tampilan awal MATLAB, terlihat beberapa jendela yang merupakan bagian penting di dalam MATLAB, antara lain :
a. Jendela perintah (Command Window)
Pada command window, semua perintah matlab dituliskan dan diekskusi. Kita dapat menuliskan perintah perhitungan sederhana, memanggil fungsi, mencari informasi tentang sebuah fungsi dengan aturan penulisannya (help), demo program, dan sebagainya. Setiap penulisan perintah selalu diawali dengan prompt ‘>>’. Misal, mencari nilai sin 750, maka pada command window kita dapat mengetikkan:
>> sin(30*pi/180) ans =
0.5000
b. Jendela ruang kerja (Workspace)
Jendela ini berisi informasi penggunaan variabel di dalam memori MATLAB. Misalkan kita akan menjumlahkan dua buah bilangan, maka pada command window kita dapat mengetikkan:
Directory yang sedang aktif Menu
Memulai / membuka Mfile
Daftar variable yang aktif MATLAB
start
Command window
(4)
>> bilangan1=7 bilangan1 =
7
>> bilangan2=9 bilangan2 =
9
>> hasil=bilangan1+bilangan2 hasil =
16
Maka pada workspace akan menampilkan variable yang sedang digunakan.
Gambar 3. Tampilan workspace
Untuk melihat variabel yang aktif saat ini, kita dapat menggunakan perintah who.
>> who
Your variables are:
bilangan1 bilangan2 hasil c. Jendela history (Command History)
Jendela ini berisi informasi tentang perintah yang pernah dituliskan sebelumnya. Kita dapat mengambil kembali perintah dengan menekan tombol panah ke atas atau mengklik perintah pada jendela histori, kemudian melakukan copypaste ke command window.
(5)
BAB II
VARIABEL DAN OPERATOR
II.1 VARIABEL
Seperti bahasa pemrograman lainnya, matlab pun memiliki variabel, tetapi dalam penulisannya, variabel di dalam matlab tidak perlu dideklarasikan, karena matlab mampu mengenali tipe data dari variable dari isi variabel tersebut. Aturan penulisan variabel pada matlab sama dengan aturan pada bahasa pemrograman lainnya, yaitu bersifa case sensitive, diawali dengan huruf dan selanjutanya boleh menggunakan gabungan huruf angka atau tanda garis bawah. Matlab mampu mengenali sampai 31 karakter pertama, selanjutnya diabaikan.
Contoh :
>> var_1=7.7 var_1 =
7.7000
>> var2=[2 3 4] var2 =
2 3 4
Semua tipe data di matlab memiliki bentuk yang sama, yaitu array. Array minimal berukuran 0x0 dan dapat bertambah menjadi array n x m dimensi dengan sebarang ukuran. Matlab mempunyai beberapa tipe data dasar (atau class), yaitu: logical, char, numeric, cell, structure, java classes, function handles. Adapun variable khusus pada matlab, yaitu :
VARIABEL
KHUSUS NILAI
ans Untuk hasil apapun
pi Perbandingan antara keliling lingkaran dengan garis tengahnya
eps Bilangan terkecil sedemikian rupa sehingga bila ditambahkan pada satu, menghasilkan bilangan lebih besar dari satu pada suatu komputer
(6)
flops Jumlah operasi floating point inf Tak berhingga, misalnya 1/0
Nan atau nan Bukan suatu bilangan, misalnya 0/0 i dan j i=j=Ö1
nargin Jumlah argumen input suatu fungsi nargout Jumlah argumen output suatu fungsi
realmin Bilangan real positif terkecil yang dapat digunakan realmax Bilangan real positif terbesar yang dapat digunakan II.2 OPERATOR
Pada matlab, operator diklasifikasikan menjadi tiga bagian, yaitu: a. Operator Aritmatika
Operator aritmatika digunakan untuk mengerjakan komputasi numeric.
OPERATOR KETERANGAN
+ Penjumlahan Pengurangan
* Perkalian (aturan matriks)
.* Perkalian masingmasing elemen yang bersesuaian (aturan array)
/ Pembagian kanan (matriks) ./ Pembagian kanan (array)
\ Pembagian kiri (matriks) .\ Pembagian kiri (array) ^ Perpangkatan (matriks) .^ Perpangkatan (array)
(7)
b. Operator Relasional
Operator relasional digunakan untuk membandingkan operandoperand secara kuantitatif.
OPERATOR KETERANGAN
== Sama dengan ~= Tidak sama dengan
< Kurang dari > Lebih dari
<= Kurang dari sama dengan >= Lebih dari sama dengan c. Operator Logika
OPERATOR KETERANGAN
& Akan menghasilkan nilai 1 jika kedua elemen yang bersesuaian memiliki nilai true dan 0 untuk lainnya
| Akan bernilai 1 jika salah satu elemennya true
~ Komplen dari elemen yang diinputkan xor Akan bernilai 1 jika salah satu dari
kedua elemen memiliki nilai berbeda dan bernilai nol jika sama
(8)
BAB III
ARRAY, MATRIKS DAN POLINOMIAL
III.1 ARRAY
MATLAB menangani array secara intuitif. Untuk membuat array dalam MATLAB, yang perlu dilakukan hanyalah mengetikkan kurung kotak kiri, memasukkan elemenelemen dengan dipisahkan oleh spasi atau koma, kemudian menutup array dengan kurung kotak kanan. Berikut ini akan diberikan beberapa contoh assignment untuk array :
a. Pengalamatan array
Dalam MATLAB elemenelemen array diakses menggunkan subcript; misalnya x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dan seterusnya.
Contoh :
1. » x=[2 4 6 8 10]
dapai dilihat bahwa x(1)=2, x(2)=4, x(3)=6, x(4)=8, x(5)=10
» x(4) %elemen keempat x ans =
8
2. » x([1 3 5])=[0.2 0.5 0.7]
maka x(1)=0.1, x(3)=0.5, x(5)=0.7 dan x(i) untuk i=2,3,4 bernilai 0.
3. nilai array dapat juga diisikan sebagai berikut : » x=4:1:9
x =
4 5 6 7 8 9
artinya bahwa nilai array yang diisikan dengan angka dari 4 sampai 9 dengan penambahan 1 (default). Penambahan
(9)
dapat bernilai sebarang, bahkan dapat juga negatif, seperti contoh berikut :
» z=10:2:1 z =
10 8 6 4 2
4. Memisahkan elemen dengan titik koma membuat elemen berada dalam baris yang berbeda, seperti contoh berikut :
» y=[1;3;5;7;9] y =
1 3 5 7 9
b.Menambahkan elemen array
» x=[x 1 2] % array sebelumnya
» x=[x 2 4] %menambahkan 2 elemen dibelakang x =
1 2 2 4
» x=[1 2 x 3]%menambahkan dua elemen di depan,
satu dibelakang x =
1 2 1 2 2 4 3
c. Mengakses sebagian elemen array
Dari contoh sebelumnya misalkan hanya diakses elemen ke 2 sampai ke empat
» y=x(2:4) y =
(10)
d. Menghapus elemen array
Dapat dilihat contoh berikut :
Menghapus elemen terakhir dari array » n=[1 3 5 7 9]
n =
1 3 5 7 9
» n=n(1:length(n)1) n =
1 3 5 7
a. Menghapus elemen pada index tertentu
Misalkan z =[1 2 3 4 5 ] dan ingin dihapus z pada index ke 2 dan 4 maka:
» z=[1 2 3 4 5] z =
1 2 3 4 5 » z([2 4])=[] z =
1 3 5 III.2 MATRIKS
Matlab menggunakan matriks sebagai dasar komputasinya. Secara garis besar matlab membagi matriks menjadi 2 bagian, yaitu :
a. Matriks Khusus 1. Matriks Nol
Matriks yang elemennya bilangan nol Bentuk umum :
>> zeros(n,m) Contoh :
(11)
ans =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2. Matriks Satu
Matriks yang elemennya bilangan satu Bentuk umum :
>>ones(n,m) Contoh :
>> ones(2,3) ans =
1 1 1 1 1 1
3. Natriks Identitas Bentuk umum :
>>eye(n) Contoh :
>> eye(4) ans =
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
(12)
4. Matriks Bujur Sangkar Ajaib
Matriks yang memiliki hasil jumlah yang sama pada elemenelemen baris, kolom dan diagonalnya.
Bentuk umum : >>magic(n) Contoh :
>> magic(3) ans =
8 1 6 3 5 7 4 9 2 5. Matriks Acak
Matriks yang memiliki nilai acak berdasarkan distribusi statistic pada elemnnya.
Bentuk umum : >>rand(n,m) Contoh :
>> rand(3,2) ans =
0.9501 0.4860 0.2311 0.8913 0.6068 0.7621
(13)
b. Matriks yang didefinisikan olehUser
Matlab juga menyediakan bentuk matriks yang didefinisikan olehuser. Contoh :
>> S=[1 2 3;7 8 9] S =
1 2 3 7 8 9
Tanda semicolon ‘;’ digunakan untuk memisahkan baris satu dengan yang lain.
III.3 POLINOMIAL
Di Matlab, sebuah polinomial diwakilkan oleh sebuah vektor. Untuk menciptakan polynomial di Matlab, masukkan coefficient polynomial kedalam vector dalam orde yang menurun.
Misalkan polynomial berikut: s 4 +3s 3 15s 2 2s+9
Untuk memasukkan ke dalam Matlab, masukkan : >> x = [1 3 15 2 9]
x =
1 3 15 2 9
Matlab dapat menginterpretasikan sebuah panjang n+1 sebagai nth order polynomial. Jika polynomial missing pada coefficients, anda harus memasukkan nilai nol kedalam tempat yang bersesuaian di dalam vector.
Contoh : s 4 +1
ditulis di Matlab sebagai: >> y = [1 0 0 0 1]
(14)
Anda dapat mencari nilai polynomial menggunakan fungsi polyval. Contoh :
untuk mencari nilai polynomial pada s=2, yaitu : >> z = polyval([1 0 0 0 1],2) z =
17
Anda dapat mengekstrak akar polynomial. Contoh :
s 4 +3s 3 15s 2 2s+9
Untuk mencari akar polynomial : >> roots([1 3 15 2 9]) ans =
5.5745 2.5836 0.7951 0.7860
JIka anda ingin mengalikan hasil 2 polynomials lakukan dengan convolution dari coefficients. Fungsi conv dapat digunakan.
>> x = [1 2]; >> y = [1 4 8]; >> z = conv(x,y) z =
(15)
Untuk membagi 2 polynomials dapat dilakukan dengan fungsi deconv. Misalkan z dibagi y dengan hasil x.
>> [xx, R] = deconv(z,y) xx =
1 2 R =
0 0 0 0
Jika anda ingin menambah 2 polinomial secara bersamaan dengan orde yang sama, buatlah z=x+y akan berhasil (vectors x dan y harus mempunyai panjang yang sama). Secara umum, anda dapat mendefinisikan fungsi polyadd.
>> z = polyadd(x,y) x =
1 2 y =
1 4 8 z =
(16)
BAB IV
MFILE DAN GRAFIK
IV.1 PEMROGRAMAN MFILE
Mfile merupakan sederetan perintah matlab yang dituliskan secara berurutan sebagai sebuah file. Nama file yang tersimpan akan memiliki ekstensi .m yang menandakan bahwa file yang dibuat adalah file matlab. Mfile dapat ditulis sebagai sebuah script atau dapat pula ditulis sebagai sebuah fungsi yang menerima argument atau masukan yang menghasilkan output.
Contoh script sederhana dari matlab : %menghitung akar dari
%persamaan kuadrat y=ax^2 + bx + c clc
clear
a=input('masukkan konstanta a=') b=input('masukkan konstanta b=') c=input('masukkan konstanta c=') x1=(b+sqrt(b^24*a*c))/(2*a) x2=(bsqrt(b^24*a*c))/(2*a)
(17)
IV.2 GRAFIK
Matlab mempunyai bermacammacam fungsi untuk menampilkan grafik, dimana setiap fungsi memiliki perbedaan dalam menskalakan garis sumbu. Setiap menerima inputan dalam bentuk vector atau matriks, matlab akan menskalakan secara otomatis.
a. Plot
Fungsi plot digunakan untuk menggambar grafik 2D dengan skala linear pada kedua sumbunya.
Contoh:
>> x=10:10; >> y=x.^2; >> plot(x,y)
Hasilnya akan tampak sebagai berikut:
b. Plot3
Fungsi plot3 digunakan untuk menampilkan grafik 3 dimensi. Plot3 memerlukan 3 argumen dengan bentuk plot3(x,y,z), dimana x, y, z merupakan 3 bagian vector yang sama panjang.
Contoh:
>> t=0:pi/100:10*pi;
(18)
Hasilnya akan tampak sebagai berikut:
c. Bar
Fungsi bar digunakan untuk menampilkan data yang berbentuk vector maupun matriks. Grafik bar digunakan untuk menampilkan sekumpulan data selama kurun waktu terentu dan cocok untuk menampilkan data dalam bentuk diskrit.
Contoh:
>> t=[10 30 21 52; 34 67 12 23; 90, 23, 45, 26; 58 94 30 20];
>> bar(t) >> grid on
(19)
Matlab juga menyediakan dalam bentuk 3 dimensi, yaitu bar3. Misal grafik diatas disajikan dalam bar3, maka kita ketik perintah berikut:
(20)
BAB V
STATEMENT KONTROL
Sama seperti bahasa pemrograman yang lain, matlab juga memiliki statemen kontrol. Berikut adalah beberapa pembahasan statemen kontrol yang ada di Matlab:
V.1 IF, ELSE DAN ELSEIF
If merupakan statemen control yang digunakan untuk mengevaluasi ekspresi logika dan mengekskusi kelompok statemen yang didasarkan pada nilai ekspresi. Penulisan kontrol if else adalah sebagai berikut :
if <ekspresi logika> statementstatement else if <ekspresi logika> statementstatement else<ekspresi logika> statementstatement end
contoh:
V.2 WHILE
While digunakan untuk melakukan proses perulangan selama kondisi ekspresi terpenuhi. Begitu kondisi sudah tidak terpenuhi lagi, maka proses perulangan akan langsung dihentikan.
Bentuk umum dari while adalah : while <ekspresi>
Statementstatement end
(21)
contoh :
V.3 FOR
For digunakan untuk melakukan proses perulangan selama kondisi ekspresi terpenuhi. Perbedaannya dengan while adalah pada for jumlah perulangan dapat diketahui, sedangkan pada while bergantung pada nilai ekspresi.
Bentuk umum dari for adalah :
for indeks=nilai awal:step:nilai akhir statementstatement
end contoh:
V.4 CONTINUE DAN BREAK
Statemen continue dan break digunakan pada statemen kontrol for atau while. Fungsi continu adalah melanjutkan ke iterasi berikutnya tanpa menjalankan statemen yang ada di bawah kondisi continu. Sedangkan break, digunakan untuk menghentikan proses iterasi tanpa melanjutkan perulangan.
(22)
(23)
BAB VI
ANALISA DATA DAN INTERPOLASI
VI.1 ANALISA DATA
Dalam bab ini, kita akan belajar bagaimana menganalisis dan memanipulasi data mempergunakan MATLAB, terutama untuk perhitungan statistik: rentang data, maksimum/minimum, ratarata, deviasi, jumlah kumulatif, dan sebagainya. Di MATLAB fungsifungsi statistik semacam ini telah ada dan bisa digunakan secara fleksibel. Dalam penjelasan bab ini, x dan y kita misalkan sebagai vector (baris ataupun kolom), danA danB sebagai matriks m×n.
a. Maksimum dan Minimum
Nilai maksimum dan minimum diperoleh dengancommand berikut ini :
COMMAND KETERANGAN
max(x) menghitung nilai maksimum dari elemen vektorx. Jika x bernilai kompleks maka dihitung max(abs(x))
max(A) menghitung nilai maksimum dari setiap kolom di matriks A; hasilnya berupa vektor 1×n max(max(A)) menghitung nilai maksimum dari elemen
matriks A
max(A,B) menghitung matriks berukuran sama denganA
dan Bdengan elemen berisi nilai terbesar di antara elemenAdanBpada posisi yang sama
min( ... ) sama dengan sintaks max( ... )di atas, tetapi untuk mencari minimum
(24)
Mari kita praktekkan beberapa contoh untuk menambah pemahaman terhadap sintaks di atas. Misalkan x ialah data tinggi badan dari 10 orang, danA ialah data indeks prestasi (IP) dari 4 mahasiswa dalam 3 semester.
Data tinggi badan (dalam cm)
175 177 173 165 160 170 174 177 168 170 Data IP mahasiswa
Nama IP sem1 IP sem2 IP sem3
Agus 3,3 2,8 3,3
Dedy 3,9 4,0 3,8
Tanjung 3,8 3,5 2,9
Vijay 2,9 3,2 3,1
>> x=[175 177 173 165 160 170 174 177 168 170];
>> A=[3.3 2.8 3.3;3.9 4.0 3.8;3.8 3.5 2.9;2.9 3.2 3.1];
>> max(x) ans =
177
>> max(A), max(A’) ans =
3.9000 4.0000 3.8000 ans =
3.3000 4.0000 3.8000 3.2000 >> max(max(A))
ans = 4
Kita bisa melihat bahwa max(x) menghitung tinggi maksimum dari 10 orang yang ada, max(A) menghitung IP tertinggi pada setiap semester, sedangkan max(A’) menghitung IP tertinggi dari setiap mahasiswa.
(25)
Sementara itu, max(max(A)) menghitung IP tertinggi yang pernah dicapai mahasiswa selama 3 semester.
b. Statistika
Sekarang kita akan belajar command untuk analisis data statistik.
COMMAND KETERANGAN
mean(x) menghitung ratarata aritmatik dari elemen vektorx
mean(A) menghitung ratarata aritmatik dari elemen
setiap kolom di matriks A; hasilnya berupa vektor 1×n median( ... ) sama seperti sintaks mean( ... ), tetapi untuk
std( ... )
menghitung median (nilai tengah) sama seperti sintaks mean( ... ), tetapi untuk
var( ... )
menghitung deviasi standar (simpangan baku) sama seperti sintaks mean( ... ), tetapi untuk
menghitung variansi
Sebagai contoh, kita gunakan kembali data tinggi badan dan nilai IP mahasiswa seperti sebelumnya.
>> x=[175 177 173 165 160 170 174 177 168 170];
>> A=[3.3 2.8 3.3;3.9 4.0 3.8;3.8 3.5 2.9;2.9 3.2 3.1];
>> rataan_IP_sem = mean(A) rataan_IP_sem =
3.4750 3.3750 3.2750 >> rataan_IP_mhs = mean(A') rataan_IP_mhs =
3.1333 3.9000 3.4000 3.0667 >> rataan_IP_total = mean(mean(A)) rataan_IP_total =
(26)
>> nilai_tengah = median(x), deviasi = std(x), ... variansi = var(x)
nilai_tengah = 171.5000 deviasi =
5.4661 variansi =
29.8778 VI.2 INTERPOLASI
Pada fungsi yang memiliki sejumlah titik terbatas, dimungkinkan untuk menentukan titiktitik perantaranya dengan interpolasi. Cara termudah untuk menghitungnya ialah dengan menggunakan interpolasi linier untuk menghubungkan dua titik yang berdekatan. Command interp1 menggunakan algoritma khusus untuk interpolasi titiktitik data yang terpisah secara seragam. Untuk command ini, kita harus tambahkan tanda asteris ‘*’ di depan nama metoda yang diinginkan, misalkaninterp(x,y,xx,’*nearest’).
yy = interp1(x,y,xx) menghitung vektor yyyang panjangnya sama dengan vektor xx. Dalam hal ini yyfungsi dari xxmerupakan interpolasi dari yfungsi dari x. Vektor xharus diurutkan secara ascending / descending interp1(x,y,xx,’string’) menghitung interpolasi 1dimensi; stringmenunjukkan metode yang digunakan, yaitu: linear nearest spline cubic interpolasi linier interpolasi “nearestneighbor” interpolasi “cubicspline” interpolasi kubik, membutuhkan jarak pisah seragam pada x Apabila string tidak dituliskan, maka digunakan interpolasi linier. Untuk semua metode tersebut, xharus diurutkan ascending / descending. interp1q(x,y,xx) bekerja seperti interp1namun lebih cepat untuk titiktitik data yang terpisah tak seragam. x, y, danxxharus berupa vektor kolom.
Misalkan kita memiliki data tekanan udara dalam suatu ruang tertutup yang diukur pada jamjam tertentu sebagai berikut:
>> t = [0 2 3 5 8.5 10 12];
(27)
Sekarang kita interpolasi dengan beberapa metode dan kita plot pada satu gambar sekaligus :
>> tt = linspace(0,12,100);
>> PP1 = interp1(t,pres,tt,’*linear’); >> PP2 = interp1(t,pres,tt,’*cubic’); >> PP3 = interp1q(t’,pres’,tt’);
>> figure;
>> plot(t,pres,’k*’,tt,PP1,’k‘,tt,PP2,’k:’, ... tt,PP3,’k’)
>> grid on;
>> xlabel(‘waktu (jam)’), ylabel(‘Pressure’) >> legend(‘data’,’linier’,’kubik’,’interp1q’) >> title(‘Perbandingan metode interpolasi’
(28)
BAB VII
VISUALISASI DAN FUNCTION MFILE
VII.1 VISUALISASI 2D DAN 3D
MATLAB memiliki beberapa bentuk grafik yang dapat dibuat dengan mudah dan cara penggunaannyapun sederhana. Berikut ini akan diberikan contohcontoh untuk menampilkan berbagai grafik berdasarkan kategori :
a. Grafik 2D :
1. Grafik garis, mencetak grafik chirp. >> x=0:0.05:5; {Enter} >> y=sin(x.^2); {Enter} >> plot(x,y); {Enter}
2. Grafik Batang (Bar), mencetak kurva BELL. >> x=2.9:0.2:2.9; {Enter} >> bar(x,exp(x.*x)); {Enter}
3. Grafik Tangga, mencetak Gelombang sinus dalam grafik tangga. >> x=0:0.25:10; {Enter}
>> stairs(x,sin(x)); {Enter}
4. Grafik ErrorBar, mencetak Grafik ErrorBar pada fungsi dengan kesalahan secara acak.
>> x=2:0.1:2; {Enter} >> y=erf(x); {Enter}
>> e=rand(size(x))/10; {Enter} >> errorbar(x,y,e); {Enter}
(29)
5. Grafik Polar, mencetak fungsi perkalina sin dan cos dalam bentuk polar.
>> t=0:.01:2*pi; {Enter}
>> polar(t,abs(sin(2*t).*cos(2*t)));{Enter} 6. Grafik Stem, mencetak perkalian fungsi sin dengan
eksponensial.
>> x=0:0.1:4; {Enter}
>> y=sin(x.^2).*exp(x); {Enter} >> stem(x,y) {Enter}
b. Grafik 3D :
1. Grafik Mesh, mencetak bentuk grafik mesh dari fungsi "peaks" yang telah disiapkan didalam MATLAB.
>> z=peaks(25); {Enter} >>figure(2);surf(z);{Enter}
2. Grafik Surface, mencetak grafik permukaan dari fungsi "peaks" dengan pola warna "jet" yang telah didefinisikan didalam MATLAB.
>> z=peaks(25); {Enter} >> surf(z); {Enter}
>> colormap(jet); {Enter}
3. Grafik Contour, mencetak kontur dari fungsi "peaks". >> z=peaks(25); {Enter}
>> contour(z,16); {Enter}
4. Grafik Quiver, mencetak pola arah gerakan suatu nilai. >> x = 2:.2:2; y = 1:.2:1; {Enter} >> [xx,yy] = meshgrid(x,y); {Enter} >> zz = xx.*exp(xx.^2yy.^2); {Enter}
(30)
>> [px,py] = gradient(zz,.2,.2); {Enter} >> quiver(x,y,px,py,2); {Enter}
VII.2 FUNCTION MFILE
Fungsi adalah mfile yang menerima argument input dan menghasilkan argument output. Fungsi dapat dipanggil langsung dari command window atau dari suatu m file yang berbeda. Aturan penulisan fungsi adalah sebagai berikut :
Fungsi di dalam matlab jika disimpan secara default akan tersimpan dengan nama yang sama dengan nama fungsinya.
Contoh :
Jika kita akan menggunakan fungsi tersebut, maka pada command window kita tuliskan : >> akar( 1, 8, 2)
(1)
Sementara itu, max(max(A)) menghitung IP tertinggi yang pernah dicapai mahasiswa selama 3 semester.
b. Statistika
Sekarang kita akan belajar command untuk analisis data statistik.
COMMAND KETERANGAN
mean(x) menghitung ratarata aritmatik dari elemen vektorx
mean(A) menghitung ratarata aritmatik dari elemen
setiap kolom di matriks A; hasilnya berupa vektor 1×n median( ... ) sama seperti sintaks mean( ... ), tetapi untuk
std( ... )
menghitung median (nilai tengah) sama seperti sintaks mean( ... ), tetapi untuk
var( ... )
menghitung deviasi standar (simpangan baku) sama seperti sintaks mean( ... ), tetapi untuk
menghitung variansi
Sebagai contoh, kita gunakan kembali data tinggi badan dan nilai IP mahasiswa seperti sebelumnya.
>> x=[175 177 173 165 160 170 174 177 168 170];
>> A=[3.3 2.8 3.3;3.9 4.0 3.8;3.8 3.5 2.9;2.9 3.2 3.1];
>> rataan_IP_sem = mean(A) rataan_IP_sem =
3.4750 3.3750 3.2750 >> rataan_IP_mhs = mean(A') rataan_IP_mhs =
3.1333 3.9000 3.4000 3.0667 >> rataan_IP_total = mean(mean(A)) rataan_IP_total =
(2)
>> nilai_tengah = median(x), deviasi = std(x), ... variansi = var(x)
nilai_tengah = 171.5000 deviasi =
5.4661 variansi =
29.8778 VI.2 INTERPOLASI
Pada fungsi yang memiliki sejumlah titik terbatas, dimungkinkan untuk menentukan titiktitik perantaranya dengan interpolasi. Cara termudah untuk menghitungnya ialah dengan menggunakan interpolasi linier untuk menghubungkan dua titik yang berdekatan. Command interp1 menggunakan algoritma khusus untuk interpolasi titiktitik data yang terpisah secara seragam. Untuk command ini, kita harus tambahkan tanda asteris ‘*’ di depan nama metoda yang diinginkan, misalkaninterp(x,y,xx,’*nearest’).
yy = interp1(x,y,xx) menghitung vektor yyyang panjangnya sama dengan vektor xx. Dalam hal ini yyfungsi dari xxmerupakan interpolasi dari yfungsi dari x. Vektor xharus diurutkan secara ascending / descending interp1(x,y,xx,’string’) menghitung interpolasi 1dimensi; stringmenunjukkan metode yang digunakan, yaitu: linear nearest spline cubic interpolasi linier interpolasi “nearestneighbor” interpolasi “cubicspline” interpolasi kubik, membutuhkan jarak pisah seragam pada x Apabila string tidak dituliskan, maka digunakan interpolasi linier. Untuk semua metode tersebut, xharus diurutkan ascending / descending. interp1q(x,y,xx) bekerja seperti interp1namun lebih cepat untuk titiktitik data
yang terpisah tak seragam. x, y, danxxharus berupa vektor kolom.
Misalkan kita memiliki data tekanan udara dalam suatu ruang tertutup yang diukur pada jamjam tertentu sebagai berikut:
>> t = [0 2 3 5 8.5 10 12];
(3)
Sekarang kita interpolasi dengan beberapa metode dan kita plot pada satu gambar sekaligus :
>> tt = linspace(0,12,100);
>> PP1 = interp1(t,pres,tt,’*linear’); >> PP2 = interp1(t,pres,tt,’*cubic’); >> PP3 = interp1q(t’,pres’,tt’);
>> figure;
>> plot(t,pres,’k*’,tt,PP1,’k‘,tt,PP2,’k:’, ... tt,PP3,’k’)
>> grid on;
>> xlabel(‘waktu (jam)’), ylabel(‘Pressure’) >> legend(‘data’,’linier’,’kubik’,’interp1q’) >> title(‘Perbandingan metode interpolasi’
(4)
BAB VII
VISUALISASI DAN FUNCTION MFILE
VII.1 VISUALISASI 2D DAN 3D
MATLAB memiliki beberapa bentuk grafik yang dapat dibuat dengan mudah dan cara penggunaannyapun sederhana. Berikut ini akan diberikan contohcontoh untuk menampilkan berbagai grafik berdasarkan kategori :
a. Grafik 2D :
1. Grafik garis, mencetak grafik chirp. >> x=0:0.05:5; {Enter} >> y=sin(x.^2); {Enter}
>> plot(x,y); {Enter}
2. Grafik Batang (Bar), mencetak kurva BELL. >> x=2.9:0.2:2.9; {Enter}
>> bar(x,exp(x.*x)); {Enter}
3. Grafik Tangga, mencetak Gelombang sinus dalam grafik tangga. >> x=0:0.25:10; {Enter}
>> stairs(x,sin(x)); {Enter}
4. Grafik ErrorBar, mencetak Grafik ErrorBar pada fungsi dengan kesalahan secara acak.
>> x=2:0.1:2; {Enter} >> y=erf(x); {Enter}
>> e=rand(size(x))/10; {Enter} >> errorbar(x,y,e); {Enter}
(5)
5. Grafik Polar, mencetak fungsi perkalina sin dan cos dalam bentuk polar.
>> t=0:.01:2*pi; {Enter}
>> polar(t,abs(sin(2*t).*cos(2*t)));{Enter}
6. Grafik Stem, mencetak perkalian fungsi sin dengan eksponensial.
>> x=0:0.1:4; {Enter}
>> y=sin(x.^2).*exp(x); {Enter}
>> stem(x,y) {Enter}
b. Grafik 3D :
1. Grafik Mesh, mencetak bentuk grafik mesh dari fungsi "peaks" yang telah disiapkan didalam MATLAB.
>> z=peaks(25); {Enter}
>>figure(2);surf(z);{Enter}
2. Grafik Surface, mencetak grafik permukaan dari fungsi "peaks" dengan pola warna "jet" yang telah didefinisikan didalam MATLAB.
>> z=peaks(25); {Enter} >> surf(z); {Enter}
>> colormap(jet); {Enter}
3. Grafik Contour, mencetak kontur dari fungsi "peaks". >> z=peaks(25); {Enter}
>> contour(z,16); {Enter}
4. Grafik Quiver, mencetak pola arah gerakan suatu nilai. >> x = 2:.2:2; y = 1:.2:1; {Enter} >> [xx,yy] = meshgrid(x,y); {Enter}
(6)
>> [px,py] = gradient(zz,.2,.2); {Enter}
>> quiver(x,y,px,py,2); {Enter}
VII.2 FUNCTION MFILE
Fungsi adalah mfile yang menerima argument input dan menghasilkan argument output. Fungsi dapat dipanggil langsung dari command window atau dari suatu m file yang berbeda. Aturan penulisan fungsi adalah sebagai berikut :
Fungsi di dalam matlab jika disimpan secara default akan tersimpan dengan nama yang sama dengan nama fungsinya.
Contoh :
Jika kita akan menggunakan fungsi tersebut, maka pada command window kita tuliskan : >> akar( 1, 8, 2)