Professional Documents
Culture Documents
Marmara niversitesi
Teknik Eitim Fakltesi / Elektrik retmenlii
MATLAB
MATLAB; (MATrix LABoratory); ilk defa 1985de C.B
Moler tarafndan matematik ve zellikle de matris esasl
matematik ortamnda kullanlmak zere gelitirilmi
etkileimli bir paket programlama dilidir.
lk srmleri FORTRAN diliyle (Linpack ve Eispack
projeleri ile) hazrlanm olmakla beraber son srmleri
(1999 yl itibariyle 5.3 dr) C dilinde hazrlanmtr.
lk gelitirildii yllarda bilim adamlarnn problemlerinin
zmlerinde matris temelli teknikleri kullanarak
yardmc olmaktayd.
MATLAB
MATLAB
mhendislik
alannda
(hesaplamalarnda); saysal hesaplama, veri
zmleri ve grafik ilemlerinde kullanlabilecek
genel amal bir programdr.
Matlab; Mathworks firmas tarafndan gelitirilen
ve datlan komut temelli bir paket programdr.
(Web adresi: http://www.mathworks.com, E-mail:
info@mathworks.com )
Bulunulan dizin
(CurrentDirectory):
Matlab dosyalarnn kaydedildii, yklendii
dosyalarn bulunduu klasr (dizin), varsaylan
klasr olarak belirlemeye yarar.
Aksi belirtilmedike bu klasr C:\Matlab\work
gibi bir klasrdr.
Yardm (Help):
MATLAB hem yeni balayanlara hem de
uzmanlam olanlara ok pratik bir yardm da
salamaktadr.
zel bir komut hakknda bilgi edinmek iin
ekrandan "help komut ad" komutu girilir;
burada "komut ad" ilgilendiiniz MATLAB
fonksiyonunu temsil eden komutlardr.
Kullanc, belirli bir konuda hangi komutlar
kullanabileceini bilmek isterse "lookfor kavram
ad" komutunu girmesi yeter.
Deiskenler:
MATLABda, herhangi bir tip tanmlamas veya boyut
ifadesine gerek yoktur.
MATLAB, yeni bir deiken ismi ile karlatnda,
otomatik olarak ans isminde bir deiken oluturur ve
uygun bir bellek miktar ayrr.
Eer deiken zaten varsa, MATLAB gerekli bir bellek
ayrdnda ierii deiir. rnein, ani_akim=5
ani_akim diye isimlendirilen 1x1 matrisi olutur ve 5i
ykle.
Deiken isimleri; bir harften, saydan veya alt izgiden
oluur. MATLAB, sadece deiken isminin ilk 31
karakterini kullanr. MATLAB, byk ve kk harfe
duyarldr, A ve a deikenleri ayn deildir.
Saylar:
MATLABda saylar yaygn olarak kullanlan onluk
tabanda ifade edilirler.
Bunun yan sra onluk tabanda stel olarak veya i
veya J olarak kompleks say biimlerinde de ifade
edilebilirler. rnek olarak, 3, -99, 0.0001,
9.6397238, 1.60210e-20, 6.02252e23, 1*i, 3.14159*j, 3e5*i, saylar gsterilebilir.
Saylarn duyarlln belirtmek iin kullanlan eps
says onluk tabanda 16 basamakl olarak
gsterilmekte ve yaklak olarak 10-308 den 10+308 e
kadar olan tm saylar kapsayabilmektedir.
Operatorler(saysal islemciler):
Matematiksel ifadeleri oluturmak iin operatrler
ve
nceden
tanmlanm
sembolleri
kullanabilirsiniz. Bir deyim aada olduu gibi
deer atanarak belli bir deer iinde saklanabilir.
>> x=a + b
Bu ifadede a ve b nin topland ve x deikeni
iinde sakland belirtilmektedir. Bu atama
ilemini; a iindeki bir deerin b iindeki bir deerle
toplanarak bu toplamn x deikenine atanaca
seklinde yorumlamak mmkndr. Eer bir atama
ilemi bu ekilde yorumlanacak olursa, aada
verilen bir MATLAB bildirimi de geerli olur.
Fonksiyonlar:
MATLABn ok gl ve ok kapsaml bir fonksiyon yaps vardr.
MATLABda baz fonksiyonlar daha nceden yerletirilmi bazlar
ise sonradan dardan yerletirilmi M-dosyalarndan oluan
MATLAB ktphanelerinde tanmlanmlardr. Bunun yannda zel
uygulamalar iin kullanclarn kendi fonksiyonlarn yazarak kendi
ktphanelerini oluturmas mmkndr. Kullanc tanml
fonksiyonlar da dier fonksiyonlar gibi kullanlabilirler.
MATLABda mevcut analitik fonksiyonlar genel olarak aadaki
kategorilere ayrabiliriz.
1. Temel matematiksel fonksiyonlar
2. zel fonksiyonlar
3. Temel matrisler ve matris ilemleri
4. Matrisleri arpanlarna ayrma
5. Veri analizleri
6. Polinomlar
7. Diferansiyel denklem zmleri
6. realmax; en byk kayan nokta (floating point) says (2)e1024 yani 2e1024 den daha kk
7. inf, sonsuz (infinity) yani realmaxdan daha byk bir say
8. NaN; say deil (Not-a-Number)
FORMAT KOMUTU
Matlab programlama dili; deerlerin saysal
formatn format komutu ile kontrol
etmektedir. Bu komut saylarn ka hane yani
ka ondalkl veya dier bir deyile ka dijit
gsterileceini
belirler.
Matlabde
tm
hesaplamalar,
double
precision
da
yaplmaktadr. Temel format komutlar aada
aklanmtr.
1.
2.
3.
4.
5.
6.
TRGONOMETRK VE HPERBOLK
FONKSYONLAR
Matlabda trigonometrik fonksiyonlarda derece yerine
radyan kullanlmaktadr. Ksaca 2=360 veya =180
derecedir. rnein; derece cinsinden sin(30)=0,5 tir.
Oysa bu ilemin sonucu matlabda
>>sin(30)
ans=
-0.99 eklinde verir.
Genel kullanm derece cinsinden olduundan ya radyan
(pi sabitini kullanarak) cinsinden belirtmemiz ya da
/180 ile arpmamz gerekmektedir. Programlama
blmnde rnein direkt girilen saynn derece olarak
alglanp deerini veren fonksiyonda radyan cinsinden
ay /180 ile arpmak daha pratik olacaktr.
YUVARLAMA LEMLER
Matlab programlama dilinde istatiksel ve matematiksel baz
uygulamalarda yuvarlatma ilemleri de kullanlmaktadr. Bu
ilemleri yapan fonksiyonlar aada verilmitir.
1. Fix; sfra doru yuvarlatma ilemi yapar.
2. Floor; - sonsuza doru en yakn tamsayya yuvarlama yapar.
3. Ceil; + sonsuza doru en yakn tamsayya yuvarlama yapar.
4. Round; en yakn tamsayya yuvarlama yapar.
Yuvarlama komutlar ile rnek olarak;
>>fix(-13.2)
ans=
-13
>>flor(-13.2)
ans=
-14
gibi gzlemlenir.
DZLER
Matlabn en temel ilem eleman ve veri tipi
dizilerdir. (arrays). Dizi, en genel matematiksel
tanm ile nmerik ve metinsel deerler
topluluudur. Matlabda her ey bir dizi olarak ele
alndn daha nceden bahsetmitik. Matlab da
tip dizi ifadesi bulunmaktadr.Bunlar;
1. Reel ile kompleks saylar ifade eden ift kat veya
nmerik diziler (double or numeric array).
2. Nesneleri ve metinsel dizgileri ifade eden hcre
diziler (cell array)
3. Genelletirme ve eitli tipleri ifade eden nboyutlu dizilerdir (n-dimensional array).
VEKTR LEMLER
Vektrler; mx1 yada 1xn boyutlu dizilerdir. Mx1 boyutlu diziye
stun vektr denilir ve eleman says m tanedir. 1xn
boyutlu diziye ise satr vektr denir. Matlab da vektrleri
oluturmann yolu vardr.Bunlar ;
1. Daha nceden bahsedildii gibi keli parantez
kullanma
(direkt
olarak);
Vektr
elemanlar
birbirlerini, sabit miktarda artan yada azalan bir deerle
takip ederler. ki nokta st ste (:) ileci (colon operator) bu
tr ilem iin en temel yntemdir. Genel olarak format;
f=ilk deer : deiim miktar : son deer
gibidir. Deiim miktar belirtilmezse dizi ilk deerden son
deere birer olarak artarak oluturulur. Operatorden nce
yada sonra grnt netlii iin boluk verilebilir.
MATRS LEMLER
Matlabda matris oluturmak iin vektrlerde
olduu gibi temel yol vardr. Bunlar;
1. Keli
parantez
kullanma
(direkt
olarak);
matris
elemanlar
kullanc
tarafndan keli parantez ierisinde satr
elemanlar arasnda boluk stnlar arasnda
ise noktal virgl ile olarak girilebilir. rnein;
>>a=[1 2 3 ; 4 5 6 ; 7 8 9] eklinde girilir. Bu
durumda a matrisi 3x3 boyutunda matristir.
eye
fonksiyonu
ile
birim
matrisler
oluturulabilir. Bilindii gibi birim matris birinci
diyagoneli bir (1) olan dier tm elemanlar sfr
(0) olan matristir. Genelde I ile ifade edilir.
Genel yazm format ;
F=eye(m,n) yada f=eye([m,n] eklindedir.
Burada m ve n deerleri daha nceden de
belirtildii gibi matrise ait satr ve stun
saylarn temsil etmektedir. eye(t) ise boyutu
txt olan kare matris retir. Birim matris genelde
kare matris olarak kullanlr.
4.
MATLABDA PROGRAMLARIN
HAZIRLANMASI
Matlabta algoritmalar bilinen programlar
hazrlamak ve altrmak ok kolaydr. Ayrca
FORTRAN, BASIC, C ve PASCAL gibi
programlama dillerinde hazrlanm programlar
MATLAB iin uyarlamak da mmkndr. Bu
durumda ounlukla ayn program iin daha az
sayda satr kullanmak yeterlidir. Matlabta
oluturulan M-dosya paketlerini kullanmak
suretiyle programlamay ok ksa tutmak
mmkndr.
M- DOSYALARI
Matlabn kendisi byk oranda herhangi bir program iinde
arlp kullanlabilen altprogramlardan ibaret hazr Mdosyalarndan olumutur. Matlabta M-dosyalar okunabilir
ve yazlabilir TEXT dosyalardr. Bu nedenle Matlaba ait Mdosyalarnn yanllkla deitirilmemesi gerekir. Aksi
takdirde orijinal grevini yerine getiremez. Bu nedenle de bir
programc kendi hazrlad M-dosyalarn kendine ait bir alt
dizinde saklanmas tavsiye olunur.
Matlabta altrlmak zere programlarn yazlp sakland
M-dosyalar iki biimde hazrlanabilir. Birincisi, uzun
komutlar dizisi biiminde yazlan dz yaz (script) Mdosyalardr. kincisi ise Matlabn kendi M-dosyalarna
benzer biimde hazrlanan fonksiyon dosyalar herhangi bir
ana program iinde bir altprogram gibi kullanlabilirler.
Dz yaz dosyalar:
Bir dizi komutlardan ibaret dz yaz dosyalar, Matlab
iinde arldnda dosya iinde bulunan komutlar
otomatik olarak altrlr. Bylece her seferinde
klavyeden komutlar tekrar girmeye gerek kalmaz. Bir
dz yaz dosyas iinde yer alan bildirimler Matlab
alma ortamnda yer alan verileri iletir ve
sonulandrr.
Dz yaz dosyalar, Matlab ortamnda etkileimli biimde
allmayacak uzun komutlar dizisi gerektiren
analizlerin icras, problemlerin zm veya tasarm
yaplmasnda kullanl olmaktadr.
Dz yaz dosyalarnn yazm iin Matlabn dahili
editr kullanlabilir. Bu editr altrmak iin Matlab
komut satrnda edit komutunu yazmak gerekir.
Fonksiyon dosyalar:
Fonksiyon dosyalar ilk satrda function kelimesi
bulunan .m uzantl dosyalardr. Matlab iinde
bulunan tm M-dosyalar fonksiyon biiminde olup
bunlar hazrlanan herhangi bir program iin
altprogram grevi grrler. Dier bir deyile Pascal
ve benzeri programlama dillerinde kullanlan
altprogramlar (subroutines) gibi ilem grrler.
Fonksiyon dosyalarnda yer alan tm deikenler,
dz yaz dosyalarnda olduu gibi Matlab alma
ortamnda grntlenemez ve gerektiinde baka
bir bildirimde kullanlamazlar.
FONKSYON FONKSYONLARI
Matlabta normal fonksiyon dosyalar yannda
kullanc tarafndan hazrlanan fonksiyonlar
zmek amac ile kullanlan fonksiyonlar da
mevcuttur. Bunlar fonksiyonlar aran ve zen
fonksiyonlar olduundan fonksiyon fonksiyonu
adn alr. Dier taraftan dorusal olmayan saysal
hesaplama yntemleri olarak da bilinirler.
Matlab iinde yer alan fonksiyon fonksiyonlar ve
kullanm amalar aada verilmitir. Ayrca
OPTIM toolbox iinde zel fonksiyon fonksiyonlar
da mevcuttur. Bunlar;
1.
2.
3.
4.
MATRS LELER
Matlabda en temel olarak 3 eit ile vardr.
Bunlar;
1. Aritmetik ileler
2. likisel ileler
3. Mantksal ileler
Bunlardan aritmetik ilelerden daha nce
matris ilemleri srasnda bahsetmitik. Bundan
dolaydr ki dier eit ilelerden bahsedeceiz.
likisel ileler:
Matlab diziler ve matrisler arasnda karlatrma
yapmak iin 6 tane ilikisel ilece sahiptir. nemli olan
bir nokta = ve == ileleridir. = ileci, deiken
atama (assignment) ve yerletirme (replacement) ilevi
grr oysa == ileci, matematiksel olarak eittir
anlamndadr. Bu ileler;
1. <; kktr (less than)
2. <=; kk eittir (less than or equal)
3. >, byktr (greater than)
4. >=; byk eittir (greater than or equal)
5. ==; eittir (equal)
6. ~=; eit deildir (not equal)
Mantksal ileler:
Matlab da matris ve dizileri mantksal olarak
karlatrmak iin kullanlan ilelerdir. Bunlar;
1. ~ (not) ; p bir dizi ise ~p,p ile ayn boyutlu, yeni bir
dizi retir. Bu yeni dizi p sfr deilse sfrlardan oluur,
p sfr ise birlerden oluur.
2. & (and); p ve q birer dizi ise p&q, p ve q ayn boyutlu,
yeni bir dizi retir. Bu yeni dizi p ve q her ikisi de sfr
olmayan elemanlara sahip ise birlerden oluur. p veya
q sfr ise sfrlardan oluur.
3. | (or); p ve q birer dizi ise p|q, p ve q ile ayn boyutta,
yeni dizi retir. Bu yeni dizi p veya qda en az bir
eleman sfr deilse birlerden oluur, p ve q sfr ise
sfrlardan oluur.
if yapisi :
if komutunun Matlabda 3 farkl ekli mevcuttur;
1. if kosul
deyim1
deyim 2
deyim_n
end
Koul doru ise, deyim1, deyim1, ... , deyim_n, ile
belirtilen deyimler grubu icra edilir ve programn
kontrol endi izleyen deyime geer; koul yanl ise
bu durumda deyim1, deyim2, ..., deyim_n ile
belirtilen deyimler grubu icra edilmeden kontrol
endi izleyen deyime geecektir.
2. if kosul
deyim1
deyim 2
deyim_n
else deyim_n+1
deyim_n+2
deyim_m
end
Koul doru ise deyim1, deyim1, ... , deyim_n, ile
belirtilen deyimler grubu icra edilir ve programn
kontrol endi izleyen deyime geer; koul yanl ise bu
durumda da sadece else i izleyen, deyim1_n+1,
deyim_n+2, ... , deyim_m ile belirtilen deyimler grubu
icra edilecek ve kontrol end i izleyen deyime geecektir.
3. if kosul1
deyim1
elseif kosul2
deyim2
elseif kosul3
deyim3
...
elseif kosul_n
deyim_n
else
deyim_n+1
end
Bu yap ierisinde kontrol edilen koullardan herhangi biri doru ise
onunla ilikili deyim icra edilir ve kontrol end i izleyen deyime
geer. Koullarn hepsi de yanlsa, kontrol else i izleyen
deyim_n+1e geer ve bu deyim de icra edildikten sonra kontrol
endi izleyen deyime geecektir.
For dngs:
Parametre deeri balang deerinden balayarak ve her
seferinde artm deeri kadar arttrlarak son deere erisene
kadar deitirilir. Parametrenin her deeri iin, deyim1,
deyim2, deyim_n seklinde belirtilen ve for-end szckleri
arasnda yer alan deyimler grubu icra edilir. Parametrenin
deeri son deeri anca, programn kontrol endi izleyen
deyime yani evrimin dna kacaktr.
for parametre=baslangi:artim:son_deger
deyim1
deyim2
...
deyim_n
end
While dngs:
Belirli bir st snra kadar istenilen ilemleri tekrarlayarak yapar. Koul
doru olduu srece, deyim1, deyim2, ... , deyim_n seklinde belirtilen
deyimler grubunu icra eder. Koul yanl olduu anda, endi izleyen deyime
yani evrim dna kar.
while kosul
deyim1
deyim2
...
deyim_n
end
A=5 ilk deerinden balayarak A<8 olduu srece Aya 1 eklemek iin
aadaki program incelenebilir;
A=5
while A<8
A=A+1
end
eklindedir.
Ka (Kontrol) kodlar
1. \n
Yeni bir satra balar. (return or
enter)
2. \r
Yeni satrn ba (linefeed)
3. \b
Geri boluk karakteri (backspace)
4. \t
Yatay sekme karakteri (Tab)
5. \f
Formfeed karakteri
6.
Apostrof karakteri (iki tek trnak)
7. \\
Ters bl karakteri (backslash)
8. %%
Yzde iareti karakteri
MATLABDA GRAFKLER
MATLAB grafik sistemi, verilerin hazrlanmasnda ve
grselletirilmesinde ok deiik ve kendine has
zellikleriyle
bir
kullanclara
byk
kolaylk
salamaktadr.
MATLAB 3.5 ve daha altndaki srmlerinde; x-y
grafikleri, kutupsal grafikler, ubuk grafikler, yzey
grafikleri 3-D yzey network meshi oluturmak
mmkndr.
Bunun yannda MATLAB 4.0 ve daha yukar
srmlerinde grafiksel zellikler ok daha fazla artrlm
ve yukardaki bahsedilen zelliklere ilaveten x-y-z
grafikleri de dahil olmak zere her turlu 3 boyutlu izgi
ve yzey grafikleri oluturmak mmkn hale gelmitir.
Boyutlu(2D) Grafikler:
Matlabta verilerin 2 boyutlu olarak izdirilmesi ve
bu grafiklerin dzenlenmesi ile ilgili bir takm hazr
fonksiyonlar mevcuttur.
x-y dzleminde oluturulan pek ok grafikte x ve y
eksenlerinin eit aralklarla blnd varsaylr. Ve
bu tr grafiklerde lineer grafik adn alr. Baz
istisnai durumlarda ya tek eksen zerinde ya da her
iki eksen (x,y) zerinde de logaritmik leklendirme
kullanlabilir. x ve y vektrlerinin lineer ve
logaritmik
fonksiyonlar
aada
verilmitir
(eksenler veri saysna gre leklendirilirler).
8. Gtext; Bu komut grafik ekran zerinde fare veya ok tular ile gsterilen
noktada bir metin veya metinler yazar. Genel yazm format;
gtext(metin) eklindedir. rnein;
gtext(bu noktaya dikkat)
9. Legend; gsterge eklemek iin kullanlan komuttur. Genel yazm format;
Legend(string1,string2,.,pos) eklindedir.
Burada pos ise gsterge kutusunu belirli bir yere yerletirmek iin
kullanlan deerin yazld ksmdr. Eer bu deer sfr(0) girilecek olursa
kutu olabilecek en iyi yere, bir(1) girilecek olursa sa st ke (varsaylan)
eksi bir (-1) ise hemen grafiin sa tarafna yerletirlecektir.
10. Legend off; gsterge kutusunu yerletirilen yerden kaldrr.
loglog; Hem x ekseni hem de y ekseni iin logaritmik leklendirme
kullanarak x ve y deerlerinin grafiini oluturur. Genel kullanm;
loglog(x) eklindedir. rnein;
>>x = logspace(-1,2);
loglog(x,exp(x),'-s')
13. Axis equal; eksenlerin entik artmlarn her iki eksen zerinde
de eit olacak ekilde ayarlar.
14. Axis square; dikdrtgen bir grafik alan yerine kare grnml
bir grafik kutusu olacak ekilde ayarlar.
15. Axis normal; orijinal eksen takmna dndrr.
16. Hold on; dzlem zerideki grafii dondurmak iin kullanlr.
17. Hold off; dondurulan grafii yada grafikleri serbest brakr.
18. Plotyy; grafikte y ekseninin hem sa tarafn hem de sol tarafn
leklemek iin kullanr. Genel yazm format;
Plotyy(x1,y1,x2,y2) eklindedir. Burada x1e kar y1 grafiini yeksenininin sol tarafna, x2e kar y2 grafiini y-ekseninin sa
tarafna izilir.
19. Ezplot; bir fonksiyon yada karakter dizgesinin grafik olarak
izdirmek iin kullanlr. Genel yazm format;
Ezplot(fun,xmin,xmax) eklindedir.
20. Fplot; ezplot komutu ile hemen hemen ayndr. Ancak bir takm
stnlkleri vardr. Y-ekseni iinde snrlar vermemizi bylece daha
doru bir grafik elde etmemizi salar. Genel yazm format ezplot
ile ayndr.
.
+
*
o
x
s
d
v
<
>
p
h
DENKLEM TAKIMLARININ ZM
Mhendislik problemlerinde dorusal ve dorusal
olmayan eitli denklem ve denklem takmlar ile
karlalr. Herhangi bir denklem en basitinden bir
doru veya bir eriyi tanmlar. n. Dereceden tek
deikenli bir polinom biimindeki bir denklemde,
denklemin kklerini bulmak esastr. Birden fazla
deikeni bulunan denklem takmlarnda ise
denklemleri tekil eden bilinmeyenlerin zm
salanr.
Dorusal denklemlerin zm dorusal olmayan
denklemlere gre daha kolaydr.
roots( [an, an-1,..., a2, a1, a0]) eklindedir. Burada roots fonksiyonu iin
giri argmanlarn, an, an-1, ......,a2, a1, a0 biiminde polinomun en yksek
dereceden balayarak azalan kuvvetlerinin katsaylar olarak tanmlamak
yeterlidir. Sonuta k olarak denklemin kkleri bulunur.
rnein;3x6+4x5+13x4-2x3+1.5x2-10.5x-5 eklindeki dorusal bir 6.
dereceden denklem iin komut dizini,
>> a=[3 4 13 -2 1.5 -10.5 -5]
>> yp=roots(a)
eklindeki bir komut dizini sonucu
yp =
-0.7494 + 1.8819i
-0.7494 - 1.8819i
0.9409
-0.1837 + 1.0120i
-0.1837 - 1.0120i
-0.4081
sonular elde edilir. Burada yukarda aa olmak zere her bir satr bir
kk temsil etmektedir.
SIMULINK (SMULASYON):
Simulink, modelcilik, simle etme ve zmleyi dinamik
sistemler iin yazlm paketidir. Srekli zamanda
modellenilen dorusal ve dorusal olmayan sistemleri
destekler. Sistemler, ayn zamanda ok dereceli olabilirler,
farkl dereceli denilen veya gncelletirilen farkl paralara
sahip olabilirler. Modelcilik iin, simulink, blok izimleri,
kullanma tkla ve tas fare operasyonlar ile modelleri ina
etmek iin grafiksel kullanc arabirimi salar.
Simulink modellerinin benzetimi diferansiyel denklem
takmlarnn saysal integrasyonu ile ilgilidir. Simulink iinde
bu tur denklemlerin simlasyonun da kullanlan eitli
integrasyon yordamlar mevcuttur. Aada simulink bloklar
verilmitir.
(Kullanmlar
ve
zellikleri
iin
Bkz.
MATLAB/HELP)
Simulink Bloklar:
Simulinkte modeller oluturulurken temel
bloklar vardr. Ancak paket programn
gelitirilmesi ve her geen gn gncellenmesi ile
bir ok bloklar oluturulmutur. Aadaki
ekilde
bunlardan
sadece
bir
ka
gzkmektedir.
TEEKKRLER