09.04.2014 Views

MATLAB Notlari.pdf

MATLAB Notlari.pdf

MATLAB Notlari.pdf

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!