matlab2
Post on 30-Oct-2015
27 Views
Preview:
TRANSCRIPT
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 1/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Modul Praktikum Matlab
Versi 6.5
Oleh
Saluky, S.Si
Sekolah Tinggi Manajemen Informatika dan Komputer CIC
S T M I K CIC
Modul Praktikum Matlab STMIK CIC 1
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 2/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Bagian1
Pendahuluan
Matlab adalah singkatan dari Matrix Laboratory, software yang dibuat
dengan menggunakan bahasa ini dibuat oleh The Mathworks.inc dan
telah memasuki versi 6.5 Rilis 13. kekuatan matlab terletak pada :
1. Kemudahan manipulasi struktur matriks.
2. Jumlah routine-routine powerful yang berlimpah yang terus
berkembang.
3. Kekuatan fasilitas grafik tiga dimensi yang sangat memadai.
4. Sistem scripting yang memberikan keleluasaan bagi pengguna
untuk mengembangkan dan memodifikasi software untuk
kebutuhan sendiri.
5. Kemampuan interface( misal dengan bahasa C, word dan
mathematica).
6. Dilengkapi dengan toolbox, simulink, stateflow dan sebagainya,
serta mulai melimpahnya source code di internet yang dibuat
dalam matlab( contoh toolbox misalnya : signal processing,
control system, neural networks dan sebagainya).
Semua itu merupakan perangkat yang powerful untuk menyelesaikan
permasalahan sains dan teknik terutama untuk wilayah dimana
komputasi numerik harus dibuat.
GUI di Matlab
Ketika kita membuka GUI Matlab kita bisa melihat lihat dan mencoba
coba perintah pada GUI tersebut dan untuk lebih jelasnya bisa dilihat
dalam demo tersebut. Kita bisa melihat contoh contoh program dan
bisa disave dengan ektension .m(yang merupakan ektensi dari file
matlab)
Modul Praktikum Matlab STMIK CIC 2
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 3/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Salah satu yang cukup menarik dari matlab ini adalah kemudahan dan
kejelasannya dalam memahami contoh dan demo serta help yang ada
pada matlab. Kita akan berkenalan lebih dekat dengan yang satu ini.
Kita bisa lihat dari demo ini ternyata begitu banyak persoalan yang
dapat dibangun dengan matlab dengan cara lebih mudah dan lebih
singkat, tanpa mengurangi kepahaman kita pada suatu persoalan(bisa
dibandingkan dengan bahasa C, pascal, delphi atau visual lainnya).
Dengan dilengkapinya matlab dengan toolbox, simulink dan
sebagainya maka semakin menambah kekuatan matlab untuk
menyelesaikan permasalahan yang rumit menjadi lebih mudah.
Modul Praktikum Matlab STMIK CIC 3
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 4/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Bagian 2
Kontrol Program
Matlab bisa berlaku seperti bahasa pemrograman C ataupun
pascal yang mempunyai struktur kontrol program, biasanya
pemrograman dengan matlab memerlukan lebih dari satu baris dan
memungkinkan untuk didokumentasikan dalam m-file, kontrol
program ini digunakan untuk memperbaiki tampilan atau membuat
tampilan sesuai yang kita inginkan. Dalam bagian dibahas sebagian
kontrol program yang diperlukan dalam pemrograman menggunakan
matlab :
1. loop for
Loop for meungkinkan sekelompok perintah diulang sebanyak suatu
jumlah yang tetap. Bentuk umum dari loop for adalah :
. for x= array
statement
end
untuk tiap iterasi, x diisi dengan kolom array berikutnya, yaitu dalam
iterasi ke-n dalam loop, x = array(:,n).
contoh 1 :
>>f or n = 1 : 10
x( n) =si n( n*pi / 10) ;
end
>> x
x =
Col umns 1 t hrough 8
Modul Praktikum Matlab STMIK CIC 4
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 5/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
0. 3090 0. 5878 0. 8090 0. 9511 1. 0000
0. 9511 0. 8090 0. 5878
Col umns 9 t hrough 10
0. 3090 0. 0000
contoh 2 :
> for i=1:5
disp('Ini hasil looping 5 kali');
end
Ini hasil looping 5 kali
Ini hasil looping 5 kali
Ini hasil looping 5 kali
Ini hasil looping 5 kali
Ini hasil looping 5 kali
2. loop while
loop for mengerjakan sekelompok perintah yang diulang sebanyak
suatu sejumlah, tetapi loop while mengerjakan sekelompok perintah
yang diulang secara tidak terbatas
Bentuk umum loop while adalah
while ekpresi
statement
end
semua elemen yang dieksekusi diantara while dan end dan harus
bernilai benar
contoh :
>> x=0;
>> whi l e x<5
di sp( ' Di ul ang 5 kal i ' ) ;
Modul Praktikum Matlab STMIK CIC 5
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 6/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
x=x+1;
end
Di ul ang 5 kal i
Di ul ang 5 kal i
Di ul ang 5 kal i
Di ul ang 5 kal i
Di ul ang 5 kal i
3. Kontruksi if-else-end
Seringkali sederetan perintah harus dikerjakan dengan didasarkan
pada hasil tes rasional. Dalam bahasa pemrograman, logika ini
dikerjakan dengan variasi kontruksi if-else-end. Bentuk paling
sederhana kontruksi if-else-end adalah :
If ekpresi
Pertintah
End
Contoh
>> angka=- 4;
>> i f angka > 0
di sp( ' ni l ai nya adal ah posi t i f ' ) ;
el se
di sp( ' ni l ai nya adal ah negat i f ' ) ;
end
ni l ai nya adal ah negat i f
Modul Praktikum Matlab STMIK CIC 6
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 7/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Bagian 3
Fungsi M-File
M-file selain dipakai sebagai penamaan file juga bisa dipakai
untuk menamakan fungsi, sehingga fungsi fungsi yang kita buat di
jendela editor bisa di simpan dengan ektensi .m sama dengan file yang
kita panggi dijendela editor. Saat kita menggunakan fungsi Matlab
seperti inv, abs, cos, sin dan sqrt, matlab menerima variabel
berdasarkan variabel yang kita berikan.
Fungsi M-file mirip dengan script file dimana keduanya
merupakan file teks dengan ektensi .m . sebagaimana script M-file,
fungsi m-file tidak dimasukkan dalam jendela command window tetapi
file tersendiri yang dibuat dengan editor teks.
Aturan dan sifat sifat
Suatu fungsi M-file harus mengikuti beberapa aturan. Fungsi M-file
juga mempunyai sejumlah penting. Aturan aturan tersebut meliputi ;
• Nama fungsi dan nama file harus identik. Contoh : fungsi flipud
disimpan dalam file yang bernama flipud.m
• Pertama kali matlab mengeksekusi suatu fungsi M file matlab
membuka file fungsi tersebut dan mengkompilasi perintah
perintah didalamnya menjadi suatu representasi internal dalam
memori yang mempercepat eksekusi untuk semua pemanggilan
berikutnya.
• Setiap fungsi mempunyai ruang kerjanya sendiri yang berbeda
dengan ruang kerja matlab. Satu satunya hubungan antara
ruang kerja matlab dengan variabel variabel dalam fungsi adalah
variabel variabel input dan output fungsi.
Contoh fungsi: Listing program animasi spiner.m
f unct i on spi nner ( act i on) ;
Modul Praktikum Matlab STMIK CIC 7
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 8/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
%SPI NNER Col or f ul l i nes spi nni ng t hr ough space.
% demonst r at es some MATLAB ani mat i on capabi l i t i es.
% Ned Gul l ey, 6- 21- 93
% Copyr i ght 1984- 2002 The Mat hWorks, I nc.
% $Revi si on: 5. 9 $ $Date: 2002/ 04/ 08 20: 04: 53 $
% Possi bl e acti ons:
% i ni t i al i ze
%star t
% I nf or mat i on r egar di ng t he pl ay st at us wi l l be hel d i n% t he axi s user dat a accor di ng t o the f ol l owi ng t abl e:
pl ay= 1;
st op=- 1;
i f nar gi n<1,
act i on=' i ni t i al i ze' ;
end;
i f s t r cmp(act i on, ' i ni t i al i ze' ) ,
ol dFi gNumber =wat chon;
f i gNumber =f i gur e( . . .
' Name' , ' Col or Spi nner ' , . . .
' NumberTi t l e' , ' of f ' , . . .
' Vi si bl e' , ' of f ' ) ;axes( . . .
' Uni t s ' , ' normal i zed' , . . .
' Posi t i on' , [ 0. 05 0. 05 0. 75 0. 90] , . . .
' Vi si bl e' , ' of f ' ) ;
Modul Praktikum Matlab STMIK CIC 8
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 9/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
t ext ( 0, 0, ' Pr ess t he "Star t " but t on t o see t he Spi nner
demo' , . . .
' Hor i zont al Al i gnment ' , ' cent er ' ) ;
axi s([ - 1 1 - 1 1] ) ;
%===================================
% I nf or mat i on f or al l but t ons
l abel Col or =[ 0. 8 0. 8 0. 8] ;
yI ni t Pos=0. 90;
xPos=0. 85;
bt nLen=0. 10;
bt nWi d=0. 10;% Spaci ng bet ween t he but t on and t he next command' s
l abel
spaci ng=0. 05;
%====================================
% The CONSOLE f r ame
f r mBor der =0. 02;
yPos=0. 05- f r mBorder ;
f r mPos=[ xPos- f r mBor der yPos bt nLen+2*f r mBor der
0. 9+2*f r mBorder] ;
h=ui cont r ol ( . . .
' St yl e' , ' f r ame' , . . .
' Uni t s ' , ' normal i zed' , . . .
' Pos i t i on' , f rmPos, . . .
' Backgr oundCol or ' , [ 0. 50 0. 50 0. 50] ) ;
%====================================
% The START but t on
bt nNumber =1;
yPos=0. 90- ( btnNumber- 1) *( bt nWi d+spaci ng) ;
Modul Praktikum Matlab STMIK CIC 9
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 10/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
l abel St r =' St ar t ' ;
cmdSt r =' st ar t ' ;
cal l backSt r=' spi nner ( ' ' s tar t ' ' ) ; ' ;
% Gener i c popup but t on i nf or mat i on
bt nPos=[ xPos yPos- spaci ng bt nLen bt nWi d] ;
st ar t Hndl =ui cont r ol ( . . .
' St yl e' , ' pushbut t on' , . . .
' Uni t s ' , ' normal i zed' , . . .
' Posi t i on' , btnPos, . . .
' St r i ng' , l abel St r , . . .
' I nt er r upt i bl e' , ' on' , . . .' Cal l back' , cal l backSt r ) ;
%====================================
% The STOP but t on
bt nNumber =2;
yPos=0. 90- ( btnNumber- 1) *( bt nWi d+spaci ng) ;
l abel St r =' St op' ;
% Set t i ng user dat a to - 1 ( =st op) wi l l st op t he demo.
cal l backSt r =' set ( gca, ' ' User dat a' ' , - 1) ' ;
% Gener i c popup but t on i nf or mat i on
bt nPos=[ xPos yPos- spaci ng bt nLen bt nWi d] ;
st opHndl =ui cont r ol ( . . .
' St yl e' , ' pushbut t on' , . . .
' Uni t s ' , ' normal i zed' , . . .' Posi t i on' , btnPos, . . .
' Enabl e' , ' of f ' , . . .
' St r i ng' , l abel St r , . . .
' Cal l back' , cal l backSt r ) ;
Modul Praktikum Matlab STMIK CIC 10
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 11/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
%====================================
% The I NFO but t on
l abel St r=' I nf o' ;
cal l backSt r=' spi nner ( ' ' i nf o' ' ) ' ;
i nf oHndl =ui cont r ol ( . . .
' St yl e' , ' push' , . . .
' Uni t s ' , ' normal i zed' , . . .
' Posi t i on' , [ xPos 0. 20 bt nLen 0. 10] , . . .
' St r i ng' , l abel St r , . . .
' Cal l back' , cal l backSt r ) ;
%====================================% The CLOSE but t on
l abel St r =' Cl ose' ;
cal l backSt r =' cl ose( gcf ) ' ;
cl oseHndl =ui cont r ol ( . . .
' St yl e' , ' push' , . . .
' Uni t s ' , ' normal i zed' , . . .
' Posi t i on' , [ xPos 0. 05 bt nLen 0. 10] , . . .
' St r i ng' , l abel St r , . . .
' Cal l back' , cal l backSt r ) ;
% Uncover t he f i gur e
hndl Li st =[ st ar t Hndl st opHndl i nf oHndl cl oseHndl ] ;
set ( f i gNumber , . . .
' Vi si bl e' , ' on' , . . .
' User Dat a' , hndl Li st ) ;
watchof f ( ol dFi gNumber ) ;
f i gur e( f i gNumber ) ;
el sei f st r cmp( act i on, ' star t ' ) ,
Modul Praktikum Matlab STMIK CIC 11
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 12/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
axHndl =gca;
f i gNumber =gcf ;
hndl Li st =get ( f i gNumber , ' User dat a' ) ;
st ar t Hndl =hndl Li st ( 1) ;
st opHndl =hndl Li st ( 2) ;
i nf oHndl =hndl Li st ( 3) ;
cl oseHndl =hndl Li st ( 4) ;
set ( [ star t Hndl i nf oHndl cl oseHndl ] , ' Enabl e' , ' of f ' ) ;
set ( stopHndl , ' Enabl e' , ' on' ) ;
% ====== St ar t of Demo
cl acol or map( [ ] )
N=50; % number of l i nes
M=50; % number of col or s
map=hsv( M) ;
set ( f i gNumber , ' Backi ngSt or e' , ' of f ' ) ;
set ( axHndl , . . .
' XLi m' , [ - 0. 01 1. 01] , ' YLi m' , [ - 0. 01 1. 01] , . . .
' XTi ck' , [ ] , ' YTi ck' , [ ] , . . .
' Box' , ' on' , . . .
' Dr awmode' , ' f ast ' , . . .
' Col or Or der ' , map, . . .
' Vi si bl e' , ' on' , . . .
' Next Pl ot ' , ' add' , . . .
' User Dat a' , pl ay) ;
h=pl ot ( [ 0 0] , zer os( 2, N) , ' Er aseMode' , ' backgr ound' ) ;
x=r and;
y=r and;
x1=r and;
Modul Praktikum Matlab STMIK CIC 12
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 13/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
y1=r and;
dx=. 01;
dy=. 01;
dx1=. 01;
dy1=. 01;
mi nd=. 001;
maxd=. 05;
i =0;
whi l e get ( axHndl , ' Userdat a' ) ==pl ay,
i =i +1;
x=x+dx;y=y+dy;
x1=x1+dx1;
y1=y1+dy1;
i f ( x>1) ,
x=1;
dx=- ( r and*( maxd- mi nd) +mi nd) ;
end
i f ( x<0) ,
x=0;
dx=( r and*( maxd- mi nd) +mi nd) ;
end
i f ( y>1) ,
y=1;
dy=- ( r and*( maxd- mi nd) +mi nd) ;
endi f ( y<0) ,
y=0;
dy=( r and*( maxd- mi nd) +mi nd) ;
end
Modul Praktikum Matlab STMIK CIC 13
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 14/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
i f ( x1>1) ,
x1=1;
dx1=- ( r and*( maxd- mi nd) +mi nd) ;
end
i f ( x1<0) ,
x1=0;
dx1=( r and*( maxd- mi nd) +mi nd) ;
end
i f ( y1>1) ,
y1=1;
dy1=- ( r and*( maxd- mi nd) +mi nd) ;
endi f ( y1<0) ,
y1=0;
dy1=( r and*( maxd- mi nd) +mi nd) ;
end
set ( h( r em( i , N) +1) , . . .
' Xdat a' , [ x x1] , . . .
' Ydat a' , [ y y1] ) ;
%' Col or ' , map( r em( i , M) +1, : ) ) ;
dr awnow;
end
% ====== End of Demo
set ( [ st ar t Hndl i nf oHndl cl oseHndl ] , ' Enabl e' , ' on' ) ;
set ( stopHndl , ' Enabl e' , ' of f ' ) ;
el sei f st r cmp( act i on, ' i nf o' ) ;
hel pwi n( mf i l ename) ;end; % i f str cmp( act i on, . . .
Modul Praktikum Matlab STMIK CIC 14
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 15/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Output :
Gambar : Animasi Spinner
Modul Praktikum Matlab STMIK CIC 15
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 16/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Bagian 4
Operasi Array
Semua komputasi yang dikerjakan sejauh ini hanya melibatkan
bilangan tunggal yang disebut skalar. Opeasi skalar memang
merupakan dasar matematika. Namun jika dalam sesaat kita ingin
melakuakan operasi yang sama pada beberapa bilangan, perulangan
operasi skalar akan menghabiskan waktu dan tentu saja tidak praktis.
Untuk mengatasi masalah ini matlab menyediakan operasi pada array
data.
Array Sederhana
Perhatikan masalah saat kita diharuskan untuk menggambar grafik
dengan fungsi y = sin(x) ; 0 ≤ x ≤ π , tidak mungkin kita
menghitung semua titik yang kita perlukan secara satu persatu.
Sintaks sederhana untuk menunjukan semua titik tersebut adalah
>> x=0:20:180
x =
0 20 40 60 80 100 120 140 160 180
>> y=sin(x)
y =
Columns 1 through 8
0 0.9129 0.7451 -0.3048 -0.9939 -0.5064 0.5806 0.9802
Modul Praktikum Matlab STMIK CIC 16
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 17/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Columns 9 through 10
0.2194 -0.8012
Pada tulisan x=0:10:180 dimaksudkan dengan :
- x merupakan variabel yang menampung array
- 0 merupakan batas bawah dari array
- 10 merupakan selang atau interval
- 180 merupakan batas atas dari array
Pada tulisan y=sin(x) dimaksudkan dengan :
- y merupakan variabel array yang menampung perhitungan dengan
sin x dimana x dari 0 sampai 180 dengan interval 10
Jika kita hanya membutuhkan nilai dari interval tertentu maka kita
bisa menuliskannya dengan sintaks:
>> x(4) % elemen array ke 4
ans =
60
Maksudnya adalah nilai dari x yang ke empat dari array x adalah 60
>> y(5) % nilai array ke 5
ans =
-0.9939
maksudnya adalah nilai array y yang ke 5 adalah -0.9939
kita juga bisa menuliskan nilai array tertentu dengan menunjukan
indeksnya contoh:
Modul Praktikum Matlab STMIK CIC 17
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 18/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
>> x(2:4)
ans =
20 40 60
maksudnya adalah semua nilai dengan indeks 2 sampai dengan 4 pada
array x , 2:4 berarti menghitung dari 2 sampai 5
Array n dimensi
Array yang kita bahas diatas merupakan array 1 dimensi, gabuangan
dari array merupakan sebuah matriks, sekarang kita akan menuliskan
bagaimana menuliskan array dalam n dimensi.
Contoh:
> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
merupakan matriks dengan 3 kolom dengan 3 baris
dalam array kita juga bisa memanipulasi elemen elemen yang ada
dalam array tersebut contohnya:
>> A(3,3)=0
A =
1 2 3
4 5 6
7 8 0
Modul Praktikum Matlab STMIK CIC 18
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 19/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
maksudnya mengganti elemen 3,3 menjadi 0
untuk mengetahui jumlah array kita gunakan sintaks size:
contoh:
>> size(A)
ans =
3 3
maksudnya matriks A merupakan matriks 3 x 3
Menciptakan matriks B dengan urutan baris A yang dibalik
>> B=A(3:-1:1,:)
B =
7 8 0
4 5 6
1 2 3
mengganti semua elemen baris ke 2 dari matriks B dengan 0 maka
sintaksnya:
>> B(2,:)=0
B =
7 8 0
0 0 01 2 3
Untuk membuat transpose dari matriks B kita gunakan sintaks:
>> E=B'
Modul Praktikum Matlab STMIK CIC 19
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 20/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
E =
7 0 1
8 0 2
0 0 3
sehingga bentuk dari perkalian manual yang ada dimatriks ada yang
langusng digunakan pada sintaks matlab.
Contoh Penggunaan Aplikasi Array
Problem: Elemen radioaktif polonium mempunyai waktu paruh 140
hari, yang berarti bahwa, karena radoaktif meluruh, jumlah polonium
yang tertinggal setelah 140 hari adalah setengah dari jumlah semula.
Jika dimiliki 10 gram polonium hari ini, berapa banyak yang tersisa
pada akhir setiap minggu selama 10 minggu ?
Penyelesaian : Menggunakan persamaan :
Jumlah_tinggal = jumlah_semula*0.5waktu/waktu_paruh
Untuk masalah ini, solusi dari MATLAB adalah :
>> initial_amount=10;
>> half_life=140;
>> time=7:7:70 %akhir dari 10 minggu pertama
time =
7 14 21 28 35 42 49 56 63 70
>> amount_left=initial_amount*0.5.^(time/half_life)
amount_left =
Modul Praktikum Matlab STMIK CIC 20
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 21/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Columns 1 through 8
9.6594 9.3303 9.0125 8.7055 8.4090 8.1225 7.8458
7.5786
Columns 9 through 10
7.3204 7.0711
Dengan matematika array sangat mudah untuk mengevaluasi suatu
ekspresi dengan banyak nilai untuk satu variabel. Perhatikan bahwa
pemangkatan titik .^ digunakan karena kita ingin menghitung 0.5
yang akan dipangkatkan dengan setiap elemen pada array eksponen.
Data ini dengan mudah digambarkan dengan matlab.
>> plot(time/7,amount_left)
>> xlabel('Jumlah Minggu'),ylabel('Jumlah Polonium tersisa')
hasilnya:
Modul Praktikum Matlab STMIK CIC 21
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 22/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Contoh Perhitungan Konsentrasi dengan Matematika Array
Problem : Sebagai bagian dari suatu proses pembuatan suku cadang
di suatu proses pembuatan suku cadang di suatu pabrik otomatis,
suku cadang tersebut dicelupkan ke air untuk pendinginan, kemudian
dicelup dibak air asam untuk membersihkan. Setelah beberapa lama,
konsentrasi larutan asam menurun karena air saat pencelupan
bertambah dan larutan yang terbuang saat suku cadang tadi diambil
dari bak. Untuk memelihara kualitas, keasaman larutan asam tidak
boleh kurang dari suatu batas minimum. Dimulai dengan konsentrasi
asam 90%. Jika konsentrasi minimum adalah 50%, air yang
bertambah ke bak asam adalah 1% dari volume bak, dan 1 % dari
larutan terbuang saat suku cadang dikeluarkan, berapa banyak suku
cadang dapat dicelupkan ke bak air asam sebelum keasaman larutan
dalam bak berada di bawah batas minimum?
Penyelesaian :
%Script M file example.m
initial_con=90;
min_con=50;
lost=1:10 % 1% sampai 10% dengan kenaikan 1%
n=floor(log(initial_con/min_con)./log(1+lost/100))
stem(lost,n)
xlabel('Persentase yang hilang setiap kali pencelupan')
ylabel('Jumlah Pencelupan')
title('Contoh Pencelupan Bak Air-Asam')
hasil :>> example
lost =
Modul Praktikum Matlab STMIK CIC 22
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 23/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
1 2 3 4 5 6 7 8 9 10
n =
59 29 19 14 12 10 8 7 6 6
Modul Praktikum Matlab STMIK CIC 23
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 24/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Bagian 5
Akar akar Persamaan
Permasalahan pemecahan persamaan nonlinear sering muncul
dari ebrbagai macam persoalan praktis. Bentuk umum
permasalahannya secara sederhana adalah menemukan sebuah nilai
variabel x sedemikian sehingga f(x) = 0, dimana f adalah sembarang
fungsi nonlinear x, sedangkan x merupakan solusi atau akar
persamaan ini. Sebelum kita lebih jauh tentang akar akar persamaan,
sebelumnya kita ulas sedikit tentang bagaimana menggambarkan
fungsi
Contoh:
Gambarkan fungsi dibawah ini :
1. y=(x – 1)3(x + 2)2 ( x – 3) ; 0 ≤ x ≤ 4
jawab :
% Gambar1.m
x=0:0.1:4;
y=((x + 1).^3).*((x + 2).^2) .*( x - 3);
plot(x,y)
xlabel('Sumbu x')
ylabel('Sumbu y')
Modul Praktikum Matlab STMIK CIC 24
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 25/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Running :
>>gambar1
Gambar dari fungsi y=(x – 1)3(x + 2)2 ( x – 3) ; 0 ≤ x ≤ 4
2. y=exp )10sin(10
x x
⎟ ⎠
⎞⎜⎝
⎛ −; 0 ≤ x ≤ 20
Jawab:
% Gambar2.m
x=0:0.1:20;
y=exp(-x/10).*sin(10*x);
plot(x,y)
xlabel('Sumbu x')
ylabel('Sumbu y')
Modul Praktikum Matlab STMIK CIC 25
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 26/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Running :
>>gambar2.m
Hasil dari plot fungsi y=exp )10sin(10 x
x
⎟ ⎠
⎞⎜⎝
⎛ −; 0 ≤ x ≤ 20
Untuk persamaan non linear seperti diatas yang melibatkan fungsi
transenden, tugas mencari akar akar merupakan pekerjaan yang
cukup sulit apalagi ketika jumlah akar akarnya tidak diketahui atau
mungkin tak terbatas banyak akarnya. (Lihat contoh no 2) .
Sebetulnya secara sederhana kita bisa mencari titik di x yang
berpotongan dengan sumbu y = 0 secara grafik( solusi grafik
merupakan solusi juga) tapi itu masih terlalu kasar dan tidak terlalu
akurat apalagi untuk fungsi fungsi yang tidak diketahui solusinya
terletak di x berapa.
Modul Praktikum Matlab STMIK CIC 26
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 27/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Metoda Newton
Metoda ini merupakan solusi persamaan f(x) = 0 berdasarkan pada
sifat geometri sederhana tangen. Metode ini membutuhkan beberapa
aprokimasi awal untuk turunan f(x)nya berada pada daerah yang
diinginkan.
)(
)()('
01
00
x x
x f x f
−=
)('
)(
0
001
x f
x f x x −=
dapat ditulis :
)('
)(1
r
r r r
x f
x f x x −=+ dimana r = 0, 1, 2, …
f(x)
x2
x1
0 x0
Modul Praktikum Matlab STMIK CIC 27
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 28/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Coba akar1
Function[res,it]=fnewton(func,dfunc,x,tol)
% x adalah nilai awal, tol adalah akurasi yang diinginkan
it=0;
xo=x;
d=feval(func,xo)/feval(dfunc,xo);
while abs(d)>tol
x1=xo – d;
it=it+1;
xo=x1;
d=feval(func,xo)/feval(dfunc,xo);
end;
res=xo
kita coba mencari sebuah akar persamaan(x – 1)3(x + 2)2 ( x – 3) = 0
untuk menggunkan metoda newton kita harus mendefinisikan fungsi
dan turunannya sehingga :
function F=f302(x);
F=x.^3 – 10.0*x.^2 + 29.0*x-20.0;
Function F=f303(x);
F=2*x.^2-20*x+29;
Maka kita panggil f newton tadi sebagai berikut :
>>[x,it]=fnewton(‘f302’,’f303’,7,.00005)
x=5.0000it=6
Modul Praktikum Matlab STMIK CIC 28
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 29/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Permasalahan yang sering muncul dalam mencari akar adalah :
1. Mencari aprokimasi awal yang baik
2. Fungsi berkondisi ‘sakit’
3. Memutuskan pada kriteria konvergensi yang paling cocok
4. Diskontinuitas pada persamaan yang dipecahkan
Fungsi fZero
Beberapa metoda di pencarian akar ini punya kelebihan dan
kekurangannya. Metode Brent mengkombinasikan interpolasi kuadratik
inversi dengan bisection untuk mendapatkan metode yang powerfull
yang terbukti cukup sukses yang mempunyai jangkauan yang luas
pada permasalahan yang cukup sulit.
Variasi metode ini secara langsung tersedia pada matlab yaitu fzero.
Misalnya untuk dengan toleransi 0.000050)cos( 3 =− xe x
Jawab
function F=f307(x);
F=(exp(x)-cos(x)).^3;
%file utama
x=-4:.0:0.5;
plot(x,f307(x));grid on;
xlabel('Sumbu X');ylabel('Sumbu Y');
root=fzero('f307',1.65, 0.00005);
fprintf('Akar persamaan ini adalah %6.4f \n',root);
Modul Praktikum Matlab STMIK CIC 29
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 30/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Modul Praktikum Matlab STMIK CIC 30
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 31/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Bagian 6
Deferensial dan Pengintegralan
Diferensial dan Integral merupakan operasi fundamental dalam
kalkulus dan hampir setiap bidang matematika, sains dan teknik.
Menentukan turunan fungsi secara analitik mungkin menyulitkan
meskipun relatif langsung.
Pembalikan dari proses ini akan menentukan integral fungsi, tapi
lebih sering sulit jika secara analitik atau bahkan tidak mungkin.
Dalam Matlab, diferensial untuk fungsi polinom adalah relatif mudah. Misalnya f(x) = x5 + 2x4 + 5x2 + 7x + 3 maka ambilah
koefisien koefisiennya.
Contoh:
>> g=[1 2 5 7 3]
g =
1 2 5 7 3
>> h=polyder(g)
h =
4 6 10 7Bentuk-bentuk deferensial lain juga bisa diperoleh apalag jika
menggunakan symbolyc math toolbox . Tapi tidak setiap matlab
dilengkapi dengan toolbox ini. Namun itu tidak masalah, kita akan
Modul Praktikum Matlab STMIK CIC 31
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 32/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
coba membuat sendiri penyelesaiannya dengan memanfaatkan deret
Taylor.
Diferensial Numerik
function q=diffgen(func,n,x,h);
if ((n=1)|(n==2)|(n==3)|(n==4))
c=zeros(4,7);
c(1,:)=[ 0 1 -8 0 8 -1 0];
c(2,:)=[0 -1 16 -30 16 -1 0];
c(3,:)=[1.5 -12 19.5 0 -19.5 12 -1.5];
c(4,:)=[-2 24 -78 112 -78 24 -2];
y=feval(func,x+ [-3:3]*h);
q=c(n,:)*y' ; q = q/(12*h^n);
else
disp('n harus 1, 2, 3 atau 4 ');break
end
Penggunaan fungsi diatas:
Jika kita mempunya y = cos(x) dan kita akan menghitung turunan
kedua dengan x = 1.2 dengan h atau ketelitian 0.01 maka dituliskan:
>> hasil=diffgen('cos',2,1.2,.01)
hasil =
-0.3624
Jika kita ingin menghitung sebuah diferensial disuatu titik maka kitaharus mendefinisikan fungsinya terlebih dahulu.
Modul Praktikum Matlab STMIK CIC 32
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 33/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Integrasi Numerik
Integral biasanya didefinisikan sebagai proses penjumlahan
tetapi juga diinterpretasikan sebagai daerah dibawah kurva y = f(x)
dari a ke b
∫=b
a
dx x f L )(
daerah diatas x dihitung positif sementara dibawah x dihitung negatif.
Banyak metode numerik untuk integrasi didasarkan pada impretasi
untuk mendapatkan aprokimasi integralnya. Misalnya fungsi trapz
berdasarkan impretasi bangunan trapesium.
Kita akan mencoba menghitung integral dengan berbagai metoda
numrik untuk menghitung integral fungsi
604.0)9(
1
01.0)3(
122
−+−
++−
= x x
y
Jawab:
Pertama kita buat dulu fungsi dari persamaan diatas
function y=humps(x)
y=1./(x-3).^2+.01)+1./((x-9).^2+.04)-6;
1. Mengitung menggunakan trapz
>> x=-1:.17:2;
>> y=humps(x);
>> area=trapz(x,y)
area =
-16.6475
2. Menghitung menggunakan quad
>> x=-1:.17:2;
>> y=humps(x);
Modul Praktikum Matlab STMIK CIC 33
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 34/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
>> area=quad('humps',-1,2)
area =
-17.2104
Permasalahan yang mungkin muncul adalah :
1. Fungsi kontinu pada daerah integral tetapi turunannya
diskontinu atau singular
2. Fungsi diskontinue pada daerah integrasi
3. Fungsi mempunyai singularitas pada daerah integrasi
4. Daerah integrasi tak berhingga
Modul Praktikum Matlab STMIK CIC 34
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 35/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Bagian 7
Contoh Program Aplikasi Modelling
dengan Matlab
Traveling Salesman
Permasalahan: Kita ingin mengetahui jalan yang terpendek yang
harus dilalui oleh seorang salesman, teori dasarnya adalah pada teori
graph dalam mata kuliah matematika diskrit.
Jawaban
Listing travel.m
f uncti on t r avel ( acti on) ;
% Demo progr am TRAVEL Tr avel i ng sal esman
% demo i ni mer upakan ani masi yang di sebut
% "Tr avel i ng Sal esman" .
% Masal ahnya adal ah mencar i j al an t erpendek
% yang har us di l al ui .
% Al gor i t ma demo i ni sangat l ah seder hana
% Dan sangat cepat penyel esai annya
% Menggunakan menu pop up kot a unt uk membedakan masi ng
masi ng ani masi
% Kl i ck "St ar t "
% dan "St op" but t ons unt uk menyel esai kan ani masi
% Kot a yang di pi l i h akan di kunj ungi secar a r andom.
pl ay= 1;
st op=- 1;
i f nar gi n<1,
act i on=' i ni t i al i ze' ;
Modul Praktikum Matlab STMIK CIC 35
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 36/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
end;
swi t ch act i on
case ' i ni t i al i ze' ,
ol dFi gNumber=wat chon;
f i gNumber =f i gur e( . . .
' Name' , ' Tr avel : The Tr avel i ng Sal esman Pr obl em' , . . .
' NumberTi t l e' , ' of f ' , . . .
' Vi si bl e' , ' of f ' , . . .
' Doubl eBuf f er ' , ' on' , . . .
' Col or ' , [ 0 0 0] , . . .' Backi ngSt ore' , ' of f ' ) ;
axes( . . .
' Uni t s ' , ' normal i zed' , . . .
' Posi t i on' , [ 0. 05 0. 05 0. 75 0. 90] , . . .
' Vi si bl e' , ' of f ' , . . .
' Next Pl ot ' , ' add' ) ;
t ext ( 0, 0, ' Pr ess t he "St ar t " but t on t o see t he Tr avel i ng
Sal esman demo' , . . .
' Hor i zont al Al i gnment ' , ' cent er ' ) ;
axi s([ - 1 1 - 1 1] ) ;
%===================================
% I nf or mat i on f or al l but t ons
l abel Col or =[ 0. 8 0. 8 0. 8] ;yI ni t Pos=0. 90;
xPos=0. 85;
bt nWi d=0. 10;
bt nHt =0. 10;
Modul Praktikum Matlab STMIK CIC 36
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 37/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
% Spaci ng bet ween t he but t on and t he next command' s
l abel
spaci ng=0. 05;
%====================================
% The CONSOLE f r ame
f r mBor der =0. 02;
yPos=0. 05- f r mBorder ;
f r mPos=[ xPos- f r mBor der yPos bt nWi d+2*f r mBor der
0. 9+2*f r mBorder] ;
h=ui cont r ol ( . . .
' St yl e' , ' f r ame' , . . .' Uni t s ' , ' normal i zed' , . . .
' Pos i t i on' , f rmPos, . . .
' Backgr oundCol or ' , [ 0. 50 0. 50 0. 50] ) ;
%====================================
% The START but t on
bt nNumber =1;
yPos=0. 90- ( bt nNumber- 1) *( bt nHt +spaci ng) ;
l abel St r =' St ar t ' ;
cmdSt r =' st ar t ' ;
cal l backSt r =' t r avel ( ' ' star t ' ' ) ; ' ;
% Gener i c but t on i nf or mat i on
bt nPos=[ xPos yPos- spaci ng bt nWi d bt nHt ] ;
st ar t Hndl =ui cont r ol ( . . .' St yl e' , ' pushbut t on' , . . .
' Uni t s ' , ' normal i zed' , . . .
' Posi t i on' , btnPos, . . .
' St r i ng' , l abel St r , . . .
' I nt er r upt i bl e' , ' on' , . . .
Modul Praktikum Matlab STMIK CIC 37
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 38/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
' Cal l back' , cal l backSt r ) ;
%====================================
% The CI TI ES popup but t on
bt nNumber =2;
yPos=0. 90- ( bt nNumber- 1) *( bt nHt +spaci ng) ;
t ext St r=' Ci t i es ' ;
popupSt r =r eshape( ' 15 20 25 30 35 40 45 50
' , 4, 8) ' ;
% Gener i c but t on i nf or mat i on
bt nPos1=[ xPos yPos- spaci ng+bt nHt / 2 bt nWi d bt nHt / 2] ;bt nPos2=[ xPos yPos- spaci ng bt nWi d bt nHt / 2] ;
popupHndl =ui cont r ol ( . . .
' St yl e' , ' t ext ' , . . .
' Uni t s ' , ' normal i zed' , . . .
' Pos i t i on' , bt nPos1, . . .
' St r i ng' , t extSt r ) ;
bt nPos=[ xPos yPos- spaci ng bt nWi d bt nHt / 2] ;
popupHndl =ui cont r ol ( . . .
' St yl e' , ' popup' , . . .
' Val ue' , 4, . . . t
' Uni t s ' , ' normal i zed' , . . .
' Pos i t i on' , bt nPos2, . . .
' St r i ng' , popupSt r ) ;
%====================================% The STOP but t on
bt nNumber =3;
yPos=0. 90- ( bt nNumber- 1) *( bt nHt +spaci ng) ;
l abel St r =' St op' ;
% Set t i ng user dat a to - 1 ( =st op) wi l l st op t he demo.
Modul Praktikum Matlab STMIK CIC 38
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 39/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
cal l backSt r =' set ( gca, ' ' User dat a' ' , - 1) ' ;
% Gener i c but t on i nf or mat i on
bt nPos=[ xPos yPos- spaci ng bt nWi d bt nHt ] ;
st opHndl =ui cont r ol ( . . .
' St yl e' , ' pushbut t on' , . . .
' Uni t s ' , ' normal i zed' , . . .
' Posi t i on' , btnPos, . . .
' Enabl e' , ' of f ' , . . .
' St r i ng' , l abel St r , . . .
' Cal l back' , cal l backSt r ) ;
%====================================
% The I NFO but t on
l abel St r=' I nf o' ;
cal l backSt r =' t r avel ( ' ' i nf o' ' ) ' ;
i nf oHndl =ui cont r ol ( . . .
' St yl e' , ' push' , . . .
' Uni t s ' , ' normal i zed' , . . .
' Posi t i on' , [ xPos 0. 20 bt nWi d 0. 10] , . . .
' St r i ng' , l abel St r , . . .
' Cal l back' , cal l backSt r ) ;
%====================================
% The CLOSE but t on
l abel St r =' Cl ose' ;
cal l backSt r =' cl ose( gcf ) ' ;cl oseHndl =ui cont r ol ( . . .
' St yl e' , ' push' , . . .
' Uni t s ' , ' normal i zed' , . . .
' Posi t i on' , [ xPos 0. 05 bt nWi d 0. 10] , . . .
' St r i ng' , l abel St r , . . .
Modul Praktikum Matlab STMIK CIC 39
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 40/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
' Cal l back' , cal l backSt r ) ;
% Uncover t he f i gur e
hndl Li st =[ st ar t Hndl popupHndl st opHndl i nf oHndl
cl oseHndl ] ;
set ( f i gNumber , . . .
' Vi si bl e' , ' on' , . . .
' User Dat a' , hndl Li st ) ;
watchof f ( ol dFi gNumber ) ;
f i gur e( f i gNumber ) ;
case ' star t ' ,WNumber =wat chon;
axHndl =gca;
f i gNumber =gcf ;
hndl Li st =get ( f i gNumber , ' User dat a' ) ;
st ar t Hndl =hndl Li st ( 1) ;
popupHndl =hndl Li st ( 2) ;
st opHndl =hndl Li st ( 3) ;
i nf oHndl =hndl Li st ( 4) ;
cl oseHndl =hndl Li st ( 5) ;
set ( [ star t Hndl cl oseHndl i nf oHndl ] , ' Enabl e' , ' of f ' ) ;
set ( stopHndl , ' Enabl e' , ' on' ) ;
set ( axHndl , ' User dat a' , pl ay) ;
set ( popupHndl , ' Enabl e' , ' of f ' ) ;
% ====== St ar t of Demo
% Tr avel pr obl em% Thi s i s t he mai n pr ogr am f or t he Tr avel i ng Sal esman
Pr obl em.
% Thi s f unct i on makes use of t he f ol l owi ng ot her
f unct i ons:
% i nsi de
Modul Praktikum Matlab STMIK CIC 40
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 41/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
% Lay down a pi ct ur e of t he Uni t ed St at es f or gr aphi c
appeal .
l oad( ' usborder . mat ' , ' x' , ' y' , ' xx' , ' yy' ) ;
% The f i l e usbor der . mat cont ai ns a map of t he US i n t he
var i abl es
% x and y, and a geomet r i cal l y si mpl i f i ed ver si on of t he
same map
% i n t he var i abl es xx and yy.
cl a;
pl ot ( x, y, ' Col or ' , ' cyan' ) ;
axi s of f ;axi s([ - 0. 1 1. 5 - 0. 2 1. 2] ) ;
set ( axHndl , ' Dr awmode' , ' Fast ' ) ;
hol d on;
dr awnow;
npt sSt r =get ( popupHndl , ' St r i ng' ) ;
npt sVal =get ( popupHndl , ' Val ue' ) ;
npt s=st r 2doubl e( npt sSt r ( npt sVal , : ) ) ;
set ( popupHndl , ' Enabl e' , ' of f ' ) ;
% . . . el se gener at e t he r andom ci t i es t o vi si t
X=[ ] ;
Y=[ ] ;
% For m t he US bor der i n i magi nar y coor ds f or t he I NSI DE
r out i new=xx+i *yy;
n=0;
whi l e n<npt s,
a=r and*1. 4+i *r and;
i f i ns i de( a, w) ,
Modul Praktikum Matlab STMIK CIC 41
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 42/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
X=[ X; r eal ( a) ] ;
Y=[ Y; i mag( a) ] ;
n=n+1;
end;
end;
xy=[ X Y] ;
% Cal cul at e t he di st ance mat r i x f or al l of t he ci t i es
di st mat r i x = zer os( npt s) ;
f or count 1=1: npt s,
f or count 2=1: count 1,
x1 = xy(count 1, 1) ;y1 = xy(count 1, 2) ;
x2 = xy(count 2, 1) ;
y2 = xy(count 2, 2) ;
di st mat r i x( count 1, count 2) =sqrt ( ( x1- x2) 2̂+( y1-
y2) 2̂) ;
di st mat r i x( count 2, count 1) =di st mat r i x( count 1, count 2) ;
end;
end;
% Gener at e an i ni t i al r andom pat h bet ween t hose ci t i es
p=r andperm( npt s) ;
newxy=xy( p, : ) ;
newxy=[ newxy; newxy( 1, : ) ] ;xdat a=newxy( : , 1) ;
ydat a=newxy( : , 2) ;
wat chof f ( WNumber) ;
pl ot ( xdat a, ydat a, ' r . ' , ' Markers i ze' , 24) ;
pl ot handl e=pl ot ( xdat a, ydat a, ' yel l ow' , ' Li neWi dt h' , 2) ;
Modul Praktikum Matlab STMIK CIC 42
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 43/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
axi s of f ;
dr awnow;
l en=Local Pat hLengt h( p, di st mat r i x) ;
l enhi st =l en;
whi l e get ( axHndl , ' Userdat a' ) ==pl ay,
dr awnow;
dr awFl ag=0;
% Tr y a poi nt f or poi nt swap
% ========================swpt 1=f l oor ( npt s*r and) +1;
swpt 2=f l oor ( npt s*r and) +1;
swpt l o=mi n( swpt1, swpt2) ;
swpt hi =max( swpt 1, swpt 2) ;
order =1: npt s;
or der ( swpt l o: swpt hi ) =or der ( swpt hi : - 1: swpt l o) ;
pnew = p( or der ) ;
l ennew=Local Pat hLengt h( pnew, di st mat r i x) ;
i f l ennew<l en,
p=pnew;
l en=l ennew;
dr awFl ag=1;end;
% ========================
% Tr y a si ngl e poi nt i nser t i on
% ========================
Modul Praktikum Matlab STMIK CIC 43
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 44/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
swpt 1=f l oor ( npt s*r and) +1;
swpt 2=f l oor( ( npt s- 1) *r and) +1;
order =1: npt s;
or der ( swpt 1) =[ ] ;
or der =[ or der ( 1: swpt 2) swpt 1 order ( ( swpt 2+1) : ( npt s-
1 ) ) ] ;
pnew = p( or der ) ;
l ennew=Local Pat hLengt h( pnew, di st mat r i x) ;
i f l ennew<l en,
p=pnew;l en=l ennew;
dr awFl ag=1;
end
i f dr awFl ag,
newxy=xy(p, : ) ;
newxy=[ newxy; newxy( 1, : ) ] ;
xdat a=newxy( : , 1) ;
ydat a=newxy( : , 2) ;
set ( pl ot handl e, ' XDat a' , xdat a, ' YDat a' , ydat a) ;
dr awnow;
end;
% ========================
end;
% ====== End of Demo
set ( [ st ar t Hndl cl oseHndl i nf oHndl ] , ' Enabl e' , ' on' ) ;
set ( stopHndl , ' Enabl e' , ' of f ' ) ;
set ( popupHndl , ' Enabl e' , ' on' ) ;
case ' i nf o' ,
Modul Praktikum Matlab STMIK CIC 44
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 45/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
hel pwi n( mf i l ename)
end; % i f str cmp( act i on, . . .
f unct i on t ot al =Local Pat hLengt h( p, di st mat r i x) ;
npt s = si ze( p, 2) ;
t ot al =sum( di st mat r i x( [ ( p- 1) *npt s + p( [ end 1: ( end- 1) ] ) ] ) ) ;
Contoh OutPut
Trafeling Salesman dengan 25 Kota dihasilkan :
Modul Praktikum Matlab STMIK CIC 45
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 46/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
Trafeling Salesman dengan 50 Kota dihasilkan :
Modul Praktikum Matlab STMIK CIC 46
7/16/2019 matlab2
http://slidepdf.com/reader/full/matlab2-56338478710da 47/47
Modul Praktikum MATLAB Versi 6.5 Create by Luke
top related