Tutorial MATLAB 2
Tutorial MATLAB 2
BAB II
OPERATOR DAN FUNGSI DASAR MATEMATIS
2.1 Operator Aritmetik
Operator aritmetik adalah simbol-simbol yang digunakan untuk maksud operasi numerik. MATLAB
menyediakan operator aritmatik dasar berikut :
Operasi
Penambahan a+b
Pengurangan, a-b
Perkalian, a.b
Pembagian, a: b
Pemangkatan, ab
Simbol
+
*
/ atau \
^
Contoh
15+10
15-10
15*10
15/10=10\15
15^10
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.
Contoh : Carilah nilai
I (1 + I ) N
(1 + I ) N 1
A=P
Ansar Suyuti
Matematis
Deskripsi
Kurang dari
Kurang dari atau sama dengan
Lebih dari
Lebih dari atau sama dengan
Sama dengan
Tidak sama dengan
Operator relasi MATLAB dapat dipergunakan untuk membandingkan dua array berukuran sama atau
untuk membandingkan array dengan skalar. Skalar dibandingkan dengan semua elemen array dan
hasilnya berukuran sama.
Contoh penggunaan :
A=1:9,B=9-A
A=
1 2 3 4
B=
8 7 6 5
tf=A>4
tf =
0 0 0 0
tf=(A==B)
tf =
0 0 0 0
Operator Logika
&
|
~
Ansar Suyuti
Deskripsi
AND
OR
NOT
10
x=[1,1,0,0];
y=[1,1,1,1];
z1=~y>x
z1 =
0 0 0
z2=x&y
z2 =
1 1 0
z3=x|y
z3 =
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
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
Ansar Suyuti
11
Matematis
Fungsi trigonometri
abs (x)
acos(x)
acosh(x)
angle(x)
asin(x)
asinh(x)
atan(x)
atan2(x)
atanh(x)
ceil(x)
conj(x)
cos(x)
cosh(x)
exp(x)
fix(x)
floor(x)
gdc(x,y)
imag(x)
lcm(x)
log(x)
log10(x)
real(x)
rem(x,y)
round(x)
sign(x)
sin(x)
sinh(x)
sqrt(x)
tan(x)
contoh :
carilah nilai V(t)= A sin wt +30o, dimana A=10 dan t=1,2,3,4,5
t=1:1:5;
A=10;f=100;
Vt=A*sin(2*pi*f*t+30*180/pi)
Vt =
-4.0977 -4.0977 -4.0977 -4.0977 -4.0977
Ansar Suyuti
12
exp
log
log10
sqrt
abs
angle
conj
imag
real
fix
floor
ceil
round
mod
rem
sign
Contoh :
x=exp(-0.2696*.2)*sin(2*pi*0.2)/(0.01*sqrt(3)*log(18))
x=
18.0001
Average_Cost
Keterangan
50.833
50.83333333333334
5.0833e+01
5.083333333333334e+01
50.833
Format long g
50.83333333333333
Format hex
Format bank
Format +
Format rat
40496aaaaaaaaaab
50.83
+
305/6
5 digits
16 digits
5 digits plus exponent
16 digits plus exponent
Better of format short or
format short e
Better of format longt or
format long e
Hexadecimal
2 decimal digits
Positive, negative, or zero
Rational approximation
Ansar Suyuti
13
Matematis
Untuk lebih fleksibelnya dalam format output, MATLAB menyediakan fungsi fprintf untuk
menampilkan hasil/output dri program. Beberapa format dari fprintf dapat dilihat pada tabel.
%e
%E
%f
%s
%i
%u
%x
%X
Kode Format
scientific format, lower case e
sientific format, upper case E
format desimal
string
integer
mengikuti tipe
hexadecimal, lower case
hexadecimal, upper case
\n
\r
\b
\t
\g
"
\\
\a
Kontrol Karakter
baris baru
permulaan dari baris
back space
tabulasi
halaman baru
apostrop
back slash
bell
Format %7.3f, menunjukkan format bilangan desimal tujuh angka dengan tiga angka dibelakang
koma. Sedangkan /n untuk baris baru.
Contoh lain untuk membuat format dalam bentuk tabel
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
Pada M-file input nilai vriabel dapat dilakukan dari keyboard dengan menggunakan perintah input
Contoh :
R=input ('Masukkan Harga barang =')
Maka dilayar akan muncul tulisan
Ansar Suyuti
14
Ansar Suyuti
15
Matematis
0
0
.1
.31
.2
.59
.3
.81
.4
.95
.5
1.0
.6
.95
.7
.81
.8
.59
.9
.31
Nilai pertama y berkaitan dengan nilai pertama x, nilai kedua y berkaitan nilai kedua x, dst.
MATLAB menangani array secara intuitif. Pembuatan array dilakukan dengan mudah-cukup dengan
mengikuti struktur tabel di atas.
x=[0.1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]
x=
Columns 1 through 7
0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991
Columns 8 through 10
2.5133 2.8274 3.1416
y=sin(x)
y=
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
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.
Karena spasi memisahkan elemen-elemen array, bilangan kompleks yang dimasukkan sebagai elemen
array tidak dapat memuat spasi kecuali ditutup dengan kurung.
2.2 Pengalamatan Array
array x di atas mempunyai 11 elemen yang dipisahkan dalam kolom-kolom, dengan demikian dapat
dikatakan bahwa array tersebut array satu kali sebelas atau suatu array dengan panjang 11.
Dalam MATLAB, elemen-elemen array diakses menggunakan subscript; misalnya x(1) adalah elemen
pertama x, x(2) adalah elemen kedua x, dst. Contoh :
x(3)
ans =
0.9425
y(3)
ans =
0.8090
Ansar Suyuti
16
Ansar Suyuti
17
Matematis
Dalam kasus pertama, notasi kolom (0:0.1:1) menciptakan array yang dimulai dengan 0, meningkat
setiap 0.1 dan berhenti pada 1. Setiap elemen ini array ini kemudian dikalikan dengan untuk
menciptakan nilai yang diinginkan dalam x. Dalam kasus ke dua, fungsi linespace digunakan untuk
menciptakan x.
Linspace(nilai_awal, nilai_akhir,jumlah_elemen)
Kedua cara pembentukan array di atas membentuk array dengan setiap elemennya berjarak linier
terhadap elemen yang lain. Untuk kasus-kasus khusus dimana jarak logaritma diperlukan, MATLAB
menyediakan fungsi logspace:
logspace(0,2,11)
ans =
Columns 1 through 7
1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489
Columns 8 through 11
25.1189 39.8107 63.0957 100.0000
Di atas kita membuat array dimulai 100, diakhiri dengan 102, memuat sebelas elemen. Argumen fungsi
didefisikan sebagai
Logspace(eksponen_awal, eksponen_akhir, jumlah_elemen)
Kadang-kadang diperlukan suatu array yang elemen-elemennya tidak berjarak linier atau logaritmis
dengan elemen-elemen lain.
a=1:5,b=1:2:9
a=
1 2 3 4
b=
1 3 5 7
a=1:5,b=1:2:9
a=
1 2 3 4
b=
1
5
9
c=[b a]
c=
1 3
d=[a(1:2:5) 1 0 1]
d=
1 3 5 1 0
Ansar Suyuti
18
b=a'
b=
1
2
3
4
5
c=b'
c=
1 2
MATLAB juga menyediakan transpose dengan diawali titik. Operator titik-transfose ini diinterpretasi
sebagai transpose konjugasi non kompleks. Jika suatu array merupakan array kompleks, transpose (')
memberikan transpose konjugasi kompleks, yaitu tanda dari bagian imajiner yang berubah sebagai
akibat operasi transpose. Tetapi titik transpose melakukan transpose pada array namun tidak
melakukan konjugat padanya.
c=a.'
c=
1
2
3
4
5
menunjukkan bahwa .' dan ' identik jika diterapkan pada bilangan real.
d=a+i*a
d=
Columns 1 through 4
1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i
Column 5
5.0000 + 5.0000i
c=d'
c=
1.0000 - 1.0000i
2.0000 - 2.0000i
3.0000 - 3.0000i
4.0000 - 4.0000i
5.0000 - 5.0000i
Ansar Suyuti
19
Matematis
e=d.'
e=
1.0000 + 1.0000i
2.0000 + 2.0000i
3.0000 + 3.0000i
4.0000 + 4.0000i
5.0000 + 5.0000i
pada c=d' menciptakan vektor c yang merupakan transpose konjugate kompleks dari d, sedangkan
e=d.' menciptakan vektor e yang merupakan transpose d.
Jika suatu array dapat berupa vektor baris atau vektor kolom, wajarlah jika array dapat juga
mempunyai banyak baris maupun banyak kolom. Artinya array dapat mengambil bentuk berupa
matriks.
g=[1 2 3;4 5 6]
g=
1 2 3
4 5 6
g=[1 2 3
4 5 6]
g=
1 2 3
4 5 6
selain titik koma, menekan tombol Return atau Enter saat memasukkan nilai matriks juga dapat
membuat baris baru.
Operasi Array-Skalar
Penambahan, pengurangan , perkalian dan pembagian dengan skalar dapat dikenakan pada semua
elemen array.
h=g-2
h=
-1 0
2 3
1
4
i=g*2-1
i=
1 3 5
7 9 11
j=g/2
j=
0.5000 1.0000 1.5000
2.0000 2.5000 3.0000
Operasi Array-Array
Jika dua array mempunyai dimensi yang sama, penambahan, pengurangan, perkalian dan pembagian
berlaku pada elemen ke elemen
Ansar Suyuti
20
1
2
3
1
2
3
1
2
3
5
7
9
5
7
9
k=g-h
k=
-3 -3 -3
-3 -3 -3
-3 -3 -3
-3
-3
-3
l=2*g-h
l=
-2 -2 -2
-1 -1 -1
0 0 0
-2
-1
0
m=g.*h
m=
4 4 4 4
10 10 10 10
18 18 18 18
n=g*h
??? Error using ==> *
Inner matrix dimensions must agree.
Disini kita mengalikan elemen-elemen yang seletak dari g dan h dengan menggunakan simbol
perkalian titik (.*). Titik yang mendahului simbol perkalian memberitahu MATLAB untuk melakukan
perkalian elemen ke elemem. Perkalian tanpa titik berarti perkalian matriks.
o=g./h
o=
0.2500 0.2500 0.2500 0.2500
0.4000 0.4000 0.4000 0.4000
0.5000 0.5000 0.5000 0.5000
Ansar Suyuti
21
Matematis
p=h.\g
p=
0.2500 0.2500 0.2500 0.2500
0.4000 0.4000 0.4000 0.4000
0.5000 0.5000 0.5000 0.5000
Seperti yang berlaku pada skalar, pembagian dapat menggunakan garis miring kiri atau miring kanan.
s=g.^(h-2)
s=
1 1 1 1
8 8 8 8
81 81 81 81
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(size(g))
ans =
1
1
1
1
1
1
1
1
1
1
1
1
Ansar Suyuti
22
A(3,3)=0
A=
1 2 3
4 5 6
7 8 0
mengubah A(3,3) menjadi nol
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.
A(:,4)=4
A=
1 2 3 4 0 0
4 5 6 4 0 1
7 8 0 4 0 0
membuat semua elemen di kolom empat menjadi 4.
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
menciptakan matriks B dengan urutan baris A yang dibalik
B=A(3:-1:1,:)
B=
7 8 9
4 5 6
1 2 3
menciptakan matriks B dengan urutan baris A yang dibalik, disini titik dua berarti semua kolom (titik
dua terakhir dari contoh di atas). Jadi : adalah singkatan 1:end atau 1:3 sebab A memiliki 3 kolom.
C=[A B(:,[1 3])]
C=
1 2 3 7 9
4 5 6 4 6
7 8 9 1 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=
Ansar Suyuti
23
Matematis
2
5
3
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
membuat matriks B dengan mengurutkan kolom-kolom A
B=B.'
B=
1 4
mentranspose matriks A
B=A
B=
1 2
4 5
7 8
3
6
9
B(:,2)=[]
B=
1 3
4 6
7 9
mendefinisikan kembali B dengan membuang semua baris pada kolom kedua matriks B semula. Saat
anda mengeset sesuatu menjadi matriks kosong [ ], sesuatu itu akan terhapus, mengakibatkan matriks
berkurang menjadi apa yang tertinggal.
Ansar Suyuti
24
1 2 3 x1 366
4 5 6. x 2 = 804
7 8 0 x3 351
A. x = b
Dalam MATLAB perkalian matriks dilambangkan asterik (*). Jika terdapat suatu penyelesaian, maka
juga terdapat beberapa metode untuk menyelesaikannya, seperti eliminasi gaus, faktorisasi LU, atau
penggunaan langsung dari A-1. secara analisis, penyelesaian ditulis sebagai x = A-1.b.
Untuk menyelesaikan masalah tersebut di atas diperlukan cara untuk memasukkan A dan b.
A=[1 2 3;4 5 6;7 8 0]
A=
1
4
7
2
5
8
3
6
0
b=[366;804;351]
b=
366
804
351
Jika anda mempunyai dasar aljabar linier maka sangat mudah untuk menentukan bahwa masalah
mempunyai satu jawaban tunggal jika determinan matriks A tidak sama dengan nol.
det(A)
ans =
27
inv(A)
ans =
-1.7778 0.8889 -0.1111
1.5556 -0.7778 0.2222
-0.1111 0.2222 -0.1111
Ansar Suyuti
25
Matematis
Ansar Suyuti
26
determinan
Nilai eigen
nilai eigen dan eigen vektor
pemangkatan matriks
invers matriks
faktor dari eliminasi gaus
ortognalisasi
pseudoinvers
karakteristik polynomial
menyelesaikan masalah nilai eigen polinomial
akar kuadrat matriks
dekomposisi nilai singular
jumlah elemen-elemen diagonal
Ansar Suyuti
27
Matematis
ans =
1 0
0 1
0 0
0
0
1
2
1
2
v1 1
1
1
1
+ j 0.2 +
. v2 = 0
2
j10
j10
1
1
1 v3 0
+
j10
10 j10
1
2
Ansar Suyuti
28
-2
-4
-6
-8
0
Ansar Suyuti
500
1000
1500
2000
2500
3000
3500
4000
29
Matematis
Deskripsi
Kurang dari
Kurang dari atau sama dengan
Lebih dari
Lebih dari atau sama dengan
Sama dengan
Tidak sama dengan
<
<=
>
>=
=
~=
Operator relasi MATLAB dapat dipergunakan untuk membandingkan dua array berukuran sama atau
untuk membandingkan array dengan skalar.Skalar dibandingkan dengan semua elemen array dan
hasilnya berukuran sama . Contoh ;
A=1:9,B=9-A
A=
1 2 3 4
B=
8 7 6 5
tf=A>4
tf =
0 0 0 0
tf=(A==B)
tf =
0 0 0 0
x=(-3:3)/3
x=
-1.0000 -0.6667 -0.3333
sin(x)./x
Warning: Divide by zero.
ans =
0.8415 0.9276 0.9816
kita bandingkan
x=x+(x==0)*eps
x=
Ansar Suyuti
30
Operator Logika
&
|
~
A=1:9; b=9-A;
tf=A>4
tf =
0 0 0 0 1
tf=~(A>4)
tf =
1 1 1 1 0
tf=(A>2)&(A<6)
tf =
0 0 1 1 1
Deskripsi
AND
OR
NOT
contoh;
for n=1:10
x(n)=sin(n*pi/10)
end
x=
Ansar Suyuti
31
Matematis
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
data=[3 9 45 6;7 16 -1 5]
data =
3 9 45 6
7 16 -1 5
for n=data
x=n(1)-n(2)
end
x=
-4
x=
-7
x=
46
x=
1
loop for dapat dibuat didalam loop for yang lain ;
for n=1:5
for m=5:-1:1
A(n,m)=n^2+m^2;
end;
disp(n)
end
1
2
3
4
5
A
A=
2
5
10
17
26
5 10 17 26
8 13 20 29
13 18 25 34
20 25 32 41
29 34 41 50
n=1:10;
x=sin(n*pi/10)
x=
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
Ansar Suyuti
32
if ekspresi
perintah
end
untuk kasus dengan dua pilihan if-else-end adalah
if ekspresi
perintahjika memenuhi eksperesi
else
perintah jika tidak memenuhi ekspresi (salah)
end
Jika terdapat 3 atau lebih pilihan if-else-end :
Ansar Suyuti
33
Matematis
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
for k = 1:10;
if k<3
b=k+1;
elseif k<5
c=k+1;
elseif k<7
d=k+1;
else
e=k+1
end;
end;
b,c,d,e
b=
3
c=
5
d=
7
e=
11
a=0;b=0;c=0;d=0;
for k = 1:10;
if k<3
a=a+1;
elseif k<5
b=b+1;
elseif k<7
c=c+1;
else
d=d+1;
end;
end;
pl3
a,b,c,d
Ansar Suyuti
34
x=2.7;
units='m'
switch units
case {'inchi','in'} %konversi ke inchi
y=x*2.54
case{'feet','ft'} % konversi ke feet
y=x*2.54*12
case{'meter','m'} % konversi ke meter
y=x/100
case{'milimeter','mm'}
y=x*10
case{'centimeter','cm'}
y=x
otherwise
disp(['unit tidak diketahui :' units])
y=nan
end;
pl4
units =
m
y=
0.0270
Ansar Suyuti
35
Matematis
-2.0000
poly(r)
ans =
1
9 45
87 50
Ansar Suyuti
36
s 4 + 9s 3 + 45s 2 + 87 s + 50 = 0
MATLAB juga juga dapat mencari akar karaktristik persamaan polinomial dalam bentuk matriks :
1 1
0
A= 6 11 6
6 11 5
Karakteristik persamaan dari matriks tersebut dapat diperoleh fungsi poly dan akar-akar persamaan
diperoleh dengan fungsi roots:
A=[0 1 -1;-6 -11 6;-6 -11 5];
p=poly(A)
p=
1.0000 6.0000 11.0000 6.0000
r=roots(p)
r=
-3.0000
-2.0000
-1.0000
akar-akar dari karakteristik persamaan tersebut sama dengan eigenvalues dari matriks A atau
r=eig(A)
eig(A)
ans =
-1.0000
-2.0000
-3.0000
5.2 Perkalian, Pembagian dan Penjumlahan Polinomial
Perkalian polinomial dilakukan dengan fungsi conv (melakukan convulotion dari array), pembagian
dilakukan dengan fungsi deconv dan penjumlahan dilakukan dengan seperti penjumlahan array
biasa tetapi derajat polinomial harus sama, jika polinomial mempunyai derajat yang berbeda maka
derajat yang lebih rendah ditambahkan dengan koefisien-koefisien nol atau menggunakan fungsi
yang disediakan oleh MATLAB yaitu polyadd.
Contoh :
Ansar Suyuti
37
Matematis
Z
Y
7 21
63 108
7 21
7
5.3 Turunan
Turunan polinomial dapat dilakukan dengan menggunakan fungsi polyder.
A = s 4 + 9s 3 + 37 s 2 + 81s + 52
turunan dari polinomial A adalah:
A=[1 9 37 81 52];
polyder(A)
ans =
4 27 74 81
5.4 Polynomial Curve Fitting
p ( x) = c1 x d + c 2 x d 1 + .... + c n
Persamaan tersebut mempunyai koefisien n=d+1, dengan derajat d. Maka fungsi pengurangan orde
polynomial adalah polyfit(x,y,d).
Contoh
X= 0 1 2
4
6 10
Y= 1 7 23 109 307 1231
Carilah sebuah polinomial derajat ke 3 dari data tersebut di atas;
x=[0 1 2 4 6 10];
y=[1 7 23 109 307 1231];
Ansar Suyuti
38
plot(t,x)
c=[1 2 3 1];
x=0:1:4;
y=polyval(c,x)
y=
1
7 23
55 109
plot(x,y),title('x^3+2x^2+3x+1')
x 3+ 2x 2+ 3x + 1
120
100
80
60
40
20
0
0
0 .5
1 .5
2 .5
3 .5
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 + a 0
Vector b dan a merupakan koefisien dari polinomial.
Contoh, Hitunglah partial fraction expantion dari :
Ansar Suyuti
39
Matematis
F ( s) =
2s 3 + 9s + 1
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
Berarti partial fraction expantion-nya adalah
2+
2
1
2
j 0.25 j 0.25
+ 2
+
+
= 2+
s + 1 s j2
s j
s +1 s + 4
untuk mengembalikan
[b,a]=residue(r,p,K).
persamaan
polinomial
P(s)/Q(s)
dapat
dilakukan
dengan
fungsi
[b,a]=residue(r,p,K)
b=
2.0000 0.0000 9.0000 1.0000
a=
1.0000 1.0000 4.0000 4.0000
Ansar Suyuti
40