Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
BÖLÜM 1 : <strong>MATLAB</strong> KULLANIMI ve MATRS LEMLER<br />
“Matlab” program ( MATrix LABoratory 'nin ilk üç harfleri alnarak<br />
isimlendirilmitir.) mühendislik uygulamalarnn, hesaplamalarnn ve<br />
simülasyonlarnn çounun gerçekletirildii matris ve matematik tabanl kompleks bir<br />
programdr. Her türlü grafiksel sonuçlar istenilen tarzda alnabildii için kullanm<br />
alan çok genitir. Ayrca <strong>MATLAB</strong> versiyonlarndan en az 6.0 ve üzeri olanlarnn<br />
kullanlmas güncellik açsndan daha yararl olacaktr.<br />
Bu bölümde program kullanmaya balamak için giri komutlar, matematiksel<br />
fonksiyonlar ve matris operatörleri anlatlacaktr. Ayrca klavuzun en son ksmnda da<br />
en çok kullanlan matris komutlar ve fonksiyonlar tablo halinde verilmitir.<br />
help ‘fonksiyon ismi’<br />
komutu yazldnda yardm istenilen fonksiyon hakknda detayl bilgiye<br />
ulalabilmektedir.<br />
help help<br />
yazldnda ise on-line olarak yardm klavuzunun nasl kullanlaca hakknda<br />
bilgilere ulalabilmektedir.<br />
-- Matris Operatörleri :<br />
Aada verilen simgeler matris ilemlerinde kullanlmaktadr:<br />
+ Toplama<br />
- Çkarma<br />
* Çarpma<br />
^ Kuvvet alma<br />
‘ Konjüge transpozunu alma<br />
-- Mantk ve liki Operatörleri :<br />
< Küçük & Ve<br />
Büyük ~ Deil<br />
~= Eit deil<br />
2
-- Balangç olarak komut satrna :<br />
date<br />
yazlrsa program tarafndan geçerli olan tarih alnacaktr.Yani :<br />
ans=<br />
30-Oct-2002<br />
-- <strong>MATLAB</strong> bir ilemin sonucunu ans= .... eklinde gösterir. ( ans = answer = cevap)<br />
-- <strong>MATLAB</strong> programndan çkmak için ise exit veya quit yazmak yeterli olacaktr.<br />
-- En son yazlan komutlarn hepsine üst ve alt yön tularna dokunarak kolay bir<br />
ekilde ulalabilir.<br />
-- En son tanmlanan herhangi bir ‘x’ deeri için yaplan ilemlerden sonra bu ‘x’<br />
deeri komut satrna yazlp enter tuuna baslrsa daha önce neye karlk olarak<br />
tanmland ekrana yazlacaktr.<br />
-- nx1 veya 1xn boyutunda vektör tanmlamak için :<br />
x=[1 2 3 -4 -5] veya<br />
X=[1,2,3,-4,-5] yazlmaldr.<br />
Yukardaki iki yazm biçiminden okuma kolayl olmas için<br />
kullanlacaktr.<br />
ilk yazlan tip<br />
-- Tanmlanan bu satr vektörünü sütun vektörüne dönütürmek için :<br />
y=x’<br />
yazlrsa ekranda görülen deer aadaki gibi olacaktr:<br />
y=<br />
1<br />
2<br />
3<br />
-4<br />
-5<br />
3
-- Matris tanmlamak için aadaki A matrisi verilmi olsun :<br />
1.2 10 15<br />
A = 3 5.5 2<br />
4 6.8 7<br />
Bu matrisi <strong>MATLAB</strong>’e tantmak için u ekilde yazlmaldr :<br />
A = [1.2 10 15 ; 3 5.5 2 ; 4 6.8 7]<br />
Yani her satrn sonunun neresi olduunu konulan noktal virgül iareti temsil<br />
etmektedir.<br />
-- Örnek olarak aadaki B matrisini tantmak için :<br />
B =<br />
1 e -0.02<br />
2 3<br />
B = [1 exp(-0.02); sqrt(2) 3] eklinde yazlmaldr.<br />
Ekranda ise u ekilde gözükecektir:<br />
B = 1.0000 0.9802<br />
1.4142 3.0000<br />
-- Apostrofi iareti (‘) matrisin konjüge transpozesinin alnmasna yarar. Eer matris<br />
reel bir matris ise basit olarak transpoze alm ilemi olarak da tanmlanabilir..<br />
Yeni bir A matrisi tanmlayalm :<br />
A = [1 2 3 ; 4 5 6 ; 7 8 9]<br />
Ekranda görülecek matris u ekilde olacaktr :<br />
A =<br />
1 2 3<br />
4 5 6<br />
7 8 9<br />
4
Bu matrisin transpozesini almak için :<br />
C = A’ yazlrsa ekranda görülecek transpoze deeri :<br />
C =<br />
1 4 7<br />
2 5 8<br />
3 6 9<br />
-- Kompleks saylarn girilmesi için ise i 2 =-1 denkleminin kökü i veya j olarak<br />
tanmlanr.<br />
Örnek olarak 1+j3 deerini tantmak için :<br />
X = 1+sqrt(3)*i<br />
X = 1+sqrt(3)*j<br />
veya<br />
olarak yazlmaldr.<br />
Bu kompleks say üstel formatta da yazlabilmektedir :<br />
1+j3 = 2 exp[(/3)*j]<br />
Bu durumda komut satrna aadaki ifade yazlacaltr :<br />
x = 2 exp[pi/3)*j]<br />
i ve j daha önceden deiken olarak kullanlmsa tanmlama için ii ve jj<br />
kullanlacaktr.Yani :<br />
ii = sqrt(-1)<br />
jj = sqrt(-1)<br />
Dolaysyla aadaki yazm da mümkün olmaktadr :<br />
X = 1+sqrt(3)*ii<br />
X = 1+sqrt(3)*jj<br />
5
-- Kompleks matris tanmlamak için aadaki X matrisi verilmi olsun:<br />
X =<br />
1 j<br />
-j5 2<br />
Komut satrna ise u ekilde girilecektir :<br />
X = [1 j ; -j5 2]<br />
Bu durumda ekranda görülecek deer :<br />
X =<br />
1.0000+0 0+1.0000i<br />
0-5.0000i 2.0000+0<br />
Y = X’ komutu yazlrsa :<br />
Y =<br />
1.0000+0 0+5.0000i<br />
0-1.0000i 2.0000+0<br />
iletisi ekranda okunacaktr.<br />
Daha önce de belirtildii gibi yukardaki ilem konjüge transpoze olarak<br />
alglanmaktadr. Eer sadece transpoze alnacaksa (konjügesiz) komut u ekilde<br />
yazlmaldr :<br />
Y.’ veya conj(Y’)<br />
Bu durumda ekranda gözükecek deerler :<br />
ans =<br />
1.0000+0 0-1.0000i<br />
0+5.0000i 2.0000+0<br />
-- Toplama ve çkarma ilemlerinin yaplmas için aadaki M ve N matrisleri<br />
verilmi olsun :<br />
2 3 1 0<br />
M = 4 5 N = 2 3<br />
6 7 0 4<br />
6
Bu deerleri ekrana girmek için:<br />
M = [2 3 ; 4 5 ; 6 7]<br />
M =<br />
2 3<br />
4 5<br />
6 7<br />
N = [1 0 ; 2 3 ; 0 4]<br />
M =<br />
1 0<br />
2 3<br />
0 4<br />
Toplama ilemi için:<br />
C = M+N<br />
C =<br />
3 3<br />
6 8<br />
6 11<br />
Eer x vektörü u aadaki gibi verilirse :<br />
5<br />
X = 4<br />
6<br />
Bu vektörü u ekilde tantmak gerekir :<br />
X = [5 ; 4 ; 6]<br />
Örnein T = X-1 gibi ilemi gerçekletirmek için :<br />
T = X-1<br />
T =<br />
4<br />
3<br />
5<br />
7
-- Matris çarpm daha önce de belirtildii gibi * çarpma operatörüyle yaplmaktadr.<br />
Aadaki örnek incelenirse çarpmann da tanm gerei çarplan matrislerin<br />
boyutlarnn uyumas gerekmektedir. Aksi takdirde çarpma ilemi yaplmayacak ve<br />
hata mesaj verilecektir.<br />
x = [1 ; 2 ; 3]; y = [4 ; 5 ; 6]; A = [1 1 2 ; 3 4 0 ; 1 2 5]<br />
x’*y<br />
ans =<br />
32<br />
x*y’<br />
ans =<br />
4 5 6<br />
8 10 12<br />
12 15 18<br />
b = A*x<br />
b =<br />
9<br />
11<br />
20<br />
Bunlarn dnda matris bir skaler deerle de çarplabilir :<br />
5*A<br />
ans =<br />
5 5 10<br />
15 20 0<br />
5 10 25<br />
-- Matris üssü ( expm(A) ) nxn matrise uygulanr.Matematiksel tanm ise u<br />
ekildedir:<br />
expm(A) = I + A + A 2 /2! + A 3 /3! + ...<br />
Eer A kompleks bir matris ise abs(A) deeri de kompleks modül deerler üzerinden<br />
hesaplanacaktr.Yine matematiksel ifadesine bakacak olursak :<br />
abs(A) = sqrt(real(A).^2 + imag(A).^2)<br />
8
angle(A) ise faz açlarn radyan cinsinden A kompleks matrisi için<br />
hesaplamaktadr. Burada tanm deerleri – ve + arasnda kabul edilmektedir.<br />
Sonuç olarak verilen bir K matrisi için aadaki uygulama incelenebilir :<br />
A = [2+2*i 1+3*i ; 4+5*i 6-i];<br />
abs(A)<br />
ans =<br />
2.8284 3.1623<br />
6.4031 6.0828<br />
angle(A)<br />
ans =<br />
0.7854 1.2490<br />
0.8961 -0.1651<br />
-- Kompleks bir saynn modülü ve faz açsn bulmak için :<br />
z = x + iy = re i<br />
r = abs(z)<br />
theta = angle(z)<br />
z = r*exp(i*theta)<br />
-- Bir vektörün elemanlarnn teker teker karesinin alnmas ilemi u ekilde<br />
yaplmaktadr :<br />
x = [1 2 3];<br />
x.^2<br />
ans=<br />
1 4 9<br />
Eer kompleks saylar mevcut ise :<br />
y = [2+5*i 3+4*i 1-i]<br />
y.^2<br />
ans =<br />
-21.0000+20.0000i -7.0000+24.0000i 0-2.0000i<br />
9
2x2 bir kare matris olursa yine ayn ekilde :<br />
A = [1 2 ; 3 4];<br />
A.^2<br />
ans =<br />
1 4<br />
9 16<br />
-- Eleman elemana çarpma ilemi için çarpma operatörünün önüne bir nokta iareti (.)<br />
konmaktadr :<br />
Bir örnek daha verilirse :<br />
x = [1 2 3], y = [4 5 6]<br />
z = [x.y]<br />
z = [4 10 18]<br />
1 2 3 4 5 6<br />
A = B =<br />
1 9 8 7 6 5<br />
C = A.*B<br />
C =<br />
4 10 18<br />
7 54 40<br />
-- Bir matrisin tüm elemanlarnn tek tek karesini almak için :<br />
A=[ 1 2 3 4 ]<br />
A.^2<br />
ans =<br />
1 4 9 16<br />
-- Eleman elemana bölme için ise :<br />
u = x./y<br />
10
u =<br />
0.2500 0.4000 0.4000<br />
0.1429 1.5000 1.6000<br />
-- Bir matrisin tersini bulmak için inv(A) komutu kullanlr :<br />
A = [0 1 0;0 0 1;-6 -11 -6];<br />
inv(A)<br />
ans =<br />
-1.8333 -1.0000 -0.1667<br />
1.0000 0 0<br />
0 1.0000 0<br />
-- Çeitli komutlar ve durumlar tek bir srada virgül (,) veya noktal virgül ile (;)<br />
ayrlarak yazlabilir.<br />
-- Çk formatn istediimiz uzunlukta elde edebiliriz. Eer matris elemanlar tamsay<br />
ise bu durum sonuçta bir deiiklik yapmayacaktr. Bunun için aadaki komutlar<br />
kullanmak gerekmektedir :<br />
format short<br />
format long<br />
x = [1/3 0.00002];<br />
x<br />
x =<br />
0.3333 0.0000<br />
format short; x<br />
x =<br />
0.3333 0.0000<br />
format long; x<br />
x =<br />
0.3333333333333333 0.00002000000000000<br />
11
-- 1’den 5’e kadar saylar 0.5’lik aralklarla yazdrmak istersek iki nokta’y (:)<br />
kullanmak yeterli olacaktr :<br />
t =<br />
1 2 3 4 5<br />
t = 1:0.5:3<br />
t =<br />
1.0000 1.50000 2.0000 2.50000 3.0000<br />
Düzgün azalan biçimde yazdrrsak :<br />
t = 5:-1:2<br />
t = 5 4 3 2<br />
-- Bir matrisin i. satrn veya j. sütununu görüntülemek için aada tanmlanan A<br />
matrisini komutlaryla inceleyelim :<br />
Aadaki A matrisinin 2. satr görüntülemek için : A(i , :)<br />
A = [0 1 0;0 0 1;-6 -11 -6]<br />
A(2 , :)<br />
ans =<br />
0 0 1<br />
A matrisinin 3. sütununu görüntülemek için :<br />
A(: , 3)<br />
ans =<br />
0<br />
1<br />
-6<br />
-- Bir matrisin (i,j) ninci elemann bulmak için :<br />
k = A(3,3)<br />
k = -6<br />
12
-- Bir matrisin boyutlarn örenmek için size(A) komutu, rankn bulmak için rank(A)<br />
kullanlr.<br />
A=<br />
2 3 2<br />
5 4 1<br />
2 6 8<br />
size(A)<br />
ans =<br />
3 3<br />
rank(A)<br />
ans =<br />
3<br />
-- Bir matrisin determinantn bulmak için det(A) komutu kullanlr.<br />
A=<br />
2 3 2<br />
5 4 1<br />
2 6 8<br />
det(A)<br />
ans =<br />
-18<br />
-- Bir matrisin normunu bulmak için ise norm(x) yazmak gerekmektedir. Matematiksel<br />
norm ifadesini verecek olursak :<br />
norm(x) = sum(abs(x).^2)^0.5<br />
x = [2 3 6]<br />
norm(x)<br />
ans =<br />
7<br />
13
-- Bir matrisin özdeerlerini bulmak için eig(A) komutu kullanlr :<br />
A = [0 1 ; -1 0]<br />
eig(A)<br />
ans =<br />
0+1.0000i<br />
0 -1.0000i<br />
-- Öz vektörleri bulmak da tek satrlk bir ilem gerektirmektedir. Aslnda özvektörleri<br />
bulmak için verilen [X,D] = eig(A) komutu ayn zamanda öz deerleri de bulduu için<br />
her iki bilgiye ayn anda ulama imkan olmaktadr :<br />
A = [0 1 0 ; 0 0 1 ; -6 -11 -6]<br />
[X,D] = eig(A)<br />
X =<br />
D =<br />
-0.5774 0.2182 -0.1048<br />
0.5774 -0.4364 0.3145<br />
-0.5774 0.8729 -0.9435<br />
-1.0000 0 0<br />
0 -2.0000 0<br />
0 0 -3.0000<br />
Burada X sonuç matrisinin her bir sütunu verilen A matrisinin bir öz deerini<br />
göstermektedir.<br />
D sonuç matrisinin diyagonalindeki (köegenindeki) elemanlarn her biri de verilen A<br />
matrisinin özdeerlerini göstermektedir.<br />
Verilen e boyutlu farkl iki A ve B gibi matrisin genelletirilmi öz deerlerini ve öz<br />
vektörlerini bulmak için ise [X,D] = eig(A,B) komutu yazlmaldr.<br />
-- Karakteristik denklemi bulmak için poly(A) komutu kullanlr.<br />
A = [0 1 0 ; 0 0 1 ; -6 -11 -6]<br />
p = poly(A)<br />
p =<br />
1.0000 6.0000 11.0000 6.0000<br />
14
Burada görülen sonuç katsaylar karakteristik denklemin katsaylardr. Yani :<br />
s 3 + 6s 2 + 11s + 6 = 0<br />
-- Bir polinomun köklerini bulmak için roots(a) komutu yazlmaldr. Yukardaki<br />
karakteristik denklemin köklerini bulmak istersek :<br />
r = roots(p)<br />
r =<br />
-3.0000<br />
-2.0000<br />
-1.0000<br />
-- Polinomlarn çarpm için conv(a,b) komutu kullanlr.<br />
a(s) = s 2 – 20.6<br />
b(s) = s 2 + 19.6s + 151.2<br />
a(s) ve b(s) polinomlarn çarpmak için :<br />
a = [1 0 -0.26]; b = [1 1.96 151.2]<br />
c = conv(a,b)<br />
c =<br />
1.0e+003<br />
0.0010 0.0196 0.1306 -0.4038 -3.1147<br />
Dolaysyla çarpm sonucu u ekilde yazlabilir :<br />
c(s) = s 4 + 19.6s 3 + 130.6s 2 – 403.8s – 3114.7<br />
-- Bir polinomda herhangi bir tamsay deerini hesaplatmak için polyval(c) komutu<br />
kullanlr :<br />
p(s) = 3s 2 + 2s + 1<br />
p = [3 2 1];<br />
polyval(p,5)<br />
ans =<br />
86<br />
-- 1 ve 0 saylarnn istenilen matrisel boyutta çabuk olarak üretilebilmesi için<br />
ones(m,n) ve zeros(m,n) komutlar kullanlabilir :<br />
15
ones(2,2)<br />
ans =<br />
1 1<br />
1 1<br />
zeros(3,3)<br />
ans =<br />
0 0 0<br />
0 0 0<br />
0 0 0<br />
-- Birim matris de eye(n) komutuyla istenilen boyutta oluturulabilir :<br />
eye(5)<br />
ans =<br />
1 0 0 0 0<br />
0 1 0 0 0<br />
0 0 1 0 0<br />
0 0 0 1 0<br />
0 0 0 0 1<br />
-- Bir matrisin köegenindeki elemanlar listelemek için diag(A) komutu kullanlr :<br />
A = [1 2 3 ; 4 5 6 ; 7 8 9] ;<br />
diag(A)<br />
ans =<br />
1<br />
5<br />
9<br />
Köegenin elemanlar haricindeki matris bileenleri 0 olarak göstermek istersek :<br />
diag(diag(A))<br />
ans =<br />
1 0 0<br />
0 5 0<br />
0 0 9<br />
16
Köegen matrisi oluturmayla alakal aadaki dier örnekler de incelenebilir :<br />
diag(1:5)<br />
ans =<br />
1 0 0 0 0<br />
0 2 0 0 0<br />
0 0 3 0 0<br />
0 0 0 4 0<br />
0 0 0 0 5<br />
diag(0:4)<br />
ans =<br />
0 0 0 0 0<br />
0 1 0 0 0<br />
0 0 2 0 0<br />
0 0 0 3 0<br />
0 0 0 0 4<br />
[diag(1:5) – diag(0:4)]<br />
ans =<br />
1 0 0 0 0<br />
0 1 0 0 0<br />
0 0 1 0 0<br />
0 0 0 1 0<br />
0 0 0 0 1<br />
-- Bir matrisi rastgele olarak oluturmak için rand(n) komutu kullanlr.0 ile 1<br />
arasndaki saylar alr.<br />
rand(4)<br />
ans =<br />
0.3654 0.6739 0.3603 0.0493<br />
0.1400 0.9994 0.5485 0.5711<br />
0.5668 0.9616 0.2618 0.7009<br />
0.8230 0.0589 0.5973 0.9623<br />
17
ALITIRMALAR<br />
1- Sin(x) ’i ilk 10 terim kullanarak bulan bir Matlab program yaznz. X aç deerinin<br />
derece olarak kullancdan alp sin(x)’i bulunuz ?<br />
Sin(x) = x – x 3 /3! + x 5 /5! – x 7 /7! + x 9 /9! – ...<br />
2- Yerden V 0 hzyla ve açsyla frlatlan bir bir topun t = 0,1,2,...10 saniye boyunca<br />
hareket bilgilerini veren.ema T, Vx, Vy bilgilerini her saniyede<br />
görüntüleyebilmelidir.<br />
Not1: Gerekli formüller aada sralanmtr.(g =10 m/s 2 , Yer çekimi ivmesi)<br />
V x = V 0 cos() ; V y = V 0 sin() – gt ; V = (V x 2 + V y 2 ) 1/2<br />
Not2: Topun tüm harketi boyunca yerden yeterince yüksekte olduunu varsaynz.<br />
18
BÖLÜM 2 : GRAFK ve ER ÇZMLER<br />
-- x ve y vektörleri ayn boyutta ise bu vektörleri ekrana çizdirmek için plot(x,y)<br />
komutu kullanlr.<br />
A =[ 7 2 5];<br />
B =[ 5 4 8 ];<br />
plot(A,B);<br />
grid<br />
Bu durumda grafik ekrana aada gösterildii gibi otomatik olarak çizilecektir :<br />
Ayrca plot(X,Y,‘x’) komutu çizilen eriyi ‘x’ karakterini kullanarak çizmektedir.<br />
-- Aada grafik çizimiyle ilgili baz özellikler sralanmtr :<br />
x=3:0.5:10<br />
Seçilen bir parametreye göre (burada x parametresi seçilmi) çizdirilmesi<br />
planlanan erinin snrlar yukardaki gibi yazlr. 3 ve 10 deerleri çizdirilmek istenen<br />
aral, ortadaki 0.5 deeri art miktarn göstermektedir.<br />
grid<br />
Grafik arka yüzünün ölçekli olarak gösterilmesini salar.<br />
title(‘...’)<br />
Çizilen grafie balk yazmak için kullanlr.<br />
xlabel(‘...’)<br />
Çizilen grafiin x-eksenine istenilen açklamay yazmak için kullanlr.<br />
19
ylabel(‘...’)<br />
Çizilen grafiin y-eksenine istenilen açklamay yazmak için kullanlr.<br />
text(‘X,Y,‘text’)<br />
Grafik ekran üzerine istenilen koordinatlar dahilinde herhangi<br />
açklama yazmak için kullanlr.<br />
. + * o x<br />
r g b w i<br />
stenildii takdirde çizilen erinin düz çizgi olarak deil de farkl<br />
karakterlerle çizdirilebilir. Bunlar için ise yukarda gösterilen nokta, art,<br />
yldz, yuvarlak ve x karakterleri kullanlr. Bu karakterleri plot() komutu<br />
içerisinde ‘+’ eklinde yazmak yeterli olacaktr.<br />
Çizilen erinin rengi de yukarda gösterilen ksaltmalarla deitirilebilir.<br />
Burada ‘r’ krmz renk (red), ‘g’ yeil renk (green), ‘b’ mavi renk (blue),<br />
‘w’ beyaz renk (white) ve ‘i’ ise (invisible) olarak ksaltmtr.<br />
Not : Bu özellikler ve daha farkl görüntü özellikleri grafik ekran üzerindeki “Insert”<br />
ve “Tools” menüleri araclyla komut satrn kullanmadan da yaplabilmektedir.<br />
-- Aadaki örnekte ise y = x 2 erisini 0 ve 3 aralnda çizdirelim :<br />
x = 0:0.1:3;<br />
y = x.^2;<br />
plot(x,y,‘r’);<br />
title(‘y=x 2 egrisi’);<br />
xlabel(‘x’);<br />
grid;<br />
ylabel(‘y’)<br />
bir<br />
20
-- Birden fazla eriyi tek bir grafik ekran üzerinde görmek için çizdirilmesi istenen<br />
eriler ayn plot(...) komutu içinde yazlmaldr.<br />
-- Birden fazla eriyi üst üste çizme uygulamas olarak aadaki örnekte sin(x) ve<br />
cos(x) erileri tek bir grafik ekran üzerinde çizdirilmitir :<br />
t = 0:0.05:10;<br />
x = sin(t);<br />
y = cos(t);<br />
plot(t,x,’x’,t,y,’o’);<br />
grid;<br />
title(‘Sin ve Cos Erileri’);<br />
xlabel(‘Saniye’);<br />
ylabel(‘x=sint ; y=cost’);<br />
text(3,0.45,’sint’);<br />
text(0.8,-0.3,‘cost’)<br />
21
-- Aadaki örnekte ise 3 farkl eri çizdirilmitir :<br />
t=0:0.5:10;<br />
x=t^2+5*t-3;<br />
y=t.^2+3;<br />
z=t;<br />
plot(x,t,'r',y,t,'g',z,t,'b');<br />
grid;<br />
title(‘3 Farkl Grafigin Cizimi’);<br />
xlabel(‘Giris Degerleri’);<br />
ylabel(‘Cikis Degerleri’);<br />
text(x,t,’x’);<br />
text(y,t,'y');<br />
text(z,t,'z')<br />
22
-- Kompleks vektörlerin çiziminde plot(z) ifadesi kullanlr. Çizim ileminde ise reel<br />
ve imajiner ksmlar ayr ayr ikili noktalar olarak kabul edilir :<br />
C=[2+6i 5-3i 4i 6-i ]<br />
plot(C)<br />
grid<br />
Not : loglog(X) komutu hem x eksenini hem de y eksenini logaritmik ölçeklendirmeyi<br />
kullanarak X’in grafiini çizdirir<br />
23
-- Bir A vektörünü “ bar grafiklerini ” kullanarak çizdirmek için bar(A) komutu<br />
kullanlr. “ Basamak ” fonksiyonu eklinde çizilecek ise stairs(A) komutu kullanlr.<br />
Her iki çizime ait örnek grafikler aada ayr ayr verilmitir :<br />
A = [ 2 5 -5 6 1 ]<br />
bar(A);<br />
grid;<br />
xlabel(‘bar’);<br />
stairs(A);<br />
xlabel(‘stairs’)<br />
24
-- Ayrca grafik ekranndaki menülerden yararlanarak çeitli görüntü deiiklikleri<br />
yaplabilir. Örnek olarak “ Tools ” menüsünde “ Rotate-3D ” seçenei kullanlarak<br />
mouse yardmyla iki üstteki “ bar ” grafiinin görüntüsü aadaki gibi elde edilebilir.<br />
-- Grafik çiziminde grafik çizgi tipleri, iaretler ve renkler aadaki tabloda<br />
sralanmtr :<br />
Sembol Renk(RGB) Çizgi stili Sembol Nokta stili<br />
Y sar(110) . nokta - Çizgi<br />
M magenta(101) O yuvarlak : Noktal<br />
C cyan(011) X çarp iareti -. çizgili ve noktal<br />
R krmz(100) + art iareti - - kesik çizgili<br />
G yeil(010) * yldz<br />
B mavi(001) S karekök<br />
W beyaz(111) D baklava<br />
25
-- ‘3-D Line’ (3 Boyutlu düz çizgi) çizimi için plot3(...) komutu kullanlr .Aada<br />
heliks çizimi program verilmitir :<br />
t=0.01:0.01:20*pi;<br />
x=cos(t);<br />
y=sin(t);<br />
z=t.^3;<br />
plot3(x,y,z);<br />
xlabel('Helix');<br />
grid<br />
26
-- 3 boyutlu a ve yüzey çizimlerinde kullanlan komutlardan biri mesh(...)<br />
komutudur. Bu komut verilen girii z bileeni olarak alglar ve dikdörtgen x-y düzlemi<br />
üzerinde z ekseni boyunca çizim yapar. surf(...) komutu ise ayn ii yüzey olarak<br />
yapar.Aadaki komut satrlarnn çizim görüntüleri yine alt tarafnda verilmitir.<br />
mesh(eye(10));<br />
grid<br />
surf(eye(10));<br />
grid<br />
27
-- z=exp(-x2-y2) fonksiyon yüzeyini [-2,2]x[-2,2] tanm aralnda 3 boyutlu olarak<br />
çizdirelim :<br />
x=-2:0.2:2;<br />
y=x;<br />
[x,y]=meshgrid(x,y);<br />
z=exp(-x.^2-y.^2);<br />
mesh(z)<br />
-- Ayrca view komutu yardmyla da küresel ve kartezyen koordinatlar ekranda<br />
görüntülenebilir.<br />
view<br />
ans =<br />
0.7934 -0.6088 0 -0.0923<br />
0.3044 0.3967 0.8660 -0.7835<br />
0.5272 0.6871 -0.5000 8.3031<br />
0 0 0 1.0000<br />
28
-- Örnek olarak z=x 2 +y 2 +xy yüzeyini -2
-- Herhangi bir yüzey grafiinde tepe ve alt tepe (minimum ve maximum) deerlerini<br />
göstererek yaplan çizimlerde peaks(...) komutu kullanlr :<br />
[X,Y]=meshgrid(-3:0.125:3);<br />
peaks(X,Y)<br />
30
ALITIRMALAR<br />
1- x = t 3 -2t+9 , y = 6t 5 -t , z = t 2 +7 erilerini tek bir grafik ekrannda çizdiriniz.<br />
2- A = [ 5 8 -2 6 4 0 7 ] giri verilerini bar grafik ekrannda çizdiriniz.<br />
3- z=2x 2 +y yüzeyini, 0.2 artm deeriyle x = (-2,2) ve y = (-2,2) araln kullanarak<br />
çizdiriniz.<br />
4- z = e -2x +4x 3 grafiini (2,50) aralnda çizdiriniz.<br />
5- x=9sin(t) , y = 2tan(3t) + cos(t) grafiklerini (0,10) aralnda 0.05 artmla çizdiriniz.<br />
31
BÖLÜM 3 : <strong>MATLAB</strong> ile PROGRAMLAMA<br />
Bu bölümde <strong>MATLAB</strong> yazlmn balangçta kolaylkla kullanabilmek için<br />
gerekli olan komut ve fonksiyonlar verilecektir.<br />
u ana kadar <strong>MATLAB</strong> ile yaptmz uygulamalarda, belirli bir ilemi<br />
gerçekletirmek üzere gerekli olan komut ya da fonksiyonlar komut satrndan, >><br />
sembollerinden sonra tek tek girerek icra ediyorduk. Oysa, <strong>MATLAB</strong> komut ya da<br />
fonksiyonlarndan gerçekletirmek istediimiz bir ile ilgili özel bir grubu, bir dosyaya<br />
kaydederek, bu dosya isminin çarlmasyla icra ettirebiliriz.<br />
Bir deyimler ya da komutlar grubunu içeren bu tip bir dosyaya <strong>MATLAB</strong>’de<br />
M-dosyas (M-File) ad verilir. Bir komut grubu içerdii için tanm itibariyle bir<br />
program dosyasdr. Dolaysyla programlama M-dosyalar oluturularak yaplr.<br />
-- Komut satrna “helpwin” komutu girilirse veya <strong>MATLAB</strong>’in Help menüsünden<br />
“Help Window” seçenei seçilirse karmza gelecek yardm seçeneklerinden istenilen<br />
konu hakknda bilgi alnabilmektedir.<br />
-- “M-File” Oluturma : Programlama ilemi M-File (Program Dosyas) dosyalarnda<br />
yaplr. Bu nedenle program yazarken en çok kullanlacak olan ilem M-File oluturma<br />
ilemidir. Bunun için “File” menüsünden “New” seçilir ve daha sonra “M-File”<br />
seçenei seçilir. Böylece yeni bir programlama ekran elde edilir. Programlama ilemi<br />
bittikten sonra “M-File” dosyasnn “File” menüsünden “Save As” seçenei seçilir.<br />
Yazlan program buradaki “work” çalma dosyasnn içine istenilen isimle kaydedilir.<br />
Kaydedilen dosyalarn uzants .m olarak kaydedilir. (Örnek: sonuc.m) stenen<br />
dosyay çaltrmak için ise komut satrnda dosya ismini yazp “Enter” tuuna basmak<br />
yeterlidir. Ayrca “work” menüsüne girilip oradan da çaltrlabilir.<br />
lk etapta örnek olarak oluturulmu olan bo bir M-File dosyas aada gösterilmitir:<br />
32
A) GENEL AMAÇLI KOMUTLAR<br />
-- “ workspace ” komutu : Çalma esnasnda çalma alannda (bellein kullancya<br />
ayrlan ksm) mevcut deikenler hakkndaki ayrntl bilgi aada gösterildii gibi<br />
bir pencere içinde verilir. Pencere içindeki deikenlerin üzerine çift tklayarak o<br />
deikenle ilgili bilgilere ulalp deiiklikler yaplabilir.<br />
-- “ clear ” komutu : Bellekte o anda mevcut bulunan deikenleri bellekten siler.<br />
-- “ save ” komutu : M-file dosyasnn kaydedilmesi yukarda da anlatld gibi<br />
“File” menüsünden yaplr. <strong>MATLAB</strong> komut satrnda ise “ save ” komutu kullanlrsa<br />
o esnada bellekte bulunan deikenleri, istenilen dosya ismiyle ve uzants .mat olacak<br />
ekilde kaydedilir.(Örnek: sayilar.mat)<br />
>> a=1<br />
a =<br />
1<br />
>> b=2<br />
b =<br />
2<br />
>> save sayilar<br />
Yukarda a ve b saylar saylar.mat dosyas olarak kaydedilmitir.<br />
-- “ load ” komutu : Diskte sakl bir dosya içindeki deikenleri tekrar bellee yükler.<br />
>> load sayilar<br />
>> who<br />
Your variables are:<br />
a b<br />
Yukarda “sayilar” dosyas “load” komutuyla bellee tekrar yüklenmi ve “who”<br />
komutuyla bu dosyann deikenleri görüntülenmitir.<br />
33
-- “ dir ” komutu : Bellekte kaytl olan dosyalar listeler.<br />
(Not: Bir program doru olarak çaltrmak için, icra ettirmeden önce “clear”<br />
komutuyla mevcut deikenler silinebilir.)<br />
>> dir<br />
. Oy.m sayilar.mat simple-report.sgml<br />
.. diary simple-report.html<br />
-- “ type ” komutu : Bir .m uzantl dosyann içeriini komut satrnda görüntüler.<br />
-- “ edit ” komutu : Bir M-dosyasnn içeriinde deiiklik yapma imkan salar.<br />
-- “ open ” komutu : Uzants ile belirtilen dosyay açar.<br />
-- Her yazlm türünde olduu gibi <strong>MATLAB</strong>’de de, iletim sistemi kontrolüne<br />
geçmeden iletim sisteminin görevi olan baz ilemleri gerçekletirebilmek<br />
mümkündür. Bu tür ilemler aadaki tabloda özetlenmitir.<br />
Komutun Ad<br />
cd<br />
dir<br />
ls<br />
delete<br />
type<br />
Komutun levi<br />
Aktif dizini deitirir.<br />
Aktif dizinin içindekileri listeler.<br />
Aktif dizinin içindekileri listeler.<br />
Belirtilen dosyay siler.<br />
Belirtilen dosyann içeriini listeler.<br />
-- “ clc ” komutu : Komut satrn tamamen siler.<br />
34
B) DEKEN ATAMA<br />
“ C ” ve “ PASCAL ” gibi programlama dillerinde, programn ana gövdesinin<br />
oluturulmasna balamadan hemen önce, programdaki tüm deikenlerin hangi tip<br />
deiken olduklarn belirtmek ve programn bilgisayar belleinden uygun miktarda<br />
alan bu deikenler için tahsis etmesini salamak gerekir. <strong>MATLAB</strong>’de deikenler,<br />
kendilerine ait bir isim ve onlara atanacak deerler yardmyla oluturulurlar. Önceden<br />
deiken tipini belirtmeksizin, deikene verilen deere bal olarak <strong>MATLAB</strong>, uygun<br />
deiken tipini belirler ve bilgisayar belleinden yeteri kadar yeri bu deikene tahsis<br />
eder.<br />
Birinci bölümde temel atamalarla ilgili baz bilgiler (sabit, deiken, matris,<br />
dizi, vektör tanmlama...) verilmiti.<br />
-- Mantk ve liki Operatörleri :<br />
== Eittir & and Ve<br />
~= Eit deil & and Ve<br />
< Küçük ~ not Deil<br />
Büyük<br />
>= Büyük eit<br />
-- global( ) komutu : Farkl M-dosyalar için ayn deiken tanmlanacaksa o deiken<br />
global(x) olarak tanmlanabilir.<br />
-- disp(‘’) komutu : stenen açklamay görüntüler.<br />
>> disp('Programlamaya Giris')<br />
Programlamaya Giris<br />
-- input(‘’) komutu : Kullancdan klavye araclyla programc tarafndan girilmesi<br />
istenen deiken istenir ve ilgili deikene atanr.<br />
>> Yas=input('Yasinizi giriniz :')<br />
Yasinizi giriniz :23<br />
Yas =<br />
23<br />
-- “ fprintf ” komutu : Bir açklama ifadesiyle birlikte bir veya birden fazla deerin<br />
görüntülenebilmesini salar.<br />
>> a=231565465;<br />
>> fprintf('Hesap = %d ',a)<br />
Hesap = 231565465.000000<br />
35
Not : “ fprintf ” fonksiyonu, kompleks saylarn sadece reel ksmn gösterir. Bu<br />
nedenle kompleks say uygulamalarnda “ disp ” fonksiyonunu kullanlmaldr.<br />
“ fprintf ” fonksiyonunda kullanlan çeitli “ biçim tipleri ” aada gösterilmitir :<br />
%d : Virgüllü saylar 10’un kuvvetleri eklinde gösterir.<br />
%f : Kayan noktal ekilde gösterir, aksi belirtilmedikçe virgülden sonra 6 basamak<br />
gösterir.<br />
%e : Sayy üstel ekilde gösterir.<br />
-- linspace ve logspace komutlar : lk deeri ve son deeri belirtilen bir diziyi lineer<br />
veya logaritmik olarak belirtilen saydaki eleman kullanarak yaplandrr. Belirtilen<br />
aral otomatik olarak verilen eleman saysna göre böler ve her böldüü sayy<br />
görüntüler.<br />
fonksiyon(ilk_deer , son_deer , eleman_says)<br />
>> B=linspace(0,10,6)<br />
B =<br />
0 2 4 6 8 10<br />
-- Balangç, son deer ve art miktar belli dizilerin atanmas :<br />
>> dizi=10:5:30<br />
dizi =<br />
10 15 20 25 30<br />
--Hazr fonksiyon özelliklerini kullanarak oluturulan diziler için kullanlan<br />
komutlar :<br />
zeros(n,m) : nxm boyutunda 0’lardan oluan matris üretir.<br />
ones(n,m) : nxm boyutunda 1’lerden oluan matris üretir.<br />
eye(n,m) : nxm boyutunda birim matris üretir.<br />
length(x) : “x” dizisinin satr saysn verir.<br />
size(x) : “x” matrisinin boyutlarn (satr ve sütun) verir.<br />
format short : lem sonuçlarn virgülden sonra 4 basamakl olarak gösterir.<br />
format long : lem sonuçlarn virgülden sonra 14 basamakl olarak gösterir.<br />
Not: <strong>MATLAB</strong>’in yapsnda önceden tanmlanm baz özel sabit veya açklama<br />
deerler :<br />
pi (Pi says) ; i,j (Kompleks i says) ; eps (Epsilon:ki say arasndaki en küçük fark) ;<br />
Inf (Say/Sfr belirsizlii ve dier belirsizlikler karsnda üretilen tanmszlk cevab :<br />
Infinite)<br />
36
-- Vektör ve matrislerin tanmlanmas :<br />
>> A=[ 2 3 5 9 -2 ]<br />
A =<br />
2 3 5 9 -2<br />
3x3 boyutunda bir matrisi tanmlamak için :<br />
>> C=[3 6 9 ; 8 2 4 ; 0 8 3 ]<br />
C =<br />
3 6 9<br />
8 2 4<br />
0 8 3<br />
-- “ who ” komutu : Çalma alanndaki o esnada mevcut olan deikenlerin isimlerini<br />
listeler. Ayrca “ whos ” komutu deikenler hakknda daha ayrntl bilgi verir.<br />
>> who<br />
Your variables are:<br />
A B C V<br />
-- length( ) komutu : Girilen bir vektörün uzunluunu (eleman saysn) görüntüler.<br />
>> A=[ 5 8 7 2 5 9 6 ]<br />
A =<br />
5 8 7 2 5 9 6<br />
>> length(A)<br />
ans =<br />
7<br />
C) FONKSYON OLUTURMA VE DER KOMUTLAR:<br />
-- sum( ), min( ), max( ), mean( ) komutlar : Yandaki komutlar srasyla bir<br />
vektörün elemanlarnn toplamn, en küçük elemann, en büyük elemann ve<br />
ortalamasn bulur.<br />
-- “ function ” komutu : Fonksiyon tanmlamak için kullanlr. Bu özellik aada<br />
örnek üzerinde açklanmtr :<br />
Örnek olarak kullanc tarafndan girilen n adet rakamn (Bu rakamlarn <strong>MATLAB</strong>’de<br />
vektör formunda girilmesi gerekmektedir) ortalamasn, en küçük elemann, en büyük<br />
elemann ve standart sapmasn bulacak bir fonksiyonu ist(a) adyla oluturalm :<br />
37
Not: Herhangi bir .m dosyas penceresinde “ f ” butonuna mouse ile bir defa<br />
dokunulduunda (yukardaki ekilde de görülmektedir) “work” dizini altnda kaytl<br />
olan bütün fonksiyonlar listelenir.<br />
imdi de program komut satrndan icra ettirelim :<br />
>> A=[5 3 6 9 73 6 5];<br />
>> ist(A)<br />
enk =<br />
3<br />
enb =<br />
73<br />
n =<br />
7<br />
ort =<br />
15.2857<br />
stsapma =<br />
23.6203<br />
ans =<br />
15.2857<br />
38
-- “ type ” komutu : Bir .m uzantl dosyann içeriini komut satrnda görüntüler.<br />
Örnek olarak 2 saynn toplamn yapan “toplam” isimli basit bir program yazalm.<br />
Aada M-File görüntüsünde gösterilmitir :<br />
<strong>MATLAB</strong> komut satrna “type toplam” yazlrsa :<br />
>> type toplam<br />
clear<br />
disp('---------Iki sayinin toplamini bulan program--------------')<br />
a=input('Birinci sayiyi giriniz: ');<br />
b=input('Ikinci sayiyi giriniz: ');<br />
toplam=a+b;<br />
disp('Toplam = ');<br />
disp(toplam);<br />
end<br />
>><br />
Örnek Program: “ ki noktas bilinen dorunun çizimi ” program aada<br />
gösterildii gibi dogru.m dosyas ad altnda yazlmtr. Çizilmesi istenen dorunun<br />
iki noktas kullancdan istenmekte ve grafik otomatik olarak çizdirilmektedir.<br />
39
Bu program komut satrnda çaltrlrsa aada gösterildii gibi icra edilir ve grafik<br />
de otomatik olarak yine aada gösterildii gibi çizdirilir.<br />
>> dogru<br />
*********Iki Noktasi Bilinen Dogrunun Cizimi*********<br />
1. Noktanin apsisini giriniz :3<br />
1. Noktanin ordinatini giriniz :9<br />
2. Noktanin apsisini giriniz :-5<br />
2. Noktanin ordinatini giriniz :7<br />
>><br />
Örnek Program: “ 3 farkl partinin yaplan genel seçimler sonucu aldklar oy<br />
oranlarn pasta grafik dilimi üzerinde gösteren grafiin çizimi ” program aada<br />
gösterildii gibi Oy.m dosyas ad altnda yazlmtr. Çizilmesi istenen pasta dilimi<br />
grafii için kullancdan bu üç partiye ait yüzdelik oy oran rakam olarak istenmekte ve<br />
grafik otomatik olarak çizdirilmektedir.<br />
40
Bu program komut satrnda çaltrlrsa aada gösterildii gibi icra edilir ve grafik<br />
de otomatik olarak yine aada gösterildii gibi çizdirilir.<br />
>> Oy<br />
<br />
Partilerin Oy Oranlari Grafigi<br />
<br />
A Partisinin aldigi oyun yuzdelik dilimdeki rakamini giriniz: 50<br />
B Partisinin aldigi oyun yuzdelik dilimdeki rakamini giriniz: 20<br />
C Partisinin aldigi oyun yuzdelik dilimdeki rakamini giriniz: 30<br />
-- “ keyboard ” komutu : letilen programlarn kodlarna ve içeriklerine dardan<br />
müdahale edebilmek için kullanlr. Böylece programn iletilmesi durdurulur,<br />
fonksiyonun kontrol edilebilmesini salar, deikenler üzerinde inceleme ve deiiklik<br />
yaplabilir. Bu komutun aktif olduu “K>>” eklindeki özel bir komut istem sembolü<br />
ile belirtilir. Bu özellikten çkp programn akna devam edebilmek için, “ return ”<br />
komutu girilir ve “ enter ” tuuna baslr. Bu özellik sayesinde çalma alannda<br />
üretilen sonuçlara annda ulaabilmek mümkün olmaktadr. Aadaki örnekte M-File<br />
ve komut icra satrlar verilmitir<br />
41
Bu program komut satrnda çaltrlrsa aada gösterildii gibi icra edilir<br />
Birinci sayiyi giriniz: 4<br />
Ikinci sayiyi giriniz: 2<br />
K>> c=10<br />
c =<br />
10<br />
K>> return<br />
d =<br />
80<br />
K>> return<br />
>><br />
Örnek Program: ki nokta arasndaki uzakl bulan basit bir program, önce<br />
fonksiyon yapsn kullanarak sonra da ayn program bu fonksiyon yapsn bellekten<br />
çarma ilemini uygulayarak icra ettirelim :<br />
a) Fonksiyon yapsn kullanarak :<br />
Komut satrndan icra edilirse :<br />
>> f_uzaklik(2,6,3,0)<br />
x =<br />
6.0828<br />
ans =<br />
6.0828<br />
42
) Fonksiyon yapsn bellekten çararak :<br />
Komut satrndan icra edilirse :<br />
>> uzaklik<br />
------- Iki nokta arasindaki uzaklik -------<br />
1.noktanin x degerini giriniz : 2<br />
1.noktanin y degerini giriniz : 5<br />
2.noktanin x degerini giriniz : 4<br />
2.noktanin y degerini giriniz : 3<br />
x =<br />
2.8284<br />
Iki nokta arasindaki uzaklik:2.828427<br />
D) DÖNGÜ ve ARTLI FADE UYGULAMALARI :<br />
1.ARTLI FADELER :<br />
-- “ if ” yaps : “ if ” komutunun <strong>MATLAB</strong>’de 3 farkl ekli mevcuttur :<br />
a) if koul<br />
deyim1<br />
deyim 2<br />
deyim_n<br />
end<br />
Koul doru ise deyim1, deyim1, ... , deyim_n, ile belirtilen deyimler grubu icra edilir<br />
ve programn kontrolü end’i izleyen deyime geçer; koul yanl ise bu durumda<br />
deyim1, deyim2, ..., deyim_n ile belirtilen deyimler grubu icra edilmeden kontrol end’i<br />
izleyen deyime geçecektir.<br />
43
) if koul<br />
deyim1<br />
deyim 2<br />
deyim_n<br />
else deyim_n+1<br />
deyim_n+2<br />
deyim_m<br />
end<br />
Koul doru ise deyim1, deyim1, ... , deyim_n, ile belirtilen deyimler grubu icra edilir<br />
ve programn kontrolü end’i izleyen deyime geçer; koul yanl ise bu durumda da<br />
sadece else’ i izleyen, deyim1_n+1, deyim_n+2, ... , deyim_m ile belirtilen deyimler<br />
grubu icra edilecek ve kontrol end’ i izleyen deyime geçecektir.<br />
c) if koul1<br />
deyim1<br />
elseif koul2<br />
deyim2<br />
elseif koul3<br />
deyim3<br />
...<br />
elseif koul_n<br />
deyim_n<br />
else<br />
deyim_n+1<br />
end<br />
Bu yap içerisinde kontrol edilen koullardan herhangi biri doru ise onunla ilikili<br />
deyim icra edilir ve kontrol end’ i izleyen deyime geçer. Koullarn hepsi de yanlsa,<br />
kontrol else’ i izleyen deyim_n+1’e geçer ve bu deyim de icra edildikten sonra kontrol<br />
end’i izleyen deyime geçecektir.<br />
Örnek Program: Kullanc tarafndan bir say istenip bu saynn pozitif, negatif veya<br />
0 m olduunu sorgulayan ve ekrana yazdran program aada incelenebilir :<br />
44
Komut satrndan icra edilirse :<br />
Bir sayi giriniz: 55<br />
Sayiniz pozitiftir...<br />
>> if_1<br />
Bir sayi giriniz: -9<br />
Sayiniz negatiftir...<br />
>> if_1<br />
Bir sayi giriniz: 0<br />
Sayiniz sifirdir...<br />
-- “ switch - case ” yaps : kiden fazla durumu kontrol etmek için, if – elseif – else –<br />
end yapsna alternatif olarak kullanlan bir kontrol yapsdr.<br />
fadenin deeri kontrol edilir ve buna göre farkl bir deyim veya deyimler grubu icra<br />
edilir. Örnein, ifadenin deeri deer1 ise, deyim1 icra edilir ve kontrol end’i izleyen<br />
deyime geçer.<br />
fadenin deeri , deer2, deer3 ya da deer4 ’e eitse bu durumd deyim2 icra edilir ve<br />
kontol end’i izleyen deyime geçer.<br />
fadenin deeri, case’lerle kontrol edilen deerlerden hiç birine eit deilse bu<br />
durumda da otherwise sözcüünü izleyen deyim_n+1 icr edilecektir.<br />
switch(ifade)<br />
case deer1<br />
deyim1<br />
case deer2,deer3,deer4<br />
deyim2<br />
...<br />
case deer_n<br />
deyim_n<br />
otherwise<br />
deyim_n+1<br />
end<br />
45
Örnek Program: Haftann kaçnc gününün ne olduunu bulan basit bir program<br />
aada incelenebilir :<br />
>> gun<br />
Haftanin kacinci gunu ? : 5<br />
gun =<br />
Cuma<br />
2.DÖNGÜ FADELER :<br />
-- “ for ” döngüsü : Parametre deeri balangç deerinden balayarak ve her<br />
seferinde artm deeri kadar arttrlarak son deere eriene kadar deitirilir.<br />
Parametrenin her deeri için, deyim1, deyim2, deyim_n eklinde belirtilen ve for-end<br />
sözcükleri arasnda yer alan deyimler grubu icra edilir. Parametrenin deeri son deeri<br />
anca, programn kontrolü end’i izleyen deyime yani çevrimin dna çkacaktr.<br />
for parametre=balangç:artm:son_deer<br />
deyim1<br />
deyim2<br />
...<br />
deyim_n<br />
end<br />
46
Örnek Program: Arka arkaya bölme ilemlerinin yapld aadaki for döngüsü<br />
programn incelenebilir :<br />
Komut satrndan icra edilirse :<br />
0/2 = 0<br />
0/4 = 0<br />
ic cevrim sonu<br />
20/2 = 10<br />
20/4 = 5<br />
ic cevrim sonu<br />
40/2 = 20<br />
40/4 = 10<br />
ic cevrim sonu<br />
60/2 = 30<br />
60/4 = 15<br />
ic cevrim sonu<br />
80/2 = 40<br />
80/4 = 20<br />
ic cevrim sonu<br />
dis cevrim sonu<br />
-- “ while ” döngüsü : Belirli bir üst snra kadar istenilen ilemleri tekrarlayarak<br />
yapar. Koul doru olduu sürece, deyim1, deyim2, ... , deyim_n eklinde belirtilen<br />
deyimler grubunu icra eder. Koul yanl olduu anda, end’i izleyen deyime yani<br />
çevrim dna çkar.<br />
while koul<br />
deyim1<br />
deyim2<br />
...<br />
deyim_n<br />
end<br />
47
Örnek Program: A=5 ilk deerinden balayarak A
ALITIRMALAR<br />
1- Kenarlar kullanc tarafndan istenen bir üçgenin çeitkenar, ikizkenar veya ekenar<br />
üçgen mi olduunu bulan <strong>MATLAB</strong> programn yaznz.<br />
2- “ ax 2 +bx+c ” ikinci dereceden denkleminin köklerini bulduran <strong>MATLAB</strong> proramn<br />
yaznz.<br />
3- Bir otomobil, durgun halden harekete balayarak 10 dakika boyunca hzlanyor,<br />
hz 60 km/saat oluyor. Sonra 15 dakika boyunca sabit hzla hareketine devam ediyor<br />
ve 10 dakika boyunca yavalayarak hz 0 oluyor. Dardan girilen herhangi bir t<br />
annda otomobilin hzn veren bir <strong>MATLAB</strong> program yaznz.<br />
4- Kullancdan doum gününü soran ve bu kullancn kaç yl, kaç ay ve kaç yl<br />
yaadn bulan bir <strong>MATLAB</strong> program yaznz.<br />
49