Professional Documents
Culture Documents
Apabila telah diinstal MATLAB pada PC anda, maka untuk menjalankan MATLAB,
anda cukup klik double pada icon MATLAB. Beberapa saat kemudian muncul
command window dari MATLAB. Commond Window merupakan jendela utama
dimana penggunaannya untuk berkomunikasi dengan interpreter MATLAB. Tampilan
prompt interpreter MATLAB ( » ) menunjukkan bahwa MATLAB siap untuk
1 2
3 4
5 6
Ruang kerja MATLAB, merupakan kumpulan tool dan fasilitas dimana kita bekerja
dalam pemrograman MATLAB. Termasuk fasilitas untuk mengatur variabel dalam
ruang kerja dan untuk import dan eksport data, termasuk tool untuk
pengembangan. Perintah dan variabel yang telah dibuat, dikatakan tinggal dalam
ruang kerja MATLAB dan dapat dipanggil kapanpun anda menghendakinya.
Jika anda tidak dapat mengingat nama variabel, maka anda tinggal mengetik who:
» who
Your variables are:
4. Variabel
Pada program MATLAB, expresi tanpa nama variabel tetap diproses dan hasilnya
dengan nama variabel ans (singkatan answer). Tetapi untuk pemrograman dimana
beberapa konstanta dioperasikan, maka nama variabel mutlat ada. Variabel adalah
nama atau simbol yang digunakan untuk mewakili suatu nilai.
C=
200
1. Nama variabel dibedakan antara huruf kecil dan huruf kapital, contoh ; Jumlah,
jumlah, juMlah, jumlaH dan JUMLAH.
3. Nama variabel harus diawali dengan huruf, diikuti dengan sembarang bilangan,
huruf, atau garis bawah. Karakter-karakter tanda baca tidak diperbolehkan
karena banyak diantaranya mempunyai arti tersendiri dalam MATLAB, contoh;
biaya_rata_rata, x25065.
Variabel dalam ruang kerja MATLAB dapat dihapus dengan menggunakan perintah
clear.
» clear A
» clear B*
» clear
Syarat pemberian nama variabel numerik dan variabel string dalam MATLAB tidak
dibedakan. Tetapi penulisan konstanta variabel string harus diapit dengan tanda
apostrop tunggal ( ' ).
Contoh 4-2:
» c='Selamat'
c=
Selamat
» cd=[c,' datang']
cd =
Selamat datang
Jika program dibuat cukup panjang dan rumit, akan lebih baik bila di dalam
program diberi penjelasan seperlunya sehingga mereka yang membaca program
akan dapat mengerti maksud dari program dengan lebih jelas. Komentar pada
MATLAB berupa tanda persen (%), sehingga semua teks sesudah tanda persen (%)
dianggap sebagai statemen komentar
Contoh 5-1:
Mat_C =
21 24 7
47 54 21
Beberapa perintah dapat diletakkan pada baris yang sama jika dipisahkan dengan
koma ( , ) atau titik koma ( ; ). Tanda koma memberitahu MATLAB untuk
menampilkan hasil dan titik koma untuk tidak menampilkan hasil.
Contoh 5-2 :
harga =
1000
bayar =
10000
Deretan tiga titik berfungsi sebagai tanda sambung/lanjutan statemen pada baris
berikutnya. Biasanya digunakan apabila sebuah statemen melebihi dari satu baris.
» harga=bayar/...
jml
harga =
1000
» bayar=jml*har...
ga
??? bayar=jml*harga
|
Missing operator, comma, or semi-colon.
Terlihat bahwa perintah yang diinput tidak dapat diproses oleh MATLAB
6. Bilangan Kompleks
Contoh 6-1:
» Zc=200+300j;
» g=0.02+1.5j;
» V=Zc*cosh(g)+sinh(g)/Zc
V=
8.1672 +25.2172i
M < θ ≡ M .e jθ = a + bi
dengan bentuk polar diberikan oleh besarnya M dan sudut θ , sedangkan bentuk
rectanguler diberikan dengan a+bi. Hubungan antara bentuk-bentuk ini adalah:
M= (a 2 + b 2 )
θ = tan −1 (b / a )
a= M cos θ
b=M sin θ
Dalam MATAB, konversi antara bentuk polar dan rectanguler menggunakan fungsi-
fungsi real, imag dan angle.
Contoh 6-2:
» Real_V=abs(V)
Real_V =
26.5068
» Sudut_V=angle(V)*180/pi
Sudut_V =
72.0542
» P_V=Real_V*exp(j*Sudut_V*pi/180)
P_V =
8.1672 +25.2172i
» real_PV=real(P_V)
real_PV =
8.1672
» imaj_PV=imag(P_V)
imaj_PV =
25.2172
Fungsi abs menghitung besarnya bilangan kompleks atau harga mutlak dari
bilangan real, tergantung argumen apa yang diberikan. Fungsi angle menghitung
sudut bilangan kompleks dalam radian.
MATLAB dapat menyimpan dan memanggil data dari file. Pilihan Save Workspace
as... dalam menu File akan membuka kotak dialog untuk menyimpan semua
variabel yang ada. Mirip dengan itu, pilihan Load workspace as.. dari menu File
akan membuka kotak dialog untuk memanggil variabel yang telah disimpan
sebelumnya. Memanggil variabel yang bernama sama dengan variabel yang aktif
akan membuat isi variabel aktif ditimpa oleh isi variabel yang dipanggil dari file.
Jika menu File belum cukup bagi anda, MATLAB menyediakan dua perintah Save
dan load yang jauh lebih fleksibel. Perintah save membuat anda dapat menyimpan
satu atau lebih variabel dalam file format yang sesuai dengan pilihan anda.
» save
8. M- File
Script M-FILE
Jika perintah MATLAB tidak diakhiri dengan titik koma, hasil dari perintah itu serta
nama variabelnya akan ditampilkan kembali dalam jendela command.
Function M-File
File fungsi dari MATLAB, tidak sama dengan file script dalam hal bahwa variabel
yang dioperasikan didalamnya bersifat lokal terhadap fungsi itu saja. File script
akan bersifat global terhadap variabel yang ada di workspace. File fungsi
digunakan untuk suatu keperluan yang berulang satu atau beberapa kali dalam
suatu program. File fungsi pada sama fungsinya dengan functions pada bahasa C,
subroutines pada FORTRAN dan BASIC dan procedures pada PASCAL. M-file berisi
kata function pada awal program adalah file fungsi. File fungsi diawali dengan kata
function dengan perintah
output variabel berada dalam kurung segi empat atau [ ] dan input variabel
dalam kurung parentheses atau ( ). Nama file fungsi harus di save sama dengan
nama fungsi. Misalnya function[S]=tegangan(Z,I), nama file fungsi tersebut harus
tegangan.m.
Contoh 8-1 :
function [S]=tegangan(V,I)
S=V.*conj(I);
» S=tegangan(10+12j,5+10j)
S=
1.7000e+002 -4.0000e+001i
Dari hasil diperoleh terlihat bahwa, input untuk varibel V dan I dapat berupa skalar
maupun matrik.
9. Operator Aritmetik
Urutan operasi ini dikerjakan dalam suatu ekspresi yang mengikuti aturan prioritas
yang biasa. Aturan ini diringkas sebagai berikut : Ekspresi dikerjakan dari kiri ke
kanan, dengan pemangkatan mempunyai prioritas tertinggi, diikuti dengan
perkalian atau pembagian yang mempunyai prioritas yang sama, diikuti dengan
penambahan dan pengurangan yang juga mempunyai prioritas yang sama. Tanda
kurung dapat digunakan untuk mengubah urutan pengerjaan yang biasa, dimana
bagian yang dikerjakan lebih dulu adalah bagian yang ada dibagian kurung paling
dalam kemudian keluar.
I (1 + I ) N
A=P N
, untuk P=1000, I=12% dan N=10
(1 + I ) −1
A=
176.9842
C=
100
» D=N\P
D=
100
Matlab menyediakan operasi relasi dan logika. Kegunaan dari operator dan fungsi
tersebut ialah untuk menyediakan jawaban atas pertanyaan benar salah. Salah satu
kegunaan penting dari kemampuan ini ialah untuk mengontrol urutan eksekusi
sederetan perintah MATLAB berdasarkan pada hasil benar/salah. MATLAB
menganggap semua angka tidak nol sebagai benar, dan nol sebagai salah. Hasil dari
ekspresi relasi dan logika adalah satu untuk Benar dan nol untuk Salah dengan tipe
Operator Relasi
Contoh penggunaan :
» A=1:9,B=9-A
A=
1 2 3 4 5 6 7 8 9
B=
8 7 6 5 4 3 2 1 0
» tf=A>4
tf =
0 0 0 0 1 1 1 1 1
» tf=(A==B)
tf =
0 0 0 0 0 0 0 0 0
Operator Logika
| OR
~ NOT
Contoh penggunaan :
» A=1:9; b=9-A;
» tf=A>4
tf =
0 0 0 0 1 1 1 1 1
» tf=~(A>4)
tf =
1 1 1 1 0 0 0 0 0
» tf=(A>2)&(A<6)
tf =
0 0 1 1 1 0 0 0 0
» x=[1,1,0,0];
» y=[1,1,1,1];
» z1=~y>x
z1 =
0 0 0 0
» z2=x&y
z2 =
1 1 0 0
» z3=x|y
z3 =
1 1 1 1
» z4=xor(x,y)
z4 =
0 0 1 1
» A=[1,1,0,0]';
» B=[0,0,1,1]';
» [A,B,~A,A|B,A&B,xor(A,B)]
ans =
1 0 0 1 0 1
1 0 0 1 0 1
0 1 1 1 0 1
0 1 1 1 0 1
Sebagian dari fungsi-fungsi dasar matematis yang dimiliki MATLAB dapat dilihat
berikut :
Fungsi trigonometri
contoh :
» t=1:1:5;
» A=10;f=100;
» Vt=A*sin(2*pi*f*t+30*180/pi)
Vt =
exp exponensial
log logaritma natural
log10 logaritma biasa (basis 10)
sqrt akar kuadrat
abs harga mutlak
angle sudut fasa
conj kompleks konjugate
imag bagian imajiner bilangan kompleks
real bagian real bilangan kompleks
fix membulatkan ke arah nol
floor membulatkan ke arah minus tak terhingga
ceil membulatkan ke arah plus tak terhingga
round membulatkan ke arah bilangan bulat terdekat
mod modulus (sisa pembagian)
rem pembagian bilangan bulat
sign tanda bilangan
Contoh :
» x=exp(-0.2696*.2)*sin(2*pi*0.2)/(0.01*sqrt(3)*log(18))
x=
18.0001
Pemberian nilai pada variabel dalam MATLAB dapat dilakukan dengan mengetikkan
nama variabel kemudian tanda sama dengan ( = ) dan nilai variabel yang
diinginkan.
Contoh 12-1;
» A=10
A=
10
» B=5;
» C=A*B
C=
50
dari contoh terlihat bahwa saat kita mengetik nilai A = 10 kemudian ditekan enter,
maka MATLAB akan merespon dengan menampilkan hasil, sedangkan pada saat
kita ketik B = 10; lalu dienter, MATLAB tidak menampilkan hasilnya karena kita
menambahkan tanda titik koma ( ; ).
Contoh 12-2:
» A=[1 2 3;4 5 6]
A=
1 2 3
4 5 6
» B=[7,6,5;3,2,1];
» C=A+B
C=
8 8 8
7 7 7
untuk program yang mempunyai data yang banyak, maka pemberian nilai variabel
dapat dilakukan secara terpisah.Data dapat dibuatkan M-file tersendiri,
selanjutnya kapan data tersebut dibutuhkan maka tinggal mengetikkan nama file
M-file yang telah dibuat.
Contoh 12-3:
Untuk mengguanakan data tersebut, kita tinggal menulis nama M-file ( data1) pada
program
Hasil program
Z =
V =
1.0500
1.0400
1.0450
Dalam program contoh di atas, kita membuat dua buah M-file, satu M-file khusus
berisi data sedangkan M-file lainnya berisi program. File yang berisi data yang kita
beri nama data1.m dapat digunakan dengan hanya mengetikkan data1 pada
program, walaupun file tersebut tidak aktif diruang kerja MATLAB.
dimana x adalah nama variabel, komentar akan ditampilkan dilayar saat program
dijalankan.
Contoh 12-4 :
V=
20
dengan demikian nilai variabel R dan I dapat berubah sesuai besar nilai yang
diinput.
string harus berisi hurup 's' atau ' S ',yang menunujukkan string, sedangkan
komentar dapat berisi apa saja yang inginkan
contoh 12-5:
Hasil program
tanya =
Contoh 13-1:
Format %7.3f, menunjukkan format bilangan desimal tujuh angka dengan tiga
angka dibelakang koma. Sedangkan /n untuk baris baru.
Contoh 13-2:
» V=[ 10;20;30;40;50];
» R=[ 5;7;9;11;13];
» y=[V R]
y=
10 5
20 7
30 9
40 11
50 13
» fprintf('%4i \t %8.2f\n',y')
10 5.00
20 7.00
30 9.00
40 11.00
50 13.00
MATLAB juga menyiapkan format output berupa statemen disp, yang berfungsi
untuk menampilkan numerik dan string dari programnya.
Contoh 13-3:
1.0500
1.0400
1.0450
1.0450
Contoh 13-4:
Hasil program
Loop for
Loop for memungkinkan sekelompok perintah diulang sebanyak suatu jumlah yang
tetap. Bentuk umum dari loop for adalah
Ekspresi awal adalah nilai awal, ekspresi step adalah langkah/pertambahan dan
ekspresi akhir adalah batas nilai akhir variabel loop. Contoh for x=2:2:10, perintah
akan diulang dan dimulai untuk x=2, melangkah sebanyak 2 dan berakhir pada nilai
x=10.
Contoh 14-1
for x=2:2:10
v(x)=cos(x*pi/180);
end
Contoh 14-2:
C=
30 24 18
84 69 54
138 114 90
bandingkan dengan perintah asterik ( * ) untuk perkalian matriks , maka hasil yang
diperoleh sama
Loop While
Loop while mengerjakan sekelompok perintah yang diulang sampai syarat yang
diberikan terpenuhi.
while ekspresi
Perintah-perintah
end
perintah-perintah yang terdapat di antara while dan end dieksekusi berulang kali
selama semua elemen dalam ekspresi adalah benar.
Contoh 14-3
1
2
3
4
5
6
7
8
9
» x=9;
» while x~=0
disp(x)
x=x-1;
end
If - else -end
if ekspresi
perintah …
end
if ekspresi
perintah…jika memenuhi eksperesi
else
perintah… jika tidak memenuhi ekspresi (salah)
end
elseif ekspresi1
Perintah.. jika ekspresi1 benar
elseif ekspresi2
Perintah.. jika ekspresi2 benar
elseif ekspresi3
Perintah.. jika ekspresi3 benar
elseif…
else
perintah.. dikerjakan jika tak ada ekspresi benar
end
contoh 14-4
for k = 1:5;
if k<2
a=cos (k*pi/180);
elseif k<3
b=cos((k-1)*pi/180);
elseif k<4
c=cos((k-2)*pi/180);
elseif k<5
d=cos((k-3)*pi/180);
else
e=cos((k-4)*pi/180);
end;
end;
» a,b,c,d,e
a=
0.9998
b=
0.9998
c=
0.9998
d=
0.9998
e=
0.9998
switch ekspresi
case test_ekspresi
deret_perintah1
case {test_ekspresi2, test_ekspresi3, test_ekspresi4}
deret_ekspresi2
otherwise
deret ekspresi3
end
Contoh 14-5:
Buatlah program untuk mengkonversi satuan meter kesatuan inchi, feet,
millimeter dan centimeter, yang mana nilai satuan meter dan konversi satuan yang
diinginkan diinput dari keyboard.
cm =
300
Contoh 14-6:
Mencari nilai x minimum, maksimum dan penjumlahan untuk x= e-t .sin t untuk t =
0 sampai 100.
Statemen plot
Berbagai macam jenis garis, symbol plot dan warna dapat dibuat dengan perintah
plot(x,y,s) dimana s adalah karakter string yang dibuat dari salah satu atau lebih
dari statemen dibawah ini
Kita bisa membuat tiga pilihan kurva pada grafik yang sama. Sebagai contoh,
Plot(x1,y1,’r’,x2,y2.’+b’,x3,y3,’-‘)
Plot (x1, y1) dengan garis merah solid ,(x2,y2) dengan warna biru dan tanda +,
( x3,y3) dengan garis putus-putus. Plot juga dapat ditambahkan dengan keterangan
nama pada grafik, label pada sumbu X dan Y dan grid. Perintah grid membuat
kotak-kotak gairs / kisi-kisi pada grafik. Cara penulisannya hanya tinggal ditulis
sesudah perintah plot. Sedangkan perintah nama/title (‘Graph title’) memberi
nama pada plot dan x label (‘x-axis label’), y label (‘y-axis label’) yang memberi
label pada plot dengan string yang khusus. Perintah text ( x-coordinate, y-
coordinate,’text’) dapat digunakan untuk meletakkan text pada grafik, dimana
nilai koordinat diambil dari plot tertentu. Sebagai contoh, kalimat perintahnya
adalah :
Text(3.5, 1.5,’Voltage’)
Kalimat perintah ini akan menuliskan kata Voltage pada titik grafik (3.5, 1.5).
Selain itu juga dapat digunakan perintah gtext (‘text’), dimana perintah ini
menempatkan teks pada grafik dengan menggunakan mouse. Alternatif perintah
lain adalah legend(string1,sring2,string3,…) yang juga berfungsi untuk
menempatkan teks dalam grafik dengan menggunakan string. MATLAB
menyediakan skala otomatis. Perintah axis ([x min. x max. y min. y max.]).
Sebagai contoh :
Menghasilkan skala sumbu x dari – 10 sampai 40 dan skala sumbu y dari – 60 sampai
60. Mengetik kembali axis (‘auto’) akan menghasilkan skala sendiri.
Contoh :
x 0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0
y 10 10 16 24 30 38 52 68 82 96 123
x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];
y = [10 10 16 24 30 38 52 68 82 96 123];
plot(x, y), grid
xlabel('x'), ylabel('y'), title('Contoh Grafik Sederhana')
1
2
0
1
0
0
8
0
y
6
0
4
0
2
0
0
0 0
.
5 1 1
.
5 2 2
.
5 3 3
.
5 4 4
.
5 5
x
MATLAB juga menyediakan statement fplot untuk membuat grafik dari fungsi
dalam bentuk string. Dengan sintaks sebagai berikut;
fplot ('string',[xmin,xmax])
atau
dimana string merupakan sebuah fungsi, [xmin xmax] adalah nilai minimum dan
maksimum dari variabel bebas fungsi.
Contoh
» f='cos(tan(x))-tan(sin(x))';
» fplot(f,[0 3]), title (' Grfaik cos(tan(x))-tan(sin(x))')
G rfa ik c o s ( t a n (x ))-t a n ( s in (x ))
1
0.5
-0 . 5
-1
-1 . 5
-2
-2 . 5
-3
0 0 .5 1 1.5 2 2.5 3
Statemen polyval
Kata perintah yang lain adalah polyval yaitu digunakan untuk, mengevaluasi
polynimial dari data-data yang diberikan :
Contoh :
x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];
y = [10 10 16 24 30 38 52 68 82 96 123];
p = polyfit(x, y, 2)
yc = polyval(p, x);
plot(x, y,'x', x, yc)
xlabel('x'), ylabel('y'), grid
title('Polynomial curve fitting')
legend('Actual data', 'Fitted polynomial')
Hasil penggunaan perintah polyfit dan polyval dapat dilihat berikut ini :
P=
4.02333 2.01107 9.6783
100
80
60
40
20
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x
Pada program ini akan digunakan,* untuk perkalian elemen dengan elemen dari
dua bentuk persamaan yang telah diberikan, fungsinya y = 1 + e-2t sin (8t-π /2)
dari 0 sampai 3 detik). Program ini juga memakai perintah [cp,k]=max (c ) yang
memperlihatkan nilai maksimum dari grafik.
cp = 1.4702
tp = 0.36
0.5
0
0 0.5 1 1.5 2 2.5 3
t, sec
Cara interaktif untuk mendapatkan data-data titik-titik pada kurva adalah dengan
menuliskan perintah ginput. Perintah ini akan memudah mendapatkan titik-titik
yang diinginkan dengan cara mengklik mouse.
t=0:.005:3;
c = 1+ exp(-2*t).*sin(8*t - pi/2);
[cp, k] = max(c)
tp = t(k)
plot(t, c), xlabel(' t, sec'), ylabel('c'), grid
title('Grafik sinus teredam')
text(0.55,1.35,['cp = ',num2str(cp)])
text(0.55, 1.2,['tp = ',num2str(tp)])
%menggunakan statemen ginput
[tp, cp] = ginput
Statemen Subplot
Contoh :
V o lt a g e & c u rre n t P ow er
200 15000
100 10000
0 5000
-1 0 0 0
-2 0 0 -5 0 0 0
0 5 10 0 5 10
3ω-p h a s e m m f Rω
t , ra d ia n s t , ra d ia n s
o t a t in g m m f
4 5
0 0
-2
-4 -5
0 5 10 -5 0 5
ω t , ra d ia n s
Contoh
» x=0:0.001:3;
» f=cos(tan(x))-tan(sin(x));
» subplot(1,2,1),plot(x,f),xlabel('x'),ylabel('y'),axis([0 1.5 -3 1]);
» subplot(1,2,2),plot(x,f),xlabel('x'),ylabel('y'),axis([1.5 3 -3 1]);
0.5 0.5
0 0
-0 . 5 -0 . 5
-1 -1
y
-1 . 5 -1 . 5
-2 -2
-2 . 5 -2 . 5
-3 -3
0 0.5 1 1.5 1.5 2 2.5 3
x x
Statemen Figure
Statemen figure digunakan apabila dalam suatu program terdapat beberapa grafik,
tetapi ingin ditampilkan pada halaman grafik yang berbeda. Misal program contoh
6-4, dimana keempat grafik ditampilkan dalam satu layar, maka dengan statemen
figure grafik tersebut dapat dibuat pada layar yang berbeda. Statemen figure
adalah
Contoh :
clf
wt = 0: 0.05: 3*pi;
v=120*sin(wt); % tegangan sinusoidal
i=100*sin(wt-pi/4); % Arus sinusoidal
p=v.*i; % daya Instantaneous
figure(2),plot(wt,p); % Grafik 2
title('Power')
xlabel(' \omegat, radians ');
Fm=3.0;
fa = Fm*sin(wt);
fb = Fm*sin(wt-2*pi/3);
fc = Fm*sin(wt-4*pi/3);
figure(3),plot(wt,fa, wt,fb, wt,fc ); % grafik 3
title('3-phase mmf');
xlabel(' \omegat, radians ');
fR = 3/2*Fm;
figure(4),plot(-fR*cos(wt),fR*sin(wt)); % Grafik 4
title('mf')
100
50
-50
-100
-150
0 1 2 3 4 5 6 7 8 9 10
ωt, radians
Power
12000
10000
8000
6000
4000
2000
-2000
0 1 2 3 4 5 6 7 8 9 10
ωt, radians
3 -p h a s e m m f
3
-1
-2
-3
0 1 2 3 4 5 6 7 8 9 10
ωt , ra d ia n s
-1
-2
-3
-4
-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
Grafik 3- Dimensi
Statemen Plot
Statemen plot3(x,y,z), berguna untuk menghasilkan sebuah garis 3 dimensi dari 3
buah vektor x,y,z yang menyatakan besar masing-masing sumbu
Contoh :
» t=0:pi/50:10*pi;
» plot3(sin(t),cos(t),t)
Hasilnya :
40
30
20
10
0
1
0.5 1
0 0.5
0
-0.5
-0.5
-1 -1
atau perintah
plot (x1,y1,z1,s1,x2,y2,z2,s2,….)
mengkombinasikan beberapa plot (x,y,z,s), dimana x,y,z vektor atau matriks dan s
string.
Statemen Meshgrid
Misal z = f(x,y)
sin( x2 + y2 )
z=
x2 + y2
Contoh :
» contour(peaks,50)
45
40
35
30
25
20
15
10
5 10 15 20 25 30 35 40 45
Fungsi mesh dan surf menampilkan permukaan secara 3 dimensi. Jika Z matriks
dengan elemen Z(i,j) mendefinisikan ketinggian pada grid (i,j), maka
mesh(Z)
surf(Z)
colormap(hot)
atau
colormap(pink)
Misal :
» p=peaks;
» p(25:35,2030)=nan*p(25:35,20:30);
» p(25:35,20:30)=nan*p(25:35,20:30);
» mesh(peaks,p)
Dalam MATLAB anda dapat menentukan sudut untuk melihat garafik tiga dimensi.
Statemen view(asimuth,elevation) mengeset sudut pandang dengan menentukan
sudut proyeksi pandang mata dan ketinggian anda. Statemen adalah
view(a,b)
dimana :
a : sudut antara arah pandang terhadap titil (0,0) dengan bidang (x,y)
b : sudut antara proyeksi arah pandang mata ke bidang (x,y) dengan bidang (z,y)
Untuk membuat array dalam MATLAB, yang perlu dilakukan hanyalah mengetikkan
kurung kotak kiri, memasukkan elemen - elemen dengan dipisahkan oleh spasi atau
koma, kemudian menutup array dengan kurung kotak kanan.
Contoh :
» A=[1 2 3 4 5]
A=
1 2 3 4 5
» B=[5,4,3,2,1]
B=
5 4 3 2 1
» C=A+B
C=
6 6 6 6 6
Jadi sangat mudah untuk mengoperasikan array dalam MATLAB, begitu pula
mengoperasikan. seperti menjumlahkan, dan operasi lainnya.
Pembentukan Array
x=
2.0000 6.2832 1.4142 2.0000 - 3.0000i
» x=1:5
x=
1 2 3 4 5
» x=1:2:10
x=
1 3 5 7 9
» x=linspace(1,5,5)
x=
1 2 3 4 5
» x=logspace(1,5,5)
x=
10 100 1000 10000 100000
» a=1:5,b=1:2:9
a=
1 2 3 4 5
b=
1 3 5 7 9
» a=1:5,b=1:2:9
a=
1 2 3 4 5
b=
1 3 5 7 9
» c=[b a]
c=
1 3 5 7 9 1 2 3 4 5
» d=[a(1:2:5) 1 0 1]
d=
1 3 5 1 0 1
Pengalamatan Array
Contoh :
» x(2)
ans =
100
» x(1:3)
ans =
10 100 1000
» x(1:2:5)
ans =
10 1000 100000
» x(4:end)
ans =
10000 100000
» x([5 2 5])
ans =
Contoh :
» A=[1;2;3;4;5]
A=
1
2
3
4
5
» B=[1 2 3 4 5]'
B=
1
2
3
4
5
AA =
1.0000 - 2.0000i
1.0000 - 0.5000i
2.0000 - 1.0000i
BB =
1.0000 + 2.0000i
1.0000 + 0.5000i
2.0000 + 1.0000i
Dari contoh terlihat bahwa bila bilangan kompleks ditranspose dengan statemen
apostrop ( ' ) maka terjadi konjugasi atau dengan kata lain tanda imajiner akan
berubah. Sedangkan bila bilangan kompleks di transpose dengan statemen titik
apostrop ( .' ) maka tidak terjadi konjugasi.
Jika suatu array dapat berupa vektor baris atau vektor kolom, maka array dapat
dibentuk berupa matriks.
Contoh
K=
1 2 3
4 5 6
7 8 9
» K=[1 2 3
456
7 8 9]
K=
1 2 3
4 5 6
7 8 9
selain titik koma, menekan tombol Return atau Enter saat memasukkan nilai
matriks juga dapat membuat baris baru.
Contoh
» A=[1 2 3;4 5 6]
A=
1 2 3
4 5 6
» b=A*4
b=
4 8 12
16 20 24
» c=b/4
c=
1 2 3
4 5 6
» d=A+4
d=
5 6 7
8 9 10
sama maka tentu operasi tersebut tidak dapat dilaksanakan. Operator -operator
dasar dari operasi array adalah sebagai berikut
Contoh :
» a=[ 1 1 1;2 2 2]
a=
1 1 1
2 2 2
» b=[3 3 3;4 4 4]
b=
3 3 3
4 4 4
» c=a+b
c=
4 4 4
6 6 6
» d=a-b
d=
-2 -2 -2
-2 -2 -2
3 3 3
8 8 8
» f=a./b
f=
» g=a.\b
g=
3 3 3
2 2 2
» h=a.^b
h=
1 1 1
16 16 16
Dari contoh terlihat bahwa semua operasi array dilakukan merupakan operasi antar
elemen-elemen array.
memanipulasi Array
Karena array dan matriks merupakan hal mendasar dalam MATLAB, maka terdapat
banyak cara untuk memanipulasinya.
Cntoh :
» A=[1 2 3;4 5 6;7 8 9]
A=
1 2 3
4 5 6
7 8 9
» A(3,3)=0
A=
1 2 3
4 5 6
7 8 0
contoh
» A(2,6)=1
A=
1 2 3 0 0 0
4 5 6 0 0 1
7 8 0 0 0 0
mengubah elemen pada baris 2 kolom 6 menjadi satu, karena A tidak mempunyai
enam kolom, ukuran A diperbesar seperlunya dan diisi dengan nol sehingga matriks
tetap segi empat.
Contoh
» A(:,4)=4
A=
1 2 3 4 0 0
4 5 6 4 0 1
7 8 0 4 0 0
A=
1 2 3
4 5 6
7 8 9
» B=A(3:-1:1,1:3)
B=
7 8 9
4 5 6
1 2 3
membuat matriks C dengan menambhkan semua baris pada kolom pertama dan
ketiga B ke sisi kanan A.
» B=A(1:2,2:3)
B=
2 3
5 6
membuat B dengan mengambil dua baris pertama dan dua kolom terakhir A.
» B=A(:)
B=
1
4
7
2
5
8
3
6
9
mentranspose matriks A
» B=A
B=
1 2 3
4 5 6
7 8 9
» B(:,2)=[]
B=
1 3
4 6
7 9
Contoh:
» ones(4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
» zeros(2,5)
ans =
0 0 0 0 0
0 0 0 0 0
» ones(3,4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
Operasi Matriks
+ Penjumlahan
- Pengurangan
* Perkalian
/ dan \ Pembagian kiri dan kanan
X=A\B adalah solusi untuk A*X=B
X=B/A adalah solusi untuk X*A=B
dimensi harus sesuai dengan aturan perkalian
matriks
det (A) Determinan
d=eig(A) Nilai eigen
[V,D] = eig(A) Nilai eigen dan eigen vektor
expm(A) Pemangkatan matriks
inv(A) Invers matriks
lu(A) Faktor dari eliminasi gaus
orth(A) Ortognalisasi
pinv(A) Pseudoinvers
poly(A) Karakteristik polynomial
polyeig(A1,A2,..) Menyelesaikan masalah nilai eigen polinomial
sqrtm(A) Akar kuadrat matriks
svd(A) Dekomposisi nilai singular
trace(A) Jumlah elemen-elemen diagonal
atau
A.x = B
[x] = [A]-1 B
contoh :
1 2 3 x1 366
4 6
5 .x 2 = 804
7 8 0
x3
351
A=
1 2 3
4 5 6
7 8 0
» b=[366;804;351]
b=
366
804
351
» inv(A)
ans =
Cara I
Penyelesaian menggunakan statemen inv
» x=inv(A)*b
x=
25.0000
22.0000
99.0000
Cara II
Penyelesaian menggunakan statemen / (statemen pembagian kanan matriks).
» x=A\b
x=
25.0000
22.0000
99.0000
Cara III
Penyelesaian dengan menggunakan factorisasi lu (statemen lu) dari hasil dari upper
af lower matrik triangular , A=LU, dimana X diperoleh dari X = U-1 L-1 B.
» A=[1 2 3;4 5 6;7 8 0];
» B=[366;804;351];
» [L,U]=lu(A)
L=
0.1429 1.0000 0
0.5714 0.5000 1.0000
1.0000 0 0
U=
7.0000 8.0000 0
0 0.8571 3.0000
0 0 4.5000
» X=inv(U)*inv(L)*B
X=
25.0000
22.0000
99.0000
» [x,D]=eig(A)
x=
D=
-0.3884 0 0
0 12.1229 0
0 0 -5.7345
atau
» eig(A)
-0.3884
12.1229
-5.7345
Contoh :
6x - 3y + 4z = 41
12x + 5y - 7z = -26
-6x + 2y + 6z = 14
sebelum kita membuat program MATLAB, maka persamaan dapat dibuat dalam
bentuk matrik
6 −3 4 x 41
12 − 7
5 y = − 26
− 6 2 6
z 14
atau
[ABC][xyz]=[K]
sehingga
[xyz]=[ABC]-1 [K]
xyz =
2.0035
-2.6842
5.2316
Contoh
Sebuah rangkaian listrik seperti gambar dibawah, hitunglah V1 dan V2 dan daya
pada setiap sumber arus.
V 1 y12 V 2
y10
y20
i1 i2
[y].[V] = [I]
sehingga
Hasil program
tegangan V1 dan V2
V=
3.5902 +35.0928i
6.0155 +36.2212i
S=
1.0e+003 *
1.5114 + 0.9092i
0.6636 + 0.6342i
Matriks Khusus
ans =
0 0 0
0 0 0
0 0 0
ans =
1 1 1 1
1 1 1 1
» zeros(3)+pi
ans =
Mencari akar suatu polinomial merupakan suatu masalah tersendiri muncul dalam
berbagai bidang ilmu. MATLAB menyediakan fungsi roots untuk mencari akar
polinomial, sedangkan akar-akar polinimial yang diperoleh dapat dikonversi
kedalam persamaan awal dengan fungsi poly. Contoh :
Contoh
p=
» r=roots(p)
r=
-4.0000
-3.0000
-1.0000 + 2.0000i
-1.0000 - 2.0000i
ans =
Contoh
» r=[-1 -2 -3+4i -3-4i]
r=
» poly(r)
ans =
1 9 45 87 50
s 4 + 9s 3 + 45 s 2 + 87 s + 50 = 0
MATLAB juga juga dapat mencari akar karakteristik persamaan polinomial dalam
bentuk matriks :
0 1 −1
6
A= −6 −11
− 6 −11 5
Karakteristik persamaan dari matriks tersebut dapat diperoleh fungsi poly dan
akar-akar persamaan diperoleh dengan fungsi roots.
Contoh
» A=[0 1 -1;-6 -11 6;-6 -11 5];
» p=poly(A)
p=
» r=roots(p)
r=
-3.0000
-2.0000
-1.0000
ans =
-1.0000
-2.0000
-3.0000
Contoh .
Turunan
A = s 4 + 9 s 3 + 37 s 2 + 81s + 52
p ( x) = c1 x d + c 2 x d −1 + .... + c n
Contoh .
X= 0 1 2 4 6 10
Y= 1 7 23 109 307 1231
c=
1.0000 2.0000 3.0000 1.0000
Evaluasi Polinomial
y=
1 7 23 55 109
» plot(x,y),title('x^3+2x^2+3x+1')
1
00
8
0
6
0
4
0
2
0
0
0 0
.5 1 1
.5 2 2
.5 3 3
.5 4
Partial-fraction Expansion
P( s ) bm s m + bm −1 s m −1 + ... + b1 s + b0
=
Q( s ) a n s n + a n −1 s n −1 + ... + a1 s + a0
Contoh
2s 3 + 9s + 1
F (s) =
s 3 + s 2 + 4s + 4
» b=[2 0 9 1];
» a=[1 1 4 4];
» [r,p,K]=residue(b,a)
r=
0.0000 - 0.2500i
0.0000 + 0.2500i
-2.0000
p=
-0.0000 + 2.0000i
-0.0000 - 2.0000i
-1.0000
K=
2
−2 j 0.25 − j 0.25 −2 1
2+ + + =2+ + 2
s +1 s + j2 s − j2 s +1 s + 4
b=
2.0000 0.0000 9.0000 1.0000
a=
1.0000 1.0000 4.0000 4.0000
Cara paling sederhana untuk menentukan luas daerah dibawah sebuah kurva adalah
dengan membagi-bagi luas daerah itu dengan bentuk persegi . Semakin kecil lebar
persegi yang dibentuk semakin mendekati nilai integral. Atau dengan
menggunakan bagian-bagian secara trapesium. MATLAB melaksanakan integrasi
secara trapesium dengan fungsi "trapz". Syntaksnya adalah trapz (x,y), dimana y
merupakan fungsi.
Contoh :
Hitunglah integral
∫sin xdx
0
jawabannya adalah
∫sin xdx
π
= − cos x |0 =cos 0 - cos π =2
0
» x=linspace(0,pi,10);
» y=sin(x);
» trapz(x,y)
ans =
1.9797
jika lebar bagian trapesium diperkecil, misalnya dengan membagi menjadi 100
bagian, maka
» x=linspace(0,pi,100);
» y=sin(x);
» trapz(x,y)
ans =
1.9998
contoh :
Carilah :
Jawab :
10 10
V (10 ) = ∫ a (t ) dt + v (0) = ∫ a (t ) dt
0 0
» t=[0:10];
» a=[0,2,4,7,11,17,24,32,41,48,51];
» vak=trapz(t,a)
vak =
211.5000
dimana k=2,3,4….,11
» t=[0:10];
» a=[0,2,4,7,11,17,24,32,41,48,51];
» v(1)=0;
» for k=2:11;
v(k)=trapz(t(1:k),a(1:k));
end
» disp([t',v'])
0 0
1.0000 1.0000
2.0000 4.0000
3.0000 9.5000
4.0000 18.5000
5.0000 32.5000
6.0000 53.0000
7.0000 81.0000
8.0000 117.5000
9.0000 162.0000
10.0 211.5000
Waktu (t) 0 1 2 3 4 5 6 7 8 9 10
Kecepatan (m/dtk) 0 1 4 9,5 18,5 32,5 53 81 117 162 211,5
Jika integral merupakan fungsi linier, maka integrasi secara trapesium merupakan
solusi yang paling tepat, tetapi jika integral bukan fungsi linier, maka integrasi
fungsi kuadrat akan menghasilkan tingkat akurasi yang lebih tinggi dibandingkan
integrasi trapesium. Cara pendekatan yang digunakan pada fungsi kuadrat
menggunakan persamaan simpson, yang membagi batas integrasi b - a menjadi
bagian-bagian dengan jumlah yang sama dan menggunakan perbedaan kuadrat
pada tiap-tiap bagian yang bersebelahan. MATLAB menyediakan dua fungsi untuk
menyelesaikan integrasi fungsi kuadrat yaitu : quad yang didasarkan pada
penyelesaian integrasi persamaan Simpson dan quadl yang didasarkan penyelesaian
integrasi algoritma Labatto. Syntaksnya adalah
dimana function adalah nama fungsi , a adalah batas bawah dan b adalah batas
atas integrasi
Contoh :
∫sin xdx
0
=2
» A=quad('sin',0,pi)
A=
2.0000
dari hasil yang diperoleh terlihat bahwa hasil yang diperoleh dari fungsi quad dan
quadl lebih akurat dibandingkan dengan fungsi trapz, namun fungsi quad hanya
dapat digunakan untuk perhitungan integral fungsi dan tidak dapat digunakan
untuk perhitungan integral yang ditentukan dengan nilai set point.
Differenial Numerik
Seperti yang telah ketahui bahwa, turunan dari fungsi dapat diartikan secara grafis
sebagai kemiringan dari fungsi. Algoritma sederhana untuk perhitungan turunan
numerik dapat dilihat pada gambar dibawah ini.
Dari gambar tersebut terlihat ada tiga titik data yang mewakili fungsi y(x), maka :
dy ∆y
= lim ∆x →0
dx ∆x
yang benar adalah kemiringan garis lurus yang dilewati melalui titik ( x2 , y2 ) ,
tetapi ada dua titik pada garis itu sehingga tidak dapat dicari kemiringannya. Oleh
karena itu harus diperkirakan kemiringan dengan menggunakan pendekatan pada
titik-titik data. Diperkirakan kemiringannya adalah :
y − y1 y2 − y1
mA = 2 =
x2 − x1 ∆x
y3 − y2 y3 − y2
mB = =
x3 − x2 ∆x
mA + mB 1 y2 − y1 y3 − y2 y3 − y1
mC = = + =
2 2 ∆x ∆x 2∆x
kemiringan garis ini dinamakan C, yang menghubungkan titik pertama dan ketiga.
dy
=t 2
dt
t t t
dy t3 t3
∫0 dt = ∫0 = =
2
dt t dt
3 0
3
hasilnya adalah
t3
y (t ) = y (0) +
3
untuk selanjutnya kita gunakan notasi turunan diberi simbol "dot" /"titik", misalnya
o dy
y (t ) =
dt
oo d2y
y (t ) =
dt 2
ydot adalah nama file fungsi yang memiliki input t dan y dan mempunyai output
yang berupa vektor kolom yang memperesentasikan dy/dt, yaitu f(t,y). baris dari
vektor kolom harus sama dengan orde dari persamaan. Syntax ODE 23 dan ODE 45
adalah solver yang identik. Vektor tspan berisi nilai awal dan akhir dari variabel
bebas t dan dapat dipilih dari nilai t yang diinginkan, misalnya nilai t0<t<tf maka
tspan adalah [t0 tf], dimana t0 adalah nilai awal dan tf adalah nilai akhir dari
t R = 1 .4 o h m L=2 H
V =1 V +
C = 0 .3 2 F
-
V c (t)
Elemen dari rangkaian ini adalah R=1.4 Ω , L= 2 H, dan C =0.32 F. Keadaan awal
dari arus ini adalah 0, dan tegangan awal kapasitor 0.5 Volt. Kemudian tegangan Vs
=1 Volt digunakan pada saat t =0. Carilah niali i(t) dan v(t) untuk waktu 0<t<15
detik dan gambarlah garfik arus dengan tegangan kapasitor.
di
Ri + L + Vc = Vs ====== L di/dt =vs-Vc-Ri
dt
di/dt= (1/L)(Vs-X1-Ri)
0
X 2 =(1/L) (Vs-X1-Ri)
dimana :
dVc
i = C( )
dt
x2 = i
• 1
x1 = ( ) x2
C
•
x 2 = (1 / L)(Vs − x1 − Rx 2)
Xdot=[X(2)/C; 1/L*(Vs-x(1)-RX(2)]
Program Utama
t0= 0; tfinal =15;
x0 = [0.5, 0];
tspan = [t0, tfinal];
[t,x] = ode45('electsys',tspan, x0);
subplot(2,1,1),plot(t,x)
title('Time response of an RLC series circuit')
xlabel('t, sec')
text(8,1.15,'Capacitor voltage')
text(8, 0.1,'Current')
vc= x(:,1); i = x(:,2);
sub program
function xdot = electsys(t,x);
V = 1;
R =1.4; L = 2; C = 0.32;
xdot = [x(2)/C ; 1/L*( V - x(1) - R*x(2) ) ]
0.8
0.6
0.4
0.2
Current
-0.2
0 5 10 15
t, sec
dθ
e(t ) = Kφ
dl
V(t) eb(t)
J
B
T(t)
dengan K adalah konstanta motor, φ adalah fluks medan, dan θ adalah sudut
dθ
poros motor, jadi dl adalah kecepatan sudut poros ( ω ), jika fluks konstant
maka .
dθ
eb (t ) = K m = K mω
dt
di (t )
v (t ) = R.ia (t ) + L + eb (t )
dt
T (t) = K φ i a ( t)
T (t) = KT i a ( t)
Momen inersia J meliputi semua inersia yang dihubungkan ke poros motor dan
konstanta B meliputi gesekan udara dan gesekan bantalan poros, maka persamaan
toki menjadi :
d 2θ dθ
T (t ) = J 2
+B atau
dt dt
dw
T (t ) = J + Bω(t )
dt
di a (t ) I
= [ − Ra i a (t ) − k bω(t ) + v (t )]
dt L
diperoleh
dω I
= [ K m ia (t ) − Bω(t )]
dt J
diperoleh matriks persamaan differensial atau yang biasa disebut model dinamik
motor DC
d(t) R Kbl
d L −− Lt ia(t) 1
= K + La.v(t)
dω − B ω (t) 0
d J Jt
o R Ke x 1
− − 1
xo1 = L L . + L v(t )
x Km B
2 − x2
J J 0
atau
o
X = A.x + B.v
Program MATLAB-nya
t0= 0; tfinal = 7; % time interval
x0 = [0, 0]; % initial conditions
tspan = [t0, tfinal]; % use with MATLAB 5
[t,x] = ode45('adcmotor', tspan, x0); % use with MATLAB 5
i= x(:,1); w = x(:,2);
subplot(2,1,1), plot(t,i),grid on
title('Karakteristik arus jangkar Vs waktu ')
xlabel('Waktu (dtk)'),ylabel('Arus jangkar (Amp.)')
subplot(2,1,2),plot(t,w),grid on
title('Karakteristik kecepatan Vs waktu ')
xlabel('Waktu (dtk)'),ylabel('kecepatan (rad/det)')
subplot(111)
K a ra k t e ris t ik a ru s ja n g k a r V s w a k t u
80
A ru s ja n g k a r (A m p . )
60
40
20
-2 0
0 1 2 3 4 5 6 7
W a k t u (d t k )
K a ra k t e ris t ik k e c e p a t a n V s w a k t u
500
k e c e p a t a n (ra d / d e t )
400
300
200
100
0
0 1 2 3 4 5 6 7
W a k t u (d t k )