You are on page 1of 84

200 TEMEL BLGSAYAR BLMLER 8 MATLAB

A SAFA, Y Do Dr YILDIZ Tek niv 2009

NDEKLER Sayfa

TEMEL BLGSAYAR BLMLER........................................................................................1 MATLAB 1 NDEKLER..........................................................................................................................2 Sayfa 1. GR 2 4

1.1 Algoritmann oluturulmas..................................................................................................4 2. MATLABde programlama...................................................................................................5 2.1 Format komutu......................................................................................................................8 2.2 MATLAB fonksiyonlar,......................................................................................................8 2.3 M-Dosyalarnda Deiken Kullanm...................................................................................9 2.4 Deiken yaps oluturma....................................................................................................9 2.5 Dizi (Matris Yaklam)........................................................................................................9 2.5.1 MATLABde matris elemann indisleri.............................................................................9 2.5.2 Matris Oluturma.............................................................................................................10 2.5.3 Matris lemleri................................................................................................................12 2.5.4 Denklem sistemlerinin zm........................................................................................14 2.6 Dizi lemleri.......................................................................................................................14 2.7 ok Boyutlu Diziler............................................................................................................15 3. MATLAB komutlar.............................................................................................................17 3.1 IF koul komutu (fonksiyonu).............................................................................................17 3.2 FOR dng komutu (fonksiyonu).......................................................................................17 3.3 WHILE dng komutu (fonksiyonu)..................................................................................18 3.4 SWITCH koul komutu (fonksiyonu).................................................................................20 3.5 INPUT komutu (fonksiyonu)..............................................................................................20 4. FONKSYONLAR................................................................................................................21 4.1 Fonksiyonlar (Kullanc Tanml).......................................................................................21 4.2 Fonksiyon fonksiyonlar ( MATLAB Tanml)..................................................................22 5. YAZDIRMA LEM...........................................................................................................24 6. GRAFK GSTERM..........................................................................................................25 6.1 ki Boyutlu Grafik izimi...................................................................................................25

7. GRD IKTI LEMLER..................................................................................................34 7.1 Dosyaya Yazdrma ve Dosyadan Okuma...........................................................................34 7.2 Excele Veri Alma ve Gnderme........................................................................................34 8. SEMBOLK LEMLER......................................................................................................36 9. KAYNAKLAR.....................................................................................................................39 RNEKLER............................................................................................................................41 9.1 Yazm bilgisi (Syntax)........................................................................................................41 Diziler 44 MATLAB fonksiyonlar..........................................................................................................55 AKI DYAGRAMI................................................................................................................57 M-FILE FONKSYONLAR....................................................................................................64 M-file ile program yazm........................................................................................................78 10. SIMULINK modl.........................................................................................................79 10.1 Model Dzenleme (Model Editor)....................................................................................80

4 1. GR

En temel olarak programlama, hesaplama ileminin makine (bilgisayar) kullanlarak yaplmas yntemidir. Programlama, ilem akn ierir. En temel bilgisayar programlama dili makine dilidir. 0 ve 1 deerlerinden oluur. st seviye programlama dillerine gidildike, dil daha kolaylar. Derleyici, yardm ile yazlan program makine diline evrilir. Program altrlr, hesaplanr. C, BASIC, PASCAL, vb diller rnek verilebilir. Programlama dilleri, metin tabanl (BASIC, VISUAL BASIC, DELPHI, vb.) ve grafik tabanl (SIMULINK, LABVIEW, vb.) olarak ayrlabilir. MATLABde metin tabanl ve SIMIULINK modlnde ise, grafik tabanl programlama yaplr. 1.1 Algoritmann oluturulmas lem ak diyagramnda, yaplacak ilemler, hesaplamalar srasyla yer alr. rnein, kapy amak iin algoritma oluturalm: 1- Zil sesinin duyulmas. 2- Kapya doru gidilmesi. 3- Kap kolunun bulunmas. 4- Kap kolunun evrilerek, kapnn almas.

5 2. MATLABde programlama

MATLAB (alm: MATrix LABoratory) Tarihesi, Asl Cleve Moler tarafndan 1970lerde gelitirildi. Moler, matematik derslerinde FORTRAN olmakszn kimi FORTRAN ktphane programlarnn (LINPACK: Lineer denklem sistemini zer, EISPACK: zdeer vektrlerini hesaplar) kullanmna gereksimim grd. MATLAB bu programlar dardan kullanacak biimde gelitirdi. Resmi sat yaplmamasna karn, yaygnlamaya balad. 1980lerde C dilinde yeni batan yazld. izim gibi ilevler eklendi. 1984 tarihinde MATHWORKS irketi kuruldu. Bylelikle, MATLAB programnn gelitirilmesi, sat ve destek hizmetleri kurumsal bir yapya kavutu. MATLABde programlama konusunda, internet zerinde help, documentation linkleri izlenir. - www.mathworks.com/access/helpdesk/help/helpdesk.html - www.matlabcentral.com - www.mathtools.net Hazr rnekler ve video sunumlar iin yukardaki linkteki program sayfalar izlenir. Ya da MATLAB program arayznde sol alt kede yer alan Start butonuna baslr, demos yolu izlenir. MATLAB programn altrmak iin aadaki ikon tklanr:

Ya da Balat mens/altr izlenerek, matlab komutu yazlr. MATLAB program ilk aldnda ekranda grnen pencereleri ile aada grlmektedir: Workspace: alma yeri Command History: altrlm komutlar Command Window: Komut Penceresi

6 MATLAB programn kapatmak iin komut penceresinde exit ya da quit komutu girilir. Tanml terimler, maviye evrilir. Komut penceresinde basit hesaplamalar yaplabilir:

>> -5/(4.8+5.32)^2 ans = -0.048821 >> (3+4i)*(3-4i) ans = 25 >> cos(pi/2) ans = 6.1232e-017 >> exp(acos(0.3)) ans = 3.547
Ayrca, hesaplamalar deikenlere atanp, deikenler kullanlarak hesaplamalar yaplabilir:

>> a = 2; >> b = 5; >> a^b ans = 32 >> x = 5/2*pi; >> y = sin(x) y = 1 >> z = asin(y) z = 1.5708
Mantksal nerme doru ise, sonucu 1 dner. Yanl olmas durumunda ise, sonucu 0 dner. Aada verilen nerme ilemleri kullanlr: OPERAT AIKLAMASI R < Kktr > Byktr <= Kktr ve eittir >= Byktr ve eittir == Denktir (mantk) ~= Eit deildir Yararl ksayollar: : Yukar ok tuu ile daha nce altrm olan komutlar arlr.

7 Esc: Komut satr silinir. Ctrl+C: Yaplmakta olan ilemden klp, komut satrna dnlr. FONKSYO N cd/pwd, ls/dir What ! (bang) Which Clear who, whos size AIKLAMASI Dizin ilemleri Dizinde yer alan klasrlerin grntlenmesi letim sisteminin uyarlmas lgili nesnenin tanmlanmas Foksiyon ve deikenin bellekten silinmesi alma yerinde tanml deikenlerin listelenmesi Matrisin boyutunun (eleman saylar, satr ve stun) bulunmas

Komutlar hakknda bilgi almak iin komut satrnda, help sin yazlrsa, sin fonksiyonu yardm sayfas ekrana gelir. helpwin sin yazlrsa, help sin ifadesinden farkl olarak, yardm sayfas ayr pencerede alr. doc sin yazlmas durumunda, yardm sayfasnn grntlenmesi iin program CDsi srcde bulunmaldr. Bunlarn dnda, yardm belgelerine ulamak iin komut satrnda helpwin ya da doc yazlr. Matlab Start butonu altndaki Help ile yardm menlerine ulalr. Ayrca, komut satrnda,

helpbrowser yazlarak da yardm menlerine ulalr.

2.1

Format komutu AIKLAMA Varsaylan format (format short ile ayndr) 5 rakaml sabit nokta skala format 15 rakaml sabit nokta skala format 5 rakaml kayan nokta format 15 rakaml kayan nokta format 5 rakaml en uygun sabit veya kayan nokta format 15 rakaml en uygun sabit veya kayan nokta format Dolar ve sent iin sabit format (ki ondalkl gsterimler iin kullanabilirsiniz) En kk tamsay oran yaklamyla sayy ondalkl olarak gsterir

KOMUT format format short format long format short e format long e format short g format long g format bank format rat

2.2

MATLAB fonksiyonlar, HPERBOLK Fonksiyon Ters format Fonksiyon format sinh(x) asinh(x) cosh(x) acosh(x) tanh(x) atanh(x) coth(x) acoth(x) sech(x) asech(x) csch(x) acsch(x)

TRGONOMETRK Fonksiyon Fonksiyon Ad format Sinus Kosins Tanjant Kotanjant Sekant Kosekant sin(x) cos(x) tan(x) cot(x) sec(x) csc(x)

Ters Fonksiyon format asin(x) acos(x) atan(x) acot(x) asec(x) acsc(x)

Not: MATLABde trigonometrik fonksiyonlarda derece yerine radyan kullanlr. Ksaca 2pi =360 dir. rnein, derece olarak sin(30)=0.5. 1. yol: >> x = pi/4; >> sin(4*x)-(2*cos(x))^3 ans = -2.8284 >> 2.yol: >> x = 45; >> sin(4*x*pi/180)(2*cos(x*pi/180))^3 ans = -2.8284 >>

9 2.3 M-Dosyalarnda Deiken Kullanm Bir deikeni atamadan nce atamann sa tarafnda bir deeri olmaldr. Bir deikenin zerine baka bir deer atarsanz eski deikenin deeri atanan yeni deiken deeri olur. Deiken adlar bir harfle balamal, sonra herhangi bir harf rakam ve altizginin kombinasyonu gelebilir. MATLAB byk kk harfleri ayrt eder yani A ile a ayr deikenlerdir. Deiken uzunluu herhangi bir uzunlukta olabilir ancak MATLAB deiken adnn ilk 63 karakterini dikkate alr. Dier bir deyile maksimum deiken ad uzunluu 63 karakter olmaldr. Bir deikene vereceiniz adn daha nce kullanlp kullanlmadn kontrol etmek iin isvarname fonksiyonu kullanlr. Eer verdiiniz ad geerli ise 1, deilse 0 deerini gsterir.

2.4 Deiken yaps oluturma Deiken snf oluturulur. Bir deiken ad altnda yeni deikenler tretilir. >> firma.ad=['AA';'BB';'CC'] firma = ad: [3x2 char] >> firma.adet=[35;30;40] firma = ad: [3x2 char] adet: [3x1 double] >> firma.klas=['TL';'GL';'BV'] firma = ad: [3x2 char] adet: [3x1 double] klas: [3x2 char] >> firma.ad(2,:) ans = BB >> firma.adet(2,:) ans = 30 >> firma.klas(2,:) ans = GL >> 2.5 Dizi (Matris Yaklam)

2.5.1 MATLABde matris elemann indisleri Diziler, matris biiminde ele alnabilir: Tek elemanl dizi, 11lik matris m elemanl dizi: m1lik stun matris ya da n elemanl dizi: 1nlik satr matris

10

n: Stun says m: Satr says A kare matrisinin elemanlarnn indisleri: ! ekilde grld gibi, A(2,4) ile A(17) ayn eleman gsterir.
M T A F n a e ta a dP g m in T c n u s A L B u d m n ls n ro ra m g e h iq e 2- 3 1

2
1

3
6

C lu n o ms (n ) 4

A=

1 2

4 8 7 .2

1 0 1 .2 5 0 .5 8 3

1 9 7 4 1 3

1 1

6 4 1 5 0

1 6

2 2 5 1 1 5 6 1 0

2 1

A(2 ) ,4

1 2

1 7

2 2

R w (m 3 o s ) 4 5

1 3

1 8

2 3

A(1 ) 7

0 2 3

1 4

1 9

2 4

1 0

1 5

2 0

2 5

20 Te 02 h

M th o s a W rk

, In . c

rnekler: A(1:5,5) A(:,5) A(21:25) A(1:end,end) A(:,end) A(21:end) A(4:5,2:3) A([9 14; 10 15]) Matris elemanlar say, karakter ya da fonksiyon olabilir: w = [-2.8 sqrt(-7) (3+5+6)*3/4] w= -2.8000 0 + 2.6458i 10.5000 2.5.2 Matris Oluturma Keli parantez kullanarak, aadaki rnekteki gibi matris oluturulur. >> a = [1, 2; 3, 4] a= 1 2 3 4 Elemanlar arasnda boluk braklr ya da virgl konulur. Dier satra gemek iin noktal virgl konulur. A = [1 2 3; 4 5 6; 7 8 9] A= 1 2 3

11 4 7 5 8 6 9

Ya da A = [1 2 3 456 7 8 9] A= 1 4 7 2 5 8 3 6 9

ki nokta stste kullanarak, aadaki rnekteki gibi sabit aralkla matris oluturma: rnein, Saya deeri = balang deeri:adm aral:son deeri >> b = 2:-0.5:0 b= 2.0000 1.5000 1.0000 0.5000 0 Ya da 0:pi/4:pi ans = 0 0.7854 1.5708 2.3562 3.1416

Ya da azalan biimde, Z = 6:-1:1 Z= 6 5 4 3 2 1

Fonksiyon yardm ile yukardaki rnekteki gibi matris oluturulur. c = rand(2,4) X = [-1.3 sqrt(3) (1+3)*4/5] X= -1.3000 1.7321 3.2000

ie matris oluturma,

12 >> a=[1 2;3 4] a= 1 2 3 4 >> cat_a=[a, 2*a; 3*a, 4*a; 5*a, 6*a] cat_a = 1 2 2 4 3 4 6 8 3 6 4 8 9 12 12 16 5 10 6 12 15 20 18 24

2.5.3 Matris lemleri MATRS OPERAT AIKLAMASI R Devriini bulma ^ s alma * apma / Blme \ Ters blme + Toplama karma OPERAT R [] () {} . : end AIKLAMASI Keli parantez Tek trnak Parantez Kme parantezi Nokta ki nokta st ste Son numaratr nokta

DZ/ELEMANTER OPERATR AIKLAMASI .^ .* ./ s alma apma Blme

KULLANIMI Matris oluturma (tanmlama) String oluturma (tanmlama) Matris indisi (adresleme) Hcre dizisi oluturma ve indisleme Structure oluturma ve adresleme Sabit aralkl vektr oluturma ndisi en son deeri Alt satrdan devam et

Matrislerde toplama ve karma A = [1 2 3; 2 3 4] , B = [ 3 4 5; 6 1 4] ve C = A+B ise, ilemin sonucu C = [4 6 8;8 4 8] bulunur. Matris ve dizi ilemleri arasndaki fark iin rnek: w = [1 2;3 4] + 5 ileminin alm, w= 1 2 5 5 + 3 4 5 5 Sonucu, w= 6 7

13 8 9 Bulunur. Matrislerin arpm, A=[1 2; 3 4], B= [3 4; 6 7], ve C=A*B ise, C=[15 18; 33 40] bulunur. Matrislerin blm A*X = B iin X = A\B X*A = B iin X = B/A yazlr. Matris fonksiyonlar: inv Matrisin devrii det rank eig svd nor m Determinant Matrisin rank zdeer ve zdeer vektrleri tekil deer ayrklatrma Matris/vektrn normu

== Matris ierisinde adresleme rnekleri: A(:,n) A(m,:) A(:,m,n) A(m:n,:) A(m:n,p:q) Bir matrise satr ve stun EKLEMEK A(:,n)=B : A matrisinin n no.lu stununa B stun vektrn ekler. A(n,:)=B : A matrisinin n no.lu satrna B satr vektrn ekler. Not: Matrisin her bir satrnda ayn sayda stun (ya da) eleman bulunur. rnek: rand komutu ile elemanlar 1 den 10 a kadar olan bir dizi oluturun. (rand 0 ile 1 arasnda ondalkl say retilir)

14

rnek: stock_values=[17.01 17.08 15.02 15.23; 16.43 16.55 14.98 16.66; 17.09 17.17 15.47 16.56; 16.86 17.05 16.25 16.38; 17.15 18.02 17.05 17.07] whos openvals=stock_values(:,1) max_openvals=max(openvals) mean_openvals=mean(openvals) low_vals=stock_values(:,3)

2.5.4

Denklem sistemlerinin zm

Blme ile [A] = m n [x] = n 1 [b] = m 1 Ax = B iin, x = A\B Ax = B iin, x = B/A Fonksiyon yardm ile, x = inv(A)*B Aada rnekteki gibi, >> A = [-1 1 2; 3 -1 1;-1 3 4]; >> b = [2;6;4]; >> x = inv(A)*b x= 1.0000 -1.0000 2.0000 >> x = A\b x= 1.0000 -1.0000 2.0000

-x1 + x2 + 2x3 = 2 3x1 - x2 + x3 = 6 -x1 + 3x2 + 4x3 = 4

2.6 Dizi lemleri Dizi yaps ok sayda verinin hzl biimde deerlendirilmesi iin gereklidir. Dizi ilemlerinde noktal operatrler kullanlr. Matris ilemlerinden farkl olarak eleman elemana yaplan ilemlerdir. Toplama ve kartma ilemleri arasnda fark yoktur.

15

rnek: x= [1 2 3] ; y = [4 5 6]; ise, z=x.*y ileminin sonucu, z=[4 10 18] olarak bulunur. Ayrca, arpm iin matris boyutlarnn uygun olmadna dikkat edilmelidir. Blme ilemi iin, Z= x.\y Z= 4.0000 2.5000 2.0000

s alma, Z = x.^y ileminin sonucu, Z = [ 1 32 729] ssn skaler olmas durumunda, Z = x.^2 Z = [ 1 4 9] Bulunur. rnein, ktlesi (M), uzunluu (L), ykseklii (H) ve genilii (W) bilinen 10 000 rnek paradan ortalama younluu aadaki rneklerde hesaplanmtr: Tanml deerler iin, Dizi elemanlar kullanlarak: for I = 1:10000 D(I) = M(I)/(L(I)*W(I)*H(I)); end; mean(D) Dizi kullanlarak: >> D = M./(L.*W.*H); mean(D) 2.7 ok Boyutlu Diziler

ndis says ikiden fazla olan diziler bu kapsama girer.

MATLAB Fundamentals and Programming Techniques

2 - 33

16

Multidimensional Arrays
>> A = pascal(4); >> A = pascal(4); >> A(:,:,2) = magic(4) >> A(:,:,2) = magic(4) A(:,:,1) = A(:,:,1) = 1 1 1 1 1 2 1 2 1 1 1 1 3 3 4 4

Page N
1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

1 1 3 3 6 6 10 10 3 3 10 10 6 6

1 1 4 4 10 10 20 20 13 13 8 8

Page 1
1 1 1 1

16 15 9 2 4 3 4

2 0 3 0 13 0 11 0 1 0 8 0 10 1 7 0 6 0 12 0 3 4 14 15 1 6 10 10 20

A(:,:,2) = A(:,:,2) = 16 2 16 2 5 5 9 9 11 11 7 7

12 12 4 14 15 1 4 14 15 1 >> A(:,:,9) = diag(ones(1,4)); >> A(:,:,9) = diag(ones(1,4));

>> mult_dim

rnein, bir levha zerindeki s dalm boyutlu bir dizi ile ifade edilebilir. Levhay kk dikdrtgen paralara ayralm. Her keyi, x ve y koordinatlarn birer indisle gsterelim. nc indis ile de scaklk deerlerini gsterelim.
2002 The MathWorks, Inc.

17 3. MATLAB komutlar

MATLABde program kodunun yazmnda kullanlan genel komutlar aada verilmitir. 3.1 IF koul komutu (fonksiyonu) Koula bal ilemlerin yaplmasnda kullanlr. Aadaki biimde yazlr: if mantksal ifade-1 deyim takm-1 elseif mantksal ifade-2 deyim takm-2 else deyim takm-3 end eklindedir. Eer mantksal ifade-1 doru ise deyim takm-1de belirtilen ilem, daha sonra baka bir mantksal ifade-2 verilir ve eer bu ikinci art doru ise deyim takm-2de belirtilen ilem yanl ise deyim takm-3de belirtilen ilem yaplr ve end ile ilem sona erdirilir.

rn, a=input('Bir a degeri giriniz: '); if a < 50 s = 5*a; elseif a < 100 s = 2*a; else s = a/2; end s

3.2 FOR dng komutu (fonksiyonu) Tanmlanan dngsel ilemler verilen dng says kadar tekrarlanr. Aadaki biimde yazlr: for dngdeikeni=ifade deyimler end rnein, ifade dngdeikeni=m:j:n eklinde ise burada m:j:n , j artm miktarl ilk deeri m son deeri n olan bir say araldr. Her for dngs end ile kapatlmaldr.

18

a=[1:5]; A=a.^2 sayac=1; for say = 1:5 x(sayac)= sayac^2 ; sayac=sayac+1; end x x= 1 4 9 16 25

3.3 WHILE dng komutu (fonksiyonu) Verilen ifadenin salanmasna bal olarak, dngsel ilemler yaplr. Aadaki biimde yazlr. while ifade deyimler end *** while dngs de if koul blou gibi end ile kapatlmaldr. rn, f(x) = x3-x2-x = 0 x=2; while x<50 disp(x); x=x^3-x^2; end Program kararsz almaya geebilir. Continue ve break komutlar ile kullanlmas nerilir.

19

rn, t=[-5,5,-4,4,-3,3,-2,2,-1,1]; for k=1:length(t) if t(k)<0 continue end t(k)= log10(t(k)); end t Program altrldnda, t deerleri aadaki biimde ekrana gelir. t= -5.0000 0.6990 -4.0000 0.6021 -3.0000 0 0.3010 -1.0000 0 for t=1:10 m=25-t^3 if m<0 break end n=sqrt(m) end m n Test iin aadaki deerler ekrana gelir : m= 24 n= 4.8990 m= 17 n= 4.1231 m= -2 m= -2 n= 4.1231

20 3.4 SWITCH koul komutu (fonksiyonu) Koula bal ilemlerin yaplmasnda kullanlr. Aadaki biimde yazlr: switch giri ifadesi (skaler veya karakter dizgesi) case ifadesi-1 deyim grubu-1 case ifadesi-2 deyim grubu-2 .. otherwise deyim grubu-n end 3.5 INPUT komutu (fonksiyonu) Kullanc tarafndan deer girilmesinde kullanlr. rn, >> x=input('Herhangi bir sayi giriniz: '); Herhangi bir sayi giriniz: 101 >>

21 4. FONKSYONLAR

4.1 Fonksiyonlar (Kullanc Tanml) MATLABde program ya da fonksiyonlarn ard alt programlar, fonksiyon programlar olarak adlandrlr. Fonksiyonlarn genel yazm format: function [out1,out2,... ,outN] = fonksiyon_ad (in1,in2,...,inM) rn: function [Anapara,faiz] = kredi(P,oran,sure) veya function P = fm_mod(V,T) verilebilir.

22

Kullancdan belirli bir formatta bir A matrisini girmesini ve kta girilen bu A matrisinin transpozesini (devriini) gsteren ve her bir adm ve aamay aklayan bir program yaznz. 1. Adm: MATLAB programn altrnz. Sonra MATLAB ekrannda File / New / M file komutuyla veya komut satrndan edit komutunu yazp Entera basarak etkileimli m dosyas yazmak iin Editor/Debugger ekranna geiniz. Tekrar belirtmeliyim ki herhangi bir metin (text) editrnde de (rnein Windowsun Notepad-Not Defteri metin editrn veya Word programn da kullanabilirsiniz) Matlab m dosya kodunuzu yazabilirsiniz. Ancak programn eitli aamalarn test etmek ve hatalar annda dzeltip yeni sonular grmek iin MATLAB programnn kendi editrn kullanmak daha etkin ve verimli bir yoldur. 2. Adm: Program kodunu yazalm. % ***** Bu program bir matrisin devriini bulur. % Kullanici bir A matrisini girer ve sonuta bu matrisin % transpozesi gsterilir. disp('Asagidaki formatta istediginiz bir kare matrisi giriniz.') disp(' ') disp(' [x x x; x x x; ... ] Burada x numerik deerli bir sayi olmalidir.' ) disp(' ') A = input('A matrisini giriniz: ') B = zeros(size(A)); % B matrisinin her elemanini % A ile ayni boyutta sifira ayarlanr. M = size(A,1); % A'nin satir sayisini bulur N = size(A,2); % A'nin stun sayisini bulur % Matrisin devriini alma islemi if N ~= M % Kare matris olmal disp('Satir sayisi stun sayisina esit degildir. Baska bir matris giriniz') break end for i = 1:M for j = 1:N B(j,i) = A(i,j); end end

4.2

Fonksiyon fonksiyonlar ( MATLAB Tanml) fzero: tek deikenli fonksiyonun zmn hesaplar. f(x)=0 , x=2 dolayndaki kk aada hesaplanr.

23 >> f = @(x)x^3-2*x-5; >> z = fzero(f,2) z= 2.0946 Ya da >> z = fzero(@(x)x^3-2*x-5,2) z= 2.0946 fplot: Dizi biiminde tanml fonksiyonun grafiini izer. fplot(fh,[-20 20]) ezplot: Fonksiyonun (f=0) grafiini izer.

rn >> ezplot('x^2-y^4')
x2-y 4 = 0 6

-2

-4

-6 -6 -4 -2 0 x 2 4 6

quad rnek, >> F = @(x)1./(x.^3-2*x-5); >> Q = quad(F,0,2) Q= -0.4605 ode23 feval

>> feval(@(x)x.^3-2*x-5,1) ans = -6

24 5. YAZDIRMA LEM Aklamas Tek karakter Ondalk gsterim (iaretli) stel gsterim (kk e harfiyle, rn: 3.1415e+00) stel gsterim (byk E harfiyle , rn: 3.1415E+00) Fixed-point notation %e ya da %f benzeri daha ksas, fazladan sfrlar konmaz. Ayn %g benzeri, ancak E byk harfi ile Sekizlik dzen (unsigned) String of characters Decimal notation (unsigned) Hexadecimal notation (using lowercase letters a-f) Hexadecimal notation (using uppercase letters A-F) Aklamas Backspace Form feed Yeni satr Yeni satr Tab boluk Ters bl ift trnak Yzde iareti

Gsteri m %c %d %e %E %f %g %G %o %s %u %x %X Karakter \b \f \n \r \t \\ \'' ya da '' %%

25 6. GRAFK GSTERM

MATLAB, sonularn sunumu iin yararl grafik gsterim elerine sahiptir. eitli eri ve yzey grafikleri bulunmaktadr. ki boyutlu izim iin kullanlan komutlardan bazlar: plot : Satr ya da stun matrislerden oluan verilerin grafiini izer. stem : Verilerin nokta nokta grafiini izer. Noktalardan yatay eksene doru birer izgi izer. fplot : Matematik bantsnn grafiini izer. plotyy : Verilerin iki y (dey) eksenli 2-B grafiini izer. loglog izilen grafikte eksenler logaritmik skala ile verilir. Grafik zerine ekil Ad, Eksen Adlar, Izgara izgileri ve dier yazlar aadaki komutlar yardmyla eklenir: title ekil Ad yazs eklenir. xlabel X Ekseni yazs eklenir. ylabel Y Ekseni yazs eklenir. text stenilen konuma yaz yazlr. gtext Fare kullanldnda ekil zerine yaz kar. grid Izgara izgileri gsterilir. y vektr, bir dizi veriyi iermektedir. Grafii izdirilirse, yatay eksen deerleri y dizisinin indislerinden oluur: plot(y)

6.1

ki Boyutlu Grafik izimi

x ve y vektrleri, yatay ve dey eksen deerlerini iermekte olan grafiin izimi iin plot(x,y) kullanlr. Tek eri iin, rnein plot(xdata, ydata, 'clm') Birden ok eri iin, rnein plot(x1, y1, 'clm1', x2, y2, 'clm2', ...) Plot komutu ile programa girilen iki boyutlu veriler (x ve y, veri iftleri) yardm ile iki boyutlu eriler izdirilir.

26

rn, Aada, x ve y deerlerinden oluan ikili verilerin grafii, krmz, noktal izgi stili ve kutu iaretli biimde gsterilmektedir. >> x = -5:5; >> y = x.^2; >> plot(x,y,r:s)
25

20

15

10

0 -5

-4

-3

-2

-1

27

rn, Aada, iki eriden oluan grafiin, ad Faz Deiimi, x ekseni x=sin(t) ve y ekseni y=sin(t+w) olarak adlandrlr. lk eri, krmz dz izgi ile ve ikinci eri yeil kesikli izgi ile gsterilir. (w=0.25 ve 0.50 alnr.) t=0:pi/100:2*pi; x=sin(t); y1=sin(t+.25); y2=sin(t+.5); plot(x,y1,'r-',x,y2,'g--') title('Faz Degisimi') xlabel('x=sin(t)') ylabel('y=sin(t+w)')
Faz Degisimi 1 0.8 0.6 0.4 0.2 y=sin(t+) 0 -0.2 -0.4 -0.6 -0.8 -1 -1

-0.8

-0.6

-0.4

-0.2

0 0.2 x=sin(t)

0.4

0.6

0.8

28

% Grafik izimi: zgara izgili x = pi/100:pi/100:10*pi; y =sin(x)./x; plot(x,y) grid

0.8
RGB deeri [1 1 0] [1 0 1] [0 1 1] [1 0 0] [0 1 0] [0 0 1] [1 1 1] [0 0 0] Ksaltmas y m c r g b w k Ak ad yellow Aklamas sar magenta Koyu yeil cyan red green blue white black

0.6
krmz yeil mavi beyaz siyah

Ak sar

izgi trleri, Sembo izgi stili l -Dz (default) Kesikli

0.4

29 : -. None Marker Specifier + O * . X 'square' or s 'diamond' or d ^ V > < 'pentagram' or p 'hexagram' or h None noktal eksen izgi yok Description Plus sign Circle Asterisk Point Cross Square Diamond Upward-pointing triangle Downward-pointing triangle Right-pointing triangle Left-pointing triangle Five-pointed star (pentagram) Six-pointed star (hexagram) No marker (default)

Fonksiyonlarn (y=f(x)) grafiinin izdirilmesi,

30

rn, cos(tan(pi*x)) fonksiyonunun x bamsz deikenine (parametresi) gre grafii aada verilmitir. >> x=(0:1/2000:1); >> plot(x,cos(tan(pi*x)))
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

plotyy komutu ile iki y eksenli 2-B grafik izdirilebilir.

31

rn, x bamsz deikenine (parametresi) gre iki farkl y eksenli grafii aada verilimitir.
>> >> >> >> >> >> >> >> t=0:pi/100:2*pi; x=sin(t); y1=sin(t+.25); y2=sin(t+.5); plotyy(x,y1,x,y2) title('Faz Degisimi') xlabel('x=sin(t)') ylabel('y=sin(t+)')
Faz Degisimi 1 1

0.5

0.5

y=sin(t+)

-0.5

-0.5

-1 -1

-0.8

-0.6

-0.4

-0.2

0 0.2 x=sin(t)

0.4

0.6

0.8

-1 1

Stem fonksiyonu ile grafik izimi:

32

rnek, x(t) biimindeki bantnn stem deyimi ile grafiinin izimi. (x=cos(2t)) >> tt=0:(1/40):1; >> xx=cos(2*pi*tt); >> stem(tt,xx);
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Plot deyimi kullanlsa idi.


1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Grafik yerleimi Subplot(satr adedi, stun adedi, ekil adresi)

33

>> subplot(2,1,1); plot(tt,xx); >> title('A sinusoidal wave of 1 Hz'); >> subplot(2,1,2); stem(tt,xx); >> title('A sinusoidal wave of 1 Hz');

1 0.5 0 -0.5 -1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1 0.5 0 -0.5 -1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

34 7. GRD IKTI LEMLER

MATLABde hesaplanan sonularn farkl ortamlara (yazc, bellek, v.d.) ya da dier programlara (MS Excel, media player, v.d.) aktarlr. Benzer biimde farkl ortamlardan, farkl formatlarda ya da farkl programlardan veri alnr. 7.1 Dosyaya Yazdrma ve Dosyadan Okuma MATLABde hesaplanan sonularn dosyaya yazdrlr. Kaytl dosyalarn ierii MATLABde okunabilir. Simg e w r a Alm Write Read (Default) Append Aklamas Dosya ieriindekilerin zerine yazlr. Kaytl dosyadan okunur Dosya ieriindekilerin sonuna eklenir.

Herhangi bir (x, y) deerlerini dosyaya (kaydet_xy.txt adl) yazmak iin aadaki program (kaydet_xy.m) rnek verilebilir. Burada, dosyaad string deerdir. function kaydet_xy(dosyaadi,x,y) % kaydet_xy, (x,y) biimindeki verileri kaydetmek iin kullanlr % x ve y vektorleri esit boyutta ise, kaydeder fd=fopen(dosyaadi,'w'); A(1,:)=x; A(2,:)=y; fprintf(fd,'%g %g\n',A); fclose(fd); (x, y) deerlerini dosyadan okumak iin aadaki program (yukle_xy.m) rnek verilebilir. function [x,y]=yukle_xy(dosyaadi) % dosyaadi icindeki (x y) biciminde kaydedilmis verileri yukler, % cagirir. fd=fopen(dosyaadi); A=fscanf(fd,'%g %g\n',[2,inf]); x=A(1,:); y=A(2,:); fclose(fd);

7.2

Excele Veri Alma ve Gnderme

MATLAB, dier uygulamalardan veri alabilir ve dier uygulamalara hesaplanan verileri gnderebilir.

35 rn, Excel den veri almak iin Degisken_ad = xlsread(dosya_adi) rn, Excel e veri gndermek iin xlswrite (dosya_adi, degisken_adi) Okunan Dosya Formatlar FORMAT AIKLAMASI Veri formatlar MAT MATLAB alma yeri CSV Virglle ayrlm DAT Formatl metin DLM Snrlandrlm metin TAB Tab ile ayrlm Tablolama formatlar XLS Excel alma sayfas WK1 Lotus 123 Bilimsel veri formatlar CDF Common Data Format FITS Flexible Image Transport HDF Hierarchical Data Format Video format AVI Video (film) Resim formatlar TIFF TIFF resmi PNG HDF PNG resmi HDF resmi KOMUTU IKTISI load csvread importdata dlmread dlmread xlsread wk1read cdfread fitsread hdfread aviread imread imread imread Deikenleri dosyaya double hassasiyetli dizi double hassasiyetli dizi double hassasiyetli dizi double hassasiyetli dizi double hassasiyetli dizi ya da hcre dizisi double hassasiyetli dizi ya da hcre dizisi cdf kaytlar hcre dizisi Ana ya da uzant tablo verileri hdf ya da hdf-eos dosyas MATLAB video dosyas Gerek renklere sahip, gri tonlamal ya da indeks (ya da daha kaliteli) resim dosyalar Gerek renklere sahip, gri tonlamal ya da indeks (ya da daha kaliteli) resim dosyas Gerek renklere sahip (ya da daha kaliteli) resim dosyas Ses verisi ve rnekleme hz (Sample rate) Ses verisi ve rnekleme hz (Sample rate) Ses verisi ve rnekleme hz (Sample rate)

Ses format AU NeXT/Sun tr auread SND NeXT/Sun tr auread WAV Microsoft wave tr wavread Daha fazla bilgi iin: help iofun help fileformats

36 8. SEMBOLK LEMLER

MATLABde analitik matematik ilemleri yaplabilir. Sembolik hesaplamalar olarak adlandrlan analitik ilemlerinin zmnde, MATLAB ierisindeki MAPLE ekirdeinden yararlanr. (Symbolic Math Toolbox) Fonksiyon ad diff(mat_ifadesi, degiskenadi) Aklamas Matematik ifadesi verilen bantnn trevini, belirtilen parametre iin hesaplar. int(mat_ifadesi, degiskenadi,basl_degeri, Matematik ifadesi verilen bantnn son_degeri) integralini, belirtilen parametre iin hesaplar. eval(mat_ifadesi) Matematik ifadesi verilen bantnn, verilen deerler iin saysal deerini hesaplar. expand(mat_ifadesi) Matematik ifadesi verilen banty geniletir. factor(mat_ifadesi) Matematik ifadesi verilen banty arpanlarna ayrr, ksaltr. collect(mat_ifadesi) Matematik ifadesi verilen banty bamsz parametreye gre basitletirir. simplify(mat_ifadesi) Matematik ifadesi verilen banty basitletirir. ezplot(mat_ifadesi,[bas_degeri, son degeri]) Matematik ifadesi verilen bantnn grafiini izer. solve(mat_ifadesi, bagimsiz _parametre) Matematik ifadesi verilen bantnn (f(x)=0) bamsz parametreye gre zmn hesaplar. dsolve(mat_ifadesi,basl_kosulu,bagimsiz_parametre) Matematik ifadesi verilen diferansiyel bantnn zmn hesaplar. Not: Aadaki rneklerde, deikenlerin tr, kullanlmadan nce syms fonksiyonuyla sembolik yaplmal. Ayrca, sembolik trdeki deikenler syms komutu ile listelenir. rnekler: x*y+x^2 ifadesinin trevini bulunuz.

zm: (Komut satrnda) x iin trevi

37 >>syms x y >>diff('x*y+x^2') ya da >>diff('x*y+x^2',x) y iin trevi diff('x*y+x^2',y) ya da fonksiyon deikene (g) atanrsa, g=x*y+x^2 diff(g) rnek, syms a b theta int(sin(a*theta+b),theta)

38

39 9. KAYNAKLAR 1. A NAN, Ders Notlar, 2007. 2. ml01_01_introduction.ppt (http://www.mathworks.com/support/training/courses/courses.shtml) 3. ml01_02 basics.ppt 4. ml01_03_graphics.ppt 5. ml01_04_programming.ppt 6. ml01_05_ fileio.ppt

RNEKLER 9.1 Yazm bilgisi (Syntax) Atama ilemi o 1

x=1 y=2 Z0-10 z=-10 toplam=5 degisken_adi1=2*exp(4)


Fonksiyonlar o 10 saysnn doal logaritmasn verir. o log(10)

45 derecenin sins deerini hesaplar sind(45)

Komutlar o Komut penceresi ekrann temizler o clc

Bellei temizler

clear ya da clear all o x ve y deikenlerini temizler

clear x,y o A karakteri ile balayan deikenleri listeler

who A* o Komut hakknda bilgi verir.rn, sin fnksiyonu

help sin o bugnn tarihini verir.

Date

SORU 1. 1. a adl bir deiken oluturun ve 5 deerini atayn.

2. b adl bir deiken oluturun ve 7 deerini atayn. 3. a ve b deikenlerinin arpmnn sonucunu c deikenine atayn. SORU 2. roots

Aadaki yntemlerle 2. dereceden bir polinomun ( > 0) kklerini bulunuz.

43

Diziler
o Dizi oluturmak ya da deer atamak. rn, 6 den balayp, 10 a kadar 1 er artan deerlerden oluan dizinin deerlerini ab deikenine atar.

ab=6:10 o Balang ile son deeri bilinen aral n elemana eit aralkla blerek, dizi elemanlarn oluturur. rn, balang deeri 0 ve son deeri 7 olan eit arala sahip, 4 elemanl diziyi oluturur. Deerlerini A matrisinin 1 no.lu satrna atar. Not, matrisin her bir satrnda eit sayda eleman bulunur. >> linspace(0,7,4) ans = 0 >> 2.3333 4.6667 7.0000

rn, eit aralkl diziler aada oluturulmutur: Artm deeri, ondalkl,


0.1:0.2:0.9 ans = 0.1000 0.3000 0.5000 0.7000 0.9000

Artm deeri, eksi deerli,


6:-1:1 ans = 654321

A(1;:)=linspace(0,7,4) o A matrisine 3 nolu satr ekler (atar).

A(3,:)=[11 22 33] o A matrisini 1 no.lu satrn tamam ile siler.

A(1,:)=[] o A matris dizisinin ift no.lu stunlarn verir. rn, 2,4,6 ve 8

A(2:2:8,:) Matrisler o 4 satr ve 5 stunu bulunan, aada verilen A matrisini oluturur.

1 6 1

2 7 1

3 8 1

4 9 1

5 10 15

1 1 6

2 1 7

3 1 8

4 1 9

20

A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;... 16 17 18 19 20;21 22 23 24] o Hilbert dizi elemanlarndan oluan matrisi verir. rn,5*5 boyutunda.

HILBERT(5) o Elemanlarnn tamam 1 olan matrisi verir. rn, 2*2 boyutunda, 1 deerlerinden oluan matris diziyi A deikenine atar.

A=ones(2) o Elemanlar 0 ve 1 arasnda deerlerden oluan matrisi verir. rn, 3*4 boyutunda.

rand(3,4) o Adreslenen matris elemanlarn verir. rn, A matrisinin 9, 14, 10 ve 15 no.lu elemanlarndan oluan 2*2 boyutundaki matrisi oluturur.

A([9 14;

10 15])
o A matrisinin tersini (inversi) hesaplar.

inv(A)

rnek 1) A=[5 -3 8; 9 2 10]; B=[10 7 4 ; -11 15 1]; A-B 4. 5. 1 ile 10 arasndaki saylar ieren dizi1adl bir dizi oluturun (ki farkl yntem kullann).
1:10 ans =

1 2 3 4 5 6 7 8 9 10 1:1:10

6. dizi1 dizisindeki elemanlarn toplamn hesaplayp, sonucunu ToplamDz1 deikenine atayn. 7. 8 elemandan oluan dizi2 adl bir dizi oluturun. 8. dizi2 dizisin elemanlar arasndaki deiimi diff fonksiyonunu kullanarak hesaplayn, sonucunu DiffDz2 deikenine atayn. 9. dizi2 ve DiffDz2 dizilerini grafikte gsteriniz (Workspace penceresinden yararlann).

Bilinen A matrisine, B matris ve V satr vektr dizilerinden elemanlar atar.

Dizileri oluturma:
A=rand(4,6) B=[5:5:30;30:5:55;55:5:80] V=99:-1:91

Sonular:
A =

0.9501 0.2311 0.6068 0.4860

0.8913 0.7621 0.4565 0.0185

0.8214 0.4447 0.6154 0.7919

0.9218 0.7382 0.1763 0.4057

0.9355 0.9169 0.4103 0.8936

0.0579 0.3529 0.8132 0.0099

B =

5 30 55

10 35 60

15 40 65

20 45 70

25 50 75

30 55 80

V =

99

98

97

96

95

94

93

92

91

Dizi ilemleri:
A([1 3 4 5],3:6)=[B([1 2],1:4);V(5:8);B(3,2:5)]

Sonucu A =

0.9501 0.2311 0.6068 0.4860


0

0.8913 0.7621 0.4565 0.0185


0

5.0000 0.4447 30.0000 95.0000


60.0000

10.0000 0.7382 35.0000 94.0000


65.0000

15.0000 0.9169 40.0000 93.0000

20.0000 0.3529 45.0000 92.0000

70.0000

75.0000

SORU 1. : Matris gsterimi 7*7 lik matrisin 1 ile 3 no.lu satrlar ve 1 ile 4 no.lu stunlar arasndaki deerlerini 0 yapnz. zm: -Magic dizisinden oluan 7*7lik matrisi oluturun. -Elemanlar 0 olan 3satr,4 stundan oluan matrisi oluturun. -Yeni matrisi 3*4lk, eski matrisin 7*7lik 2-4,2-5 aralna ataynz. a=zeros(3,4) B=rand(7,7) B(1:3,1:4)=a Ya da B=rand(7,7) B(1:3,1:4)= zeros(3,4)

SORU 1.

: Diziler Dik genin bir kenar 11cm, hipotens 21cmdir.

KENAR 2

KENAR 3 KENAR 1

a) Komut satrnda ( komutla), dier kenarn uzunluunu hesaplaynz. b) Hesaplanan deer ve acos(x) fonksiyonu yardmyla, bu kenarn hipotensle arasndaki asnn deerini komut satrnda hesaplaynz. zm a)
>> KENAR=[11,0,21]; >> KENAR(2)=sqrt(KENAR(3)^2- KENAR(1)^2); >> KENAR(2)

ans =

17.8885

b)
acos(KENAR(1)/ KENAR(3))

ans =

1.0195

SORU 2. Soru 2) 0 dan pi ye kadar pi/6 lk alarla hesaplanan cos deerlerini hesaplaynz. Sonucunu bir diziye ataynz. Dizinin ilk satr a deerleri ve ikinci satr hesaplanan deeri iersin.

zm: aci=0:pi/6:pi; y=cos(aci); tablo=[aci;y]

SORU 3. Merkezden uzakl 10 birim olan ve yatay eksenle 30 drc yapan noktann, yatay ve dey bileenlerini hesaplaynz.

zm: >> R=10; >> DRC=30; >> RAD=P/180; >> ACI=DRC*RAD; >> BILX=R*COS(ACI); >> BILY=R*SN(ACI); >> BILESENLER=[BILX BILY] BILESENLER = 8.6603 >> 5.0000

RN D=[1 4 9; 16 25 49]; H=SQRT(D)

SORU 4. Srtnme katsays bir ktleyi hareket ettirmek iin uygulanan kuvvetten (F) hesaplanabilir. Srtnme katsays, kuvvet ve ktle biliniyorsa aadaki gibi hesaplanr: =F / (m*g) ; g=9,81 m/s2) Yaplan 6 deneyin sonular aadaki tabloda verilmitir. istenilen: herbir deney iin srtnme katsaysn ve en son olarak ortalama srtnme katsays deerini hesaplaynz. DENEY NO m [kg] F [N] 1 2 12,5 String deikenler Deikenin deeri, harf ve saylardan oluan string zellikli olabilir. String deerler arasnda aritmetik ilem yaplmaz, olduklar gibi alnr.Atama srasnda string deer tek trnak ierisinde girilir. String olarak Hogeldiniz szcn deikene ataynz. DEGISKEN=Hogeldiniz. >> DEGISKEN='Hogeldiniz !' DEGISKEN = Hogeldiniz ! >> Drdnc karakterini Byk harf G ile deitiriniz. >> DEGISKEN(4) ans = g >> DEGISKEN(4)='G' DEGISKEN = HoGeldiniz ! >> Algoritma 2 4 23,5 3 5 30 4 10 61 5 20 117 6 50 294

ki saynn toplamn hesaplayan programn algoritmas ve ak diyagramn yaznz. Algoritmas, 1. Bala 2. Saylarn girilmesi ( Kullancdan istenir) 3. ki saynn toplama ileminin yaplmas (TOPLAM=SAYI1+SAYI2) 4. lem sonucunun grntlenmesi (TOPLAM) 5. Son Ak diyagram, BALA

Saylar girin

ki saynn toplamnn hesaplanmas

Saylarn toplamnn grntlenmesi

SON

MATLAB fonksiyonlar SORU 1. Sqrt rn, Dizi deerlerinin karekklerini hesaplaynz. >> D=[1 4 9; 16 25 49]; >> H=sqrt(D) H= 1 4 >> SORU 2. : rand SORU 3. rand komutu ile elemanlarnn deerleri 0 ile 100 arasnda deien 21 elemanl diziyi oluturun. (rand 0 ile 1 arasnda ondalkl say retir) zm 100*rand(21,1) SORU 4. : sort rand komutu ile elemanlarnn deerleri 0 ile 100 arasnda deien 10 elemanl diziyi oluturun. Bykten ke doru sralayn. (rand 0 ile 1 arasnda ondalkl say retir) zm sort(100*rand(10,1)) SORU 1. MLAB fonks,roots Aada verilen ifadenin kk deerlerini hesaplaynz. f1(x)=3x2-2x+4 SORU 2. MLAB fonks, roots =b2-4ac x1,2= (-b() )/2a a) Program yazarak b) Bu ilemi yerine getiren komutu kullanarak zm a) -kinci dereceden denklemin katsaylarn giriniz, a,b ve c -X1=( -B+sqrt(-B^2- 4*A*C) )/2/A -X2=( -B-sqrt(-B^2+ 4*A*C))/2/A b) KATS=[1,2,1]; 2 5 3 7

roots(KATS)

AKI DYAGRAMI
SORU 1. Karar verme a. Belirli A, B, C, D ve E konumlar arasnda ulam. Seferler: A-B, A-E,

A A B C D E M A-M HAT A A-B

B A-B HAT A B-C

C A-M, CM B-C HATA C-D

D A-M, DM B-M, DM C-D HATA D-E

E A-E

M A-M B-M C-M

D-E HAT A E-M

D-M E-M HAT A

B-M

C-M

D-M

A B

E ehir Merkezi

C D

SORU 2.

Ak diyagram

Girilen dizideki elemanlarn en byk deerini hesaplayan programn algoritmasn yaznz ve ak diyagramnda gsteriniz. zm Algoritma 1. Diziyi (A) gir. 1.1. Diziyi (A) gir. 1.2. Dizi boyutunu (N) gir. 2. Dng iin deerleri tanmla. 2.1. Saya deikenini (SAYAC) olutur. lk deeri olarak 1 ata. 2.2. Geii deikeni (GECICI) olutur. lk deeri olarak dizinin ilk deerini A(1) ata. 3. Dng ierisinde karlatrma yap.

3.1. Koul: Geici deer dizinin bir sonraki elemanndan bykse (GECICI < A(SAYAC+1)), geici deer olarak bu deeri ata. (GECICI = A(SAYAC+1)) 4. Dng bitince, dizinin en byk deeri olarak GECICI deerini yazdr. Ak diyagram

BAL A

Diziyi (A) ve boyutunu (N) gir

SAYAC =1 GECICI=A(SAYAC)

GECICI< A(SAYAC+1)

H SAYAC =SAYAC+1

GECICI=A(SAYAC+1)

E SAYAC<N

H Dizinin en byk deerini (GECICI) yazdr

SO N

SORU 3.

rn: Ak diyagram

Girilen yln artk yl olup, olmadn hesaplayan program yaznz. (Algoritma ve ak diyagram ile birlikte) Algoritmas 1. Yln girilmesi 2. Karlatrma yaplmas 2.1. Koulu: Yl 4e tam blnebilir ise, Artk yl; deilse, Sradan yl 3. Sonucun yazdrlmas. Ak diyagram

BAL A Yl (YIL) giriniz

Mod (YIL,4)= 0

Artk yl yazdr

Sradan yl yazdr

SON

M-FILE FONKSYONLAR SORU 1. rn-if fonksiyonu Girilen saynn aada verilen aralklarda tanml deerleri hesaplayan program (kosul01.m) m-file biiminde yaznz. Aralk a<50 50a<100 a100 zm
a=input('Bir a degeri giriniz: '); if a < 50 s = 5*a; elseif a < 100 s = 2*a; else s = a/2; end s

Deer i 5A 2A A/2

SORU 2.

rn-if fonksiyonu

Girilen saynn aada verilen aralklarda tanml deerleri hesaplayan program (kosul02.m) m-file biiminde yaznz. Aralk a100 50a<100 A<50 zm
a=input('Bir a degeri giriniz: '); if a >=100 s = a/2; elseif a >=50 s = 2*a; else s = 5*a; end s

Deer i A/2 2A 5A

SORU 3.

rn-if fonksiyonu

A deerini girin. A 1000 koulunu salamas durumunda, Girdiiniz say 1000e eit ya da kk yazdrn.

zm
a=input('Bir a degeri giriniz: '); if a <= 1000 s='Girdiiniz say 1000 e eit ya da 1000 den kk' end

rn-if fonksiyonu

A deerini girin. A 1000 koulunu salamas durumunda, Girdiiniz say 1000e eit ya da kk yazdrn. Koulun salanmamas durumunda, Girdiiniz say 1000den byk yazdrn.

zm
a=input('Bir a degeri giriniz: '); if a <= 1000 s='Girdiiniz say 1000 e eit ya da 1000 den kk' else disp('Girdiiniz say 1000 den byk') end a=input('Bir a degeri giriniz: '); if a <=100 & ~mod(a,2) disp('ift say, <=100') end

SORU 4.

rn-if fonksiyonu

A deerini girin. A 100 koulunu ve ift say koulunu salamas durumunda, Girdiiniz say 100den kk, ift say yazdrn.

zm
a=input('Bir a degeri giriniz: '); if a <=100 & ~mod(a,2) disp('ift say, <=100') end

SORU 5.

rn-for fonksiyonu

1den 10a kadar olan saylarn karesini hesaplayan ve sonucunu bir diziye (A) atayan program (dongu01.m) yaznz. zm
for say=1:10 A(say)=say^2; end

SORU 6.

rn-while fonksiyonu

1den 10a kadar olan saylarn karesini hesaplayan ve sonucunu bir diziye (A) atayan program (dongu02.m) yaznz. zm
say=0; while say<=10 say=say+1; AA(say)=say^2; end

SORU 7.

mfile,fonksiyon

Dorusal denklem sistemini zen (lincoz) program yaznz. 2x1 + 1= 50 12x1 + 7x2 + 5= -17 x1 - 3x2 -1= -26 zm
% Lineer denklem sistemini cozer % p katsayilar matrisi % b esitiligin sag taraf deerleri sutun matrisi % Cozum, x sutun matrisi p=[2 0 1;12 7 5;1 -3 -1] b=[50 -17 -26]; b=b'; x=linsolve(p,b)

SORU 1. M-file -0,146x f(x)=667,38(1-e -x) ifadesiyle verilen denklemin alt ve st deeri bilinen aralktaki kkn bulan program yaznz. zm
% kiye Blme Metodu % 8 Mart 2006 %format long

ea=1; xrold=1; xa=input('\n Alt degeri giriniz xu=input('\n Ust degeri giriniz '); ');

while ea

> 0.001;

xr=(xa+xu)/2;

a = ((667.38/xr)*(1-exp(-0.146*xr))-40); b = ((667.38/xa)*(1-exp(-0.146*xa))-40);

if a <= ea ea = abs((xr-xrold)/xr)*100; end

test=a*b;

if test < 0 xu=xr;

elseif test > 0 xa=xr;

else ea=0;

end end xr

Alt degeri giriniz 10

Ust degeri giriniz 50

xr =

14.7469

SORU 2. : M-file Editor penceresinde, ornek02.m adl bir program yaznz. Programda, kullancdan istenilen saynn karesini yazdrnz.

SORU 3. : M-file Dng kullanlan rnek soru. Dngler, bir dizi veriyi tekrar tekrar girmeye gerek kalmadan hesaplama yapmak iin kullanlr. Soruda, belirli bir blgede bulunan karn zamanla (20 gn boyunca) eriyen ve geride kalan ksmnn hesaplanmas istenmektedir. Kurulan modelde, balangta 100 birim kar bulunduu ve hergn % 20sinin eridii varsaylmaktadr. Hesaplamay eriyen.m adl dosyaya yaznz. zm:
Kar = 100; Degisim = 0.2; for i=1:20; % Balangtaki kar miktar % Erime hz % 20 gnlk hesaplanr % Karn eriyen ksm

Eriyen = Degisim*Kar;

Kar = Kar - Eriyen; % Karn geride kalan ksm disp([num2str(i) '.gn sonunda num2str(Kar)]); end Eriyen=' num2str(Eriyen) ' Kar= '...

M-file ile program yazm


rn: o Klavyeden girilen cmlenin karakter saysn ekranda gsteren program yaznz. Scaklk birimleri arasnda birim dnm. (C/100)=((K-273)/100)=((F32)/180) Konumu (x,y) verilen iki nokta arasndaki uzakl hesaplayan program yaznz. ( uzaklk2=(x2-x1)2 + (y2-y1)2 )

79 10. SIMULINK modl


SIMULINK yazlm ile dinamik sistemler incelenir. Bunun iin, szkonusu sistem modellenir, simle edilir ve analizi yaplr. Model tabanl programlamann merkezinde model bulunur. Simlasyon ile model altrlr ve sonular elde edilir. SIMULINK ile taslaktan dorudan programlamaya geilebilir. Birok endstri dalnda mhendislik problemlerinin zmnde kullanlr: Havaclk, savunma, otomotiv, haberleme, elektronik, tbbi cihazlar tasarm.

SIMULINK, programlama iin blok diyagramlar kullanr. Bunun oluturulmasnda grafik arayzden yararlanlr.

Modelin oluturulmas, 1) Sistemin tanmlanmas Sistemin ayrlabilirse, alt bileenleri ile oluturulmas. 2) Sistemin alt bileenlerinin tanmlanmas

80 a. Parametreler: Sabit deerler b. Durum deikenleri, (Parametreler): Zaman ile deien deerler c. Sinyaller: Simlasyon sresince Girdi/kt deerleri 3) Sistemin denklemler yardmyla matematik modelinin kurulmas Analitik, mantk, diferansiyel, diferansiyel fark denklemleri ile. 4) SIMULINK blok diyagramnn oluturulmas (Buradan balayarak, SIMULINK ierisinde yaplr.) Sistem ve alt bileenlerin SIMULINK blok diyagramlar ile oluturulmas. 5) Simlasyonun altrlmas Sistem girdilerinin etkileimli deitirilmesi ile simlasyonun farkl deerler iin altrlmas. 6) Simlasyon sonularnn doruluuna baklmas Sistemin zelliklerinin simlasyon sonular ile tanmlanmasnn kontrol.

10.1 Model Dzenleme (Model Editor) Dinamik sistemin SIMULINKde hesaplanmas iki aamadan oluur: Blok diyagram ile sistemin modellenmesi ve kullanc tarafndan belirlenen balang ve biti sreleri iin simlasyonun altrlmas.

SIMULINK ktphane taraycsnn (Library Browser), altrlmas iin, MATLAB komut penceresinde, simulink girilir. Ya da Ara ubuundaki ikonuna baslr. Ya da

MATLAB Start butonu, Simulink ve Library Browser yolu izlenir. SIMULINKde model dosyas .mdl uzantldr. SIMULINK Model Penceresi (Model Window), Simulink modeli yer alr. Blok diyagram bu arayzde oluturulur. Dinamik sistemin modellendii blok diyagram esas olarak, bloklar ve izgilerden (sinyaller) oluur. Blok diyagram modellerinin temelleri Geri Beslemeli Kontrol Teorsi ve Sinyal leme (Feedback Control Theory and Signal Processing) mhendislik alanlarna dayanr.

81 Model grnm ksayollar Modelin grntlenmesi iin kullanlan klavye ksayollar, Yaplan Ksayol (MicrosoftWindows) Yaklatr R Uzaklatr V Normal Boyut 1 Sola kaydr D ya da Ctrl+sol ok Saa kaydr G ya da Ctrl+sa ok Yukarya kaydr E ya da Ctrl+yukar ok Aaya kaydr C ya da Ctrl+aa ok Seimi ekrana uydur F Diyagram ekrana uydur Boluk tuu Fare basl kaydr P ya da Q basl fare srklenir Kaydr/Yaklatr gemiinde geri git B ya da stKarakter+Sol ok Kaydr/Yaklatr gemiinde ileri git T ya da stKarakter+Sa ok Seimi sil DEL ya da BACKSPACE Seimi kaydr Yn oklar Blok dzenleme Ksayollar, Yaplan Bir blou se Birden fazla blou se Baka pencereden blou kopyala Blou kaydr Baka pencereden blou ta Baka pencereden bloun aynsnn kopyalanmas Bloklarn birbirine balanmas Bloklarn birbirinden ayrlmas Seilen alt sistemin almas Seili alt sistemin asl (Parent) sistemini grmek ekil: Fare ve klavye ksayollar
1-

Ksayolu Farenin sol tuu stKarakter+ Farenin sol tuu Blok srklenir Blok srklenir Blok Ctrl+ Farenin sol tuuna baslarak blok srklenir Ya da Farenin sa tuuna baslarak blok srklenir Farenin sol tuuna baslarak Shift baslarak blok srklenir Ya da Farenin orta tuuna baslarak blok srklenir Enter Esc

SIMULINKde sistem blok diyagramlar ile modellenir. Ayrca, sistemler alt sistemlerden oluabilir. Byle bir yap, modelin tmnn daha kolay anlalmasna olanak verir.
Model penceresinde yalnzca basit sistem grnr. Alt sistemler istenilince alr. Yalnzca, balantl alt sistemlerin balants korunur. Ana ve alt sistemin blok hiyerarileri ayr ayr grlebilir.

82

Modelin derlenmesi, Model Editor penceresinde, model ak durumda iken Start, Simulation yolu izlenir. SIMULINKde yeni model oluturma, Library Browser penceresinde ara ubuundan New butonuna baslr ya da File, New, Model yolu izlenir. Bloklarn balanmas iin bir blok seilir. Dier bloa Ctrl basl iken sol tu tklanr. Bylelikle, her iki blok birbirine balanm olur. Ya da bloun zerine gelince iareti art biimine gelir. Sol tu basl tutulur. Dier bloun giri portunda serbest braklr. Blok balantsndan yan balant oluturulmas iin balant hatt zerinde iken Ctrl basl iken sol tu basl tutularak hedef blokta serbest braklr. Ya da Ctrl tuuna baslmakszn srkleme sa tu ile yaplr. Alt sistemin oluturmas iin Library Browser penceresinde Ports & Subsystems, Subsystems yolu izlenir. Ya da bloklar seilerek, Edit, Create Subsystem yolu izlenir.

83 rnek 1 F(z) = 0, biimdeki aadaki denklem sistemini SIMULINK ile znz. z2 + z1 - 1 = 0 z2 - z1 - 1 = 0

84

Kaynaka,
sl_using.pdf, MATLAB documentation

You might also like