Contents
1. Pendahuluan -
Apa itu MATLAB
-
Keunggulan-keunggulan MATLAB
2. Lingkungan Kerja MATLAB -
Memulai MATLAB
-
Command Window
-
Workplace
-
Current Directory
-
Command History
3. Variabel dan Operator -
Definisi dari Variabel dan operator
-
Contoh-contoh operator
4. Matriks dan vektor -
Cara penulisan vector dan matriks di MATLAB
5. Pemrograman pada MATLAB M-File Logical Operation (Programming) -
For
-
While
-
Switch
-
If
6. Plotting Graphical dan suara -
2D
-
3D
-
Movie
-
Suara/musik
7. Statistik menggunakan MATLAB 8. Penyelesaian system persamaan aljabar
9. Analisis fungsi dan interpolasi 10. Aplikasi-aplikasi dalam ilmu matematika -
Fourier
-
Integral
-
Differential
-
Polynomial
11. Referensi
Bab I Pendahuluan
M
ATLAB (singkatan dari Matrix LABoratory), adalah sebuah lingkungan komputasi numerikal dan bahasa pemrograman komputer generasi keempat. Dikembangkan oleh The MathWorks.Inc, MATLAB memungkinkan manipulasi matriks, pem-plot-an fungsi dan data, implementasi algoritma, pembuatan antarmuka pengguna, dan peng-antarmukaan dengan program dalam bahasa lainnya. Meskipun hanya bernuansa numerik, sebuah kotak kakas (toolbox) yang menggunakan mesin simbolik MuPAD, memungkinkan akses terhadap kemampuan aljabar komputer. Sebuah paket tambahan, Simulink, menambahkan simulasi grafis multiranah dan Desain Berdasar-Model untuk sistem terlekat dan dinamik.( http://id.wikipedia.org) Pada tahun 2004, MathWorks mengklaim bahwa MATLAB telah dimanfaatkan oleh lebih dari satu juta pengguna di dunia pendidikan dan industri. MATLAB pertama kali diadopsi oleh insinyur kontrol, tapi lalu menyebar secara cepat ke berbagai bidang lain. Kini juga digunakan di bidang pendidikan, khususnya dalam pengajaran aljabar linear dan analisis numerik, serta populer di kalangan ilmuwan yang menekuni bidang pemrosesan citra.
Berikut di bawah ini merupakan karakteristik dari MATLAB: Bahasa pemrogramannya berdasarkan pada matriks (baris dan kolom) 1
Tersedia banyak toolbox untuk aplikasi-aplikasi khusus seperti; Simulink, Neural Network, State Flow, Data Acquisition Toolbox, Communications Blockset, Fuzzy Logic Toolbox, Image Acquisition Toolbox, Signal Processing Blockset, dan lain sebagainya. Dalam menulis kode programnya, tidak harus mendeklarasikan array terlebih dahulu. Memiliki waktu pengembangan program yang lebih cepat dibandingkan dengan pemrograman tradisional seperti Fortran, dan C.
2
Bab II Lingkungan Kerja MATLAB 2.1
Membuka Program MATLAB
Membuka program MATLAB dapat dilakukan dengan mengeksekusi ikon MATLAB di layar komputer ataupun melalui tombol Start di Windows. Setelah proses loading program, jendela utama MATLAB akan muncul seperti di bawah ini.
Gambar 2.1 Jendela MATLAB
3
Bab VI Grafik dan Suara
M
ATLAB mempunyai beberapa keunggulan dalam pengolahan grafik dan suara yaitu mampu menampilkan dan mengolah grafik serta suara dengan command yang sederhana dan fleksibel. Dalam bab ini akan dibahas tentang cara membuat grafik dan mengolahnya, serta mebuat kode dan membaca suara pada MATLAB. Kita dapat mempelajari demo untuk membuat dan memvisualisasikan grafik baik 2D maupun 3D yang terdapat pada Help kemudian klik demos, Graphics, cari 2d atu 3d. Kita dapat , menjalankan M-file yang terdapat pada demo tersebut. 6.1
Plot 2 dimensi Dalam mebuat grafik 2 dimensi, fungsi dasar yang terdapat pada MATLAB yaitu fungsi plot. Untuk mengetahui definisi fungsi ini, kita dapat mengetik help plot atau helpwin plot pada command window MATLAB. Coba kita buat plot sederhana dengan menggunakan perintah plot. Ketikkan perintah di bawah ini pada command window MATLAB. >> x=1:1:9; >> y=[10 11 15 14 13 17 15 18 16]; >> plot(x,y)
Akan muncul window baru berisi figure hasil plotting. Perhatikan kegunaan dari ikon yang ada. 4
BELUM DIKASIH KETERANG AN
Gambar 6.1 Jendela figure Kita juga bisa memberikan judul plot, label sumbu x dan sumbu y, memberikan legenda, dan lain sebagainya pada jendela figure, jika kita tidak melakukannya pada command window di MATLAB. Berikut dibawah ini merupakan command yang sering digunakan untuk membuat dan mengolh grafik 2 dimensi. Table 6.1 Perintah untuk mebuat grafik 2D Perintah Fungsi plot Membuat grafik 2 Dimensi xlabel Memberi label pada sumbu-x ylabel Memberi label pada sumbu-y title Memberi judul di atas area plot gtext(string) Menempatkan teks dengan mouse text(x,y,string) Menambahkan tekspada lokasi (x,y) di grafik yang aktif grid on Memunculkan grid di dalam area plot 5
grid off axis off axis on axis (….) axis equal axis square Xlim(…) Ylim(…) Legend (….) legend off clf
Menghapus grid Menghilangkan tampilan sumbu koordinat pada plot Menampakkan kembali sumbu koordinat Membuat batas-batas plot pada sumbu x dan y Mengubah skala sumbu-x dan sumbu-y menjadi sama Mengubah bentuk area plot menjadi bujur sangkar Membatasi plot pada sumbu x Membatasi plot pada sumbu y Menyisipkan legenda ke dalam plot Menghilangkan keterangan dari grafik yang aktif “clear figure”, mengosongkan figure window yang sedang aktif.
Sekarang akan kita buat plot persamaan kuadrat y=2x2+5x-7, dengan x antara -10 sampa dengan 10. Ketikkan perintah di bawah ini pada command window MATLAB. >> clear >> x=-6:1:6; >> y=2*x.^2+5*x-7; >> plot(x,y) >> xlabel('sumbu x') >> ylabel('sumbu y') >> title(' Plot kurva y=2x^2+5x-7') >> grid
Kita dapat menyalin hasil plot yang dihasilkan MATLAB, ke dalam Microsoft word dengan cara klik Edit pada menubar, plih Copy Figure, kemudian paste ke dalam dokumen Microsoft word yang kita inginkan, sehingga akan dihasilkan plot seperti pada gambar 6.2. 6
Plot kurva y=2x 2+5x-7 100
80
sumbu y
60
40
20
0
-20 -6
-4
-2
0 sumbu x
2
4
6
Gambar 6.2 Contoh Plot fungsi kuadrat Terdapat tiga bentuk penulisan fungsi plot, yaitu: plot(x,y), menampilkan vektor y (sumbu vertikal) terhadap vektor x (sumbu horizontal). plot(y) menampilkan vektor y terhadap indeksnya. plot(x,y,s), menampilkan vektor y terhadap vektor x, dengan format menurut string s. String s menyatakan warna, bentuk penanda dan bentuk garis antarnilai. Berikut adalah beberapa nilai yang dapat digunakan pada string s. Tabel 6.2 Warna, bentuk penanda dan bentuk garis Simbol
b g r
Warna Biru Hijau Merah
Simbol
. o x
Penandaan Titik Lingkaran Tanda silang
7
Simbol
: -.
Style garis Garis lurus Garis titik-titik Garis terpotong dan titik
c
Cyan
+
Tanda plus
m Y K w
Magenta Kuning Hitam Putih
* s d ^
Bintang Bujursangkar Diamond Segitiga ke atas Segitiga ke bawah Segitiga ke kiri Segitiga ke kanan Pentagram Heksagram
v < > p h
--
Garis terpotongpotong
Jika kita tidak memilih warna pada saat menggunakan perintah plot, MATLAB akan memulainya dengan warna biru dan berputar berurutan ke tujuh warna pertama dalam tabel untuk setiap penambahan garis. Standar style garis adalah garis lurus kecuali jika kita memberikan style garis yang lain pada saat menggunakan perintah plot atau melalui jendela figure. Untuk membuat plot yang terdapat string pada table 6.2, ketikkan code seperti dibawah ini di dalam M-file. t=0:0.1:5; % inkremen=0.1 agar kurva terlihat mulus x=2*t-3; % fungsi linear y=2*t.^2+5*t-7; % fungsi kuadrat z=t.^3-5*t.^2+2*t+1; % fungsi polinomial orde 3 atau kubik plot(t,x,'r-','LineWidth',1.5,hold on plot(t,y,'b-.','LineWidth',1.5),hold on plot(t,z,'k--','LineWidth',1.5) legend('x','y','z','FontSize',12) xlabel('t','FontSize',12) ylabel('fungsi x, y, dan z','FontSize',12) title('Fungsi linear, kuadrat, dan kubik', 'FontSize',12) grid on
8
Setelah semua code pada M-file telah diketik semua, kemudian simpan dan jalankan dengan klik icon run tombol F5 pada keyboard.
atau tekan
Fungsi linear, kuadrat, dan kubik 70 x y z
60
fungsi x, y, dan z
50 40 30 20 10 0 -10 -20
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
t
Gambar 6.3 Plot fungsi linear, kuadrat, dan kubik Berbagai fungsi yang berkaitan dengan plot di atas, berlaku pula untuk plot diskrit, plot logaritmik dan plot dalam koordinat polar. Berikut pada tabel 6.2 merupakan beberapa fungsi plot yang menggunakan skala logaritmik. Tabel 6.3 Fungsi skala logaritmik Fungsi semilogy( ... ) semilogx( ... ) loglog( ... )
keterangan Plot dengan sumbu-y menggunakan skala logaritmik (basis 10) Plot dengan sumbu-x menggunakan skala logaritmik (basis 10) Plot dengan sumbu-x dan sumbu-y menggunakan skala logaritmik (basis 10) 9
Kita akan mocoba command pada tabel 6.3, yaitu pada fungsi semilogy dengan fungsi eksponensial positif. Ketikkan beberapa kode pada M-file seperti di bawah ini.
clear all clc x=linspace(0,5,500); y1=exp(x); y2=exp(2*x); y3=exp(3*x); y4=exp(5*x); semilogy(x,y1,x,y2,x,y3,x,y4) grid on xlabel('sumbu-x') ylabel('sumbu-y') title('Kurva y = exp(Ax)') legend('A=1','A=2','A=3','A=5')
Kurva y = exp(Ax)
12
10
A=1 A=2 A=3 A=5
10
10
8
sumbu-y
10
6
10
4
10
2
10
0
10
0
0.5
1
1.5
2
2.5 sumbu-x
3
3.5
4
4.5
5
Gambar 6.4 Plot fungsi menggunakan semilogy 10
6.1.2 Subplot Perintah subplot digunakan untuk membuat beberapa plot dalam satu jendela figure. Perintah subplot dapat dipanggil dengan menggunakan syntax subplot(m,n,p), dimana m merupakan jumlah baris plot, n merupakan jumlah kolom plot, dan p merupakan urutan dari plot. Untuk lebih memahami fungsi dari perintah subplot lihat contoh di bawah ini, yang diketik pada M-file, menulis pada M-file lebih efisien jika kita menulis langsung pada command window MATLAB. figure x=0:0.1:5; y1=exp(-2*x).*sin(20*x); y2=sin(5*x).^2; y3=cos(x).*sin(x); y4=cosh(x); subplot(2,2,1); % membuat plot degan jumlah 2 baris dan 2 kolom pada urutan ke 1 plot(x,y1) xlabel('x') ylabel('y1') title('y1=exp(-2*x).*sin(20*x)') grid on axis([ 0 5 -1 1]) subplot(2,2,2); %membuat plot degan jumlah 2 baris dan 2 kolom pada urutan ke 2 plot(x,y2) xlabel('x') ylabel('y2') title('y2=sin(5*x).^2') grid on axis([ 0 5 -1 1]) subplot(2,2,3); %membuat plot degan jumlah 2 baris dan 2 kolom pada urutan ke 3 plot(x,y3) xlabel('x') ylabel('y3')
11
title('y3=cos(x).*sin(x)') grid on axis([ 0 5 -1 1]) subplot(2,2,4); %membuat plot degan jumlah 2 baris dan 2 kolom pada urutan ke 4 plot(x,y4) xlabel('x') ylabel('y4') title('y4=cosh(x)') grid on axis([ 0 5 0 80])
y2=sin(5*x). 2 1
0.5
0.5 y2
y1
y1=exp(-2*x).*sin(20*x) 1
0 -0.5 -1
0 -0.5
0
1
2
3
4
-1
5
0
1
0
1
1
80
0.5
60 y4
y3
x y3=cos(x).*sin(x)
0 -0.5 -1
2
3 x y4=cosh(x)
4
5
4
5
40 20
0
1
2
3
4
5
0
x
2
3 x
Gambar 6.5 Subplot
12
6.1.2 ezplot Perintah ezplot digunakan untuk membuat plot dengan membuat simbol atau variabel terlebih dahulu kemudian mendefinisikan suatu fungsi terlebih dahulu. Untuk mendefinisikan suatu variabel atau simbol dapat menggunakan perintah syms. Kita akan membuat plot suatu fungsi dibawah ini dengan menggunakan ezplot
x3 y 2 0 >>syms x y; >>ezplot(x^3-y^2) >>grid on x 3-y 2 = 0 6
4
y
2
0
-2
-4
-6 -6
-4
-2
0 x
2
4
6
Gambar 6.6 Plot menggunakan fungsi ezplot 13
Selain fungsi plot dari ezplot terdapat juga seperti fungsi berikut ini: ezcontour, ezcontourf, ezmesh, ezmeshc, ezplot3, ezpolar, dan ezsurf, dan ezsurfc. Untuk mengetahui fungsi tersebut dapat dicari pada help, demos di MATLAB help. Plot yang sudah dibahas sebelumnya merupakan cara mebuat plot dengan garis lurus. Sekarang akan dibahas cara membuat plot dengan menggunakan perintah bar, stairs, errorbar, polar, stem, scatter dan fill. Masih ada fungsi plot untuk 2 dimensi yang lain yang tidak kita bahas, tentu kita bisa mempelajarinya lewat help, demos pada MATLAB. 6.1.3 bar dan barh Bar digunakan untuk membuat plot batang pada posisi vertikal, sedangkan barh digunakan untuk membuat plot batang pada posisi horizontal. % Contoh plot bar dan barh x = -2.9:0.2:2.9; subplot(1,2,1) bar(x,exp(-x.*x)); title('bar') subplot(1,2,2) barh(x,exp(-x.*x)); title('barh') grid
14
bar
barh
1
3
0.9 2
0.8 0.7
1 0.6 0.5
0
0.4 -1
0.3 0.2
-2
0.1 0 -4
-2
0
2
4
-3
0
0.5
Gambar 6.7 Contoh Plot bar dan barh 6.1.4 stairs Satirs step graphs digunakan untuk membuat grafik waktu domain sample dari data digital. % Contoh plot stairs t=0:0.1:10; y=sin(2*pi*t); % inkremen stairs 0.1 detik subplot(1,2,1) stairs(t,sin(t)) xlabel('t') ylabel('y') title('y=sin(t)') grid on subplot(1,2,2) stairs(t,cos(t),'r') xlabel('t') ylabel('y') title('y=cos(t)')
15
1
y=cos(t) 1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
y
y
y=sin(t) 1
0
-0.2
-0.2
-0.4
-0.4
-0.6
-0.6
-0.8
-0.8
-1
0
5 t
10
-1
0
5 t
Gambar 6.8Contoh Plot stairs 6.1.5 errorbar Errorbar ……………………………………………………… Contoh membuat errorbar simetri dengan panjang dua satuan standar deviasi.
% Contoh plot errorbar X = 0:pi/10:pi; Y = sin(X); E = std(Y)*ones(size(X)); errorbar(X,Y,E)
16
10
1.4 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.5
0
0.5
1
1.5
2
2.5
3
3.5
Gambar 6.9 Contoh Plot errorbar 6.1.6
Polar Polar merupakan suatu perintah dalam MATLAB yang berfungsi untuk menggambar grafik dalam koordinat polar. Syntax yang sering digunakan yaitu polar(theta,rho), membuat grafik dalam koordinat polar, dengan sudut theta dan jari-jari rho. % Contoh plot polar t=0:.01:2*pi; subplot(1,2,1) polar(t,abs(sin(2*t).*cos(2*t)),'b'); title('abs(sin(2*t).*cos(2*t)') subplot(1,2,2) polar(t,(sin(2*t)),'r'); title('sin(2*t)')
17
sin(2*t)
abs(sin(2*t).*cos(2*t) 90
90
0.5
120
60 0.25
150
180
30
0.5
30
180
330 240
60
150
0
210
1
120
0
210
300
330 240
270
300 270
Gambar 6.10 Contoh Plot polar 6.1.7
Stem Fungsi stem digunakan untuk membuat rangkaian data
diskrit. % Contoh plot stem x = 0:0.1:4; %inkremen untuk scatter 0.1 y = sin(x.^2).*exp(-x); stem(x,y) title('Plot menggunakan stem')
18
Plot menggunakan stem 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 -0.05 -0.1 -0.15
0
0.5
1
1.5
2
2.5
3
Gambar 6.11 Contoh Plot stem 6.1.8 Scatter ……………………..
% Contoh plot scatter t=0:.5:10; % inkremen untuk scatter 0.5 y=sin(t) z=t.^2-5*t+3 subplot(1,2,1) scatter(t,y,'r*'); title('y=sin(t)') subplot(1,2,2) scatter(t,z,'b+');; title('z=t.^2-5*t+3')
19
3.5
4
z=t. 2-5*t+3
y=sin(t) 1
60
0.8 50 0.6 40
0.4 0.2
30
0 20
-0.2 -0.4
10
-0.6 0 -0.8 -1
0
5
10
-10
0
5
10
Gambar 6.12 Contoh Plot scatter 6.1.8
fill Fill merupakan suatu fungsi pada MATLAB yang digunakan untuk membuat grafik segi banyak berwarna pada grafik 2 dimensi. % Contoh plot fill % Segi delapan warna hijau subplot(1,2,1) t = (1/16:1/8:1)'*2*pi; x = sin(t); y = cos(t); fill(x,y,'g') axis square title('Segi delapan warna hijau') % Segi duabelas warna merah subplot(1,2,2) n=-6:6; a=sin(n*pi/6); b=cos(n*pi/6); fill(a,b,'r') axis square title('Segi duabelas warna 20 merah')
Segi duabelas warna merah
Segi delapan warna hijau 1
1
0.5
0.5
0
0
-0.5
-0.5
-1 -1
-0.5
0
0.5
1
-1 -1
-0.5
0
0.5
1
Gambar 6.13 . Contoh plot fill 6.2
Plot 3 dimensi
Pada subbab ini akan dibahas beberapa fungsi pada MATLAB untuk membuat grafik/plot 3 dimensi. 6.2.1 Plot garis Plot garis di dalam ruang 3-dimensi Ini mirip dengan plot 2dimensi, tetapi kali ini digunakan command plot3( ... ), dan dibutuhkan vektor z, untuk dimensi ketiga. Berikut ini merupakan contoh code yang ditulis pada M-file: % Contoh 1: plot 3 dimensi helix t = 0:pi/50:5*pi; plot3(sin(t),cos(t),t) xlabel('sin(t)');ylabel('cos(t)'); zlabel('t');title ('Helix'); grid on axis square
21
Helix
20
t
15
10
5
0 1 0.5
1 0.5
0
0
-0.5 cos(t)
-0.5 -1
-1
sin(t)
Gambar 6.14 Contoh plot3 Helix Perhatikan bahwa command label, title, grid, axis, hold, dan subplot juga berlaku di sini. Kita juga bisa merotasi gambar 3dimensi tersebut dengan cara men-klik ikon rotate dan dragging mouse di atas gambar atau mengedit plot dengan melalui jendela figure. % Contoh 2: plot 3 dimensi persegi panjang X = [10 20 20 10 10]; Y = [5 5 15 15 5]; Z = [0 0 70 70 0]; plot3(X,Y,Z); grid on; xlabel('sumbu X'); ylabel('sumbu Y') zlabel('sumbu Z'); title ('Persegi panjang'); axis([0 25 0 20 0 80])
22
Persegi panjang
80
sumbu Z
60
40
20
0 20 15
25 20
10
15 10
5 sumbu Y
0
5 0
sumbu X
Gambar 6.15 Contoh plot3 Persegi panjang 6.2.2 Mesh dan meshc Fungsi mesh digunakan untuk membuat plot grafik 3-D dalam bentuk mesh surface. Sebelum kita menggunakan fungsi ini sebaiknya kita mengenal fungsi meshgrid terlebih dahulu. Fungsi ini menjalankan 2 x2 D array untuk plot 3-D. >> x=[1 3 5]; >> y=[10 15 20]; >> [xi yi]=meshgrid(x,y) xi = 1 1 1 yi = 10 15 20
3 3 3
5 5 5
10 10 15 15 20 20
23
Perhatikan bahwa matriks xi berisi replikasi baris dari array x sedangkan yi berisi replika kolom y. Nilai z dihitung dari array xi dan yi. Untuk menggunakan perintah mesh dan meshc sebaiknya digunakan cara di bawah ini: 1) Definisikan batas-batas nilai x dan y yang akan diplot. 2) Gunakan perintah meshgrid untuk “mengisi” bidang-XY dengan jalinan titik. 3) Hitunglah fungsi 3-dimensi untuk jalinan titik tersebut atau tentukan fungsi z. 4) Buatlah plot dengan perintah mesh atau meshc. Untuk mengetahu fungsi mesh dan mesh c, ketik perintah dibawah ini dalam M-file. % Contoh plot menggunakan mesh x=-2*pi:0.1:2*pi;% mendefinisikan batas nilai x y=x;% mendefinisikan batas-batas nilai y [x,y] = meshgrid(-2*pi:0.1:2*pi); z = sin(x).*cos(y); % mendefinisikan fungsi 3-D mesh(x,y,z) xlabel('x') ylabel('y') zlabel('z') colormap(jet) % memberikan pola warna
24
Gambar 6.16 Contoh plot mesh Colormap digunakan untuk mengatur permukaan dengan warna yang didefinisikan oleh pengguna. Jika perintah colormap tidak ditambahkan maka MATLAB akan menggunakan warna permukaan secara default. Berikut ini daftar colormap yang tersedia dalam MATLAB.
Gambar 6.17 Colormap 25
Meshc digunakan untuk memplot grafik 3-D (mesh surface) bersama plot kontur di bawah permukan plot. % Contoh plot menggunakan meshc x=-2*pi:0.1:2*pi;% mendefinisikan batas-batas nilai x y=x;% mendefinisikan batas-batas nilai y [x,y] = meshgrid(-2*pi:0.1:2*pi); z = sin(x).*cos(y); % mendefinisikan fungsi 3-D meshc(x,y,z) xlabel('x') ylabel('y') zlabel('z') colormap(cool) % memberikan pola warna
Gambar 6.18 Contoh plot meshc 26
6.2.3 surf, surfc, dan surfl Fungsi surf sama dengan mesh digunakan untuk membuat plot grafik 3-D dalam bentuk surface tapi untuk permukaan yang ’gelap’. Sekarang kita coba contoh yang lain untuk memplot fungsi 3-dimensi dengan menggunakan perintah surf.
z
sin(r ) , dimana r x 2 y 2 r
% Contoh plot menggunakan surf x = linspace(-10,10,40);y = x; [X,Y] = meshgrid(x,y); R = sqrt(X.^2+Y.^2); Z = sin(R)./(R+eps); surf(X,Y,Z);
1
0.5
0
-0.5 10 5
10 5
0
0
-5
-5 -10
-10
Gambar 6.19 Contoh plot surf 27
Dalam hal ini digunakan variabel perhitungan 0/0 ketika R = 0.
eps, untuk mencegah
surfc digunakan untuk memplot grafik 3-D (surf surface) bersama plot kontur di bawah permukan plot. Sebagai contoh akan dibuat sebuah persamaan parabola hiperbol.
z y2 x2 dimana -1< x <1 dan, -1< y <1 % Contoh plot menggunakan surfc x=-1:0.1:1; y=x; [xi yi]=meshgrid(x,y); zi=yi.^2-xi.^2; surfc(xi,yi,zi) axis off
Gambar 6.20 Contoh plot surfc 28
Fungsi surf sama dengan surf yang digunakan untuk membuat plot grafik 3-D dalam bentuk surface tapi untuk permukaan yang ber ’shading’.
z ye x
2
% Contoh plot menggunakan surfl x=-3:0.1:3; y=x; [xi yi]=meshgrid(x,y); zi=yi.*exp(-xi.^2); surfl(xi,yi,zi) shading interp colormap(pink)
Gambar 6.21 Contoh plot surfc Pada baris ke tujuh terdapat perintah shading, yang digunakan untuk mengontrol kegelapan warna yang digunakan. 29
6.2.4 Contour Fungsi dua variabel, misalkan z = f(x,y) bisa digambarkan konturnya dalam dua dimensi dengan perintah berikut ini:
Fungsi contour(X,Y,Z)
C = contour(X,Y,Z) contour(X,Y,Z,n) contour( ... , ‘string’) clabel(C)
Table 6.3 Fungsi contour Keterangan Menggambar kontur dari nilai di Z dengan 10 level. Elemen Z diterjemahkan sebagai levellevel di atas bidang (x,y) Menghitung matriks kontur C Menggambar kontur dengan n level menggambar kontur dengan properti yang ditentukan oleh string (lihat tabel 6.2) Menuliskan angka pada garis-garis kontur untuk menunjukkan level
Mari kita gambarkan kontur dari fungsi sin(r)/r pada sub bab 6.2.3, lalu bandingkan dengan plot permukaannya: % Contoh perbandingan plot permukaan dan plot kontur x = linspace(-10,10,40); y = x; [X,Y] = meshgrid(x,y); R = sqrt(X.^2+Y.^2); Z = sin(R)./(R+eps); meshc(X,Y,Z); colormap jet contour(X,Y,Z);
30
Gambar 6.22 Contoh plot contour 6.2.5 Sphere dan cylinder MATLAB mempunyai beberapa fungsi untuk menggambarkan plot permukaan yang khusus yaitu fungsi sphere dan cylinder. The sphere function generates the x-, y-, and z-coordinates of a unit sphere for use with surf and mesh.
31
Table 6.4 Fungsi sphere Fungsi sphere sphere(n) [X,Y,Z] =sphere(n)
Keterangan generates a sphere consisting of 20-by-20 faces. draws a surf plot of an n-by-n sphere in the current figure. returns the coordinates of a sphere in three matrices that are (n+1)-by-(n+1) in size. You draw the sphere with surf(X,Y,Z) or mesh(X,Y,Z)
% Contoh plot sphere sphere axis equal
Gambar 6.23 Contoh plot sphere 32
Cylinder generates x-, y-, and z-coordinates of a unit cylinder. You can draw the cylindrical object using surf or mesh,or draw it immediately by not providing output arguments. Berikutnya akan kita buat sebuah kerucut dengan menggunakan perintah cylinder. % Contoh plot cylinder cylinder([1 0]) h = findobj('Type','surface'); set(h,'CData',rand(size(get(h,'CData')))) title('kerucut')
Gambar6.24 Contoh plot cylinder (kerucut) Contoh yang berikutnya kan dibuat sebuah plot 3-D dengan profil kurva r=3sin(t).
33
% Contoh plot cylinder t = 0:pi/10:2*pi; [X,Y,Z] = cylinder(3+sin(t)); surf(X,Y,Z) axis square
Gambar 6.25 Contoh plot cylinder 6.3
Animasi
34
[x,y] = meshgrid([-10:0.5:10]); for j = 1:15 z = bessel(0, (j-1)*0.2 + sqrt(x.^2 +y.^2)); surf(x,y,z) axis([-10 10 -10 10 -.5 1]) M(j) = getframe; end frame_order = [1:15 14:-1:1]; number_repeats = 7; movie(M, [number_repeats frame_order]);
Gambar 6.26 Contoh plot animasi 1
35
h = uicontrol('style','slider','position',... [10 50 20 300],'Min',1,'Max',16,'Value',1) for k = 1:16 plot(fft(eye(k+16))) axis equal set(h,'Value',k) M(k) = getframe(gcf); end clf axes('Position',[0 0 1 1]) movie(M,30)
Gambar 6.26 Contoh plot animasi 1
36
6.4
Suara
MATLAB juga bisa digunakan untuk mengolah suara yang mempunyai format WAV, menjadi bentuk vektor dan frekuensi sampling. Untuk menyuarakan suatu vektor, ataupun membaca dan menyimpan file audio berformat WAV, digunakan perintah berikut ini: Tabel fungsi suara Fungsi Keterangan [x,Fs] = Membaca file berformat WAV dan menyimpannya dalam vektor x, serta wavread(‘nama_file’) mengembalikan frekuensi sampling Fs dari file tersebut. Command ini juga bisa membaca file berformat WAV multi kanal. wavwrite(x,Fs,’nama_file’) Menuliskan file berformat WAV dari vektor x dengan frekuensi sampling Fs. sound(x,Fs) Menyuarakan vektor x dengan frekuensi sampling Fs. soundsc(x,Fs) Sama seperti sintaks sebelumnya, tetapi vektor x terlebih dahulu diskalakan pada selang –1 ≤ x ≤ +1. File berformat WAV yang akan dibaca harus tersimpan di direktori Matlab\work, atau harus dirinci drive, direktori dan nama file jika file tersimpan di direktori lain atau.
37