You are on page 1of 33

1.

1 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 hazrlanm olmakla beraber son srmleri (1999 yl itibariyle 5.3 dr) C
dilinde hazrlanmtr.MATLAB mhendislik alannda (hesaplamalarnda); saysal hesaplama, veri zmleri ve
grafik ilemlerinde kullanlabilecek
genel amal bir program olmakla beraber zel amal modler paketlere de sahiptir. CONTROL TOOLBOX,
SIGNAL TOOLBOX gibi paket programlar CACSD (Bilgisayar destekli denetim sistemi tasarm) paketler olup
bunlar denetim sistemlerinin tasarmnda ok etkili aralardr. Ayrca WINDOWS ortamnda alan
SIMULINK, etkileimli benzetim programlarnn hazrlanmas ve altrlmasnda byk kolaylklar
salamaktadr.



1.2 MATLABIN KULLANIM AMACI VE YER

MATLAB tm mhendislik alannda, saysal hesaplamalar, veri zmlenmesi ve grafik ilemlerinde
kolaylkla kullanlabilen bir programlama dilidir. FORTRAN ve C dili gibi yksek seviyeden programlama
dilleri ile yaplabilen hesaplamalarn pekounu MATLAB ile yapmak mmkndr. Buna karlk MATLABn
fonksiyon ktphanesi sayesinde FORTRAN ve dier programlama dillerine gre MATLABta daha az sayda
komutla zn retmek mmkndr Gerekte MATLAB, M-dosyalar (M-files) olarak bilinen pek ok sayda
fonksiyon dosyalarndan (altprogramlardan) ibarettir. M-dosyalar ASCII formatnda olup okunabilirlii olan,
MATLAB programlama dili kodlarndan olumutur. Bu yzden M-dosyalar ktphanesi kullanc tarafndan
mdahale edilebilirdir. Ancak bu kodlara zorunlu olunmadka mdahale edilmemesi, deitirilmesi gerekir.

MATLABn kullanm yerleri;

- Denklem takmlarnn zm, dorusal ve dorusal olmayan diferansiyel denklemlerinin zm,
integral hesab gibi saysal hesaplamalar,
- Veri zmleme ilemleri,
- statistiksel hesaplamalar ve zmlemeler,
- Grafik izimi ve zmlemeler,
- Bilgisayar destekli denetim sistemi tasarm.



1.3 MATLABIN KURULMASI ve MATLAB ALIMA ORTAMI

MATLABn deiik bilgisayar sistemlerinde alan ok eitli srmleri vardr.Burada anlatlacak olan
MATLABn 5.3.10183 (R11) srmdr.MATLABn bu srmn bilgisayara kurmak nceki srmlerine
gre daha kolaydr.Kurma ilemini balatmak iin MATLAB dizini altndaki setup.exe dosyasna ift tklanr.
Setup program yklendikten sonra gelecek olan ekranlardaki direktifler yerine getirilip ileri butonuna baslr.
Kurulumun ilk aamas lisans szlemesidir. Aadaki grnt szleme kabul edildikten sonra alnmtr.



Resim 1 : MATLAB kurulum penceresi

Kurulum iin gerekli lisans numaras da girildikten sonra imdi sra, seimlik MATLAB bileenlerini
yklemeye geldi. Bu ekranda sizin iin gerekli MATLAB aralarn ykleyebilirsiniz.





Resim 2 : Yklenecek bileenlerin seildii ekran


MATLAB tm komponetleriyle birlikte bir PC ye kurabilmek iin yaklak 1.5GB disk boluu ve en az 16
MB bellek gereklidir.Buradaki 1.5 GB boluk dosyalarn extrack ilemi iin gereklidir.Kurulum sonrasnda
MATLAB sabit diskte 300 MB kadar yer kaplayacaktr. Ayrca kurulum aamasnda Trke dil zellii ykl
olan sistemler iin Japanese Help'leri ve MATLAB Touru semek sorun kartmaktadr.Bunlarn seilmemesi
baarl bir kurulum iin gereklidir.

Yrtme: MATLAB program bilgisayara yklendikten sonra, aktif masa stne ve programlar mnsne
kendi ksayollarn yerletirir. MATLAB bu seenekler vastasyla bellee yklenebilir. MATLAB ortamna
girildiinde, ( >> ) biiminde MATLAB iletisi ile karlalr. Bu ileti kullancya, bir komut girmek zere
MATLABn hazr bulunduunu syler.




Resim 3 : MATLAB komut penceresi ekran


Demo : MATLAB ve MATLABn versiyon yeniliklerini renmek iin demo komutunu kullanabilirsiniz.
Listeden yapacanz uygun bir seimle MATLABn eitli konularda gsterecei icraatlar adm adm
ekrandan izleyebilirsiniz.

k ( quit ve exit) : MATLAB ortamndan k quit veya exit komutlar ile gerekletirilir.

Saklama ve Ykleme (save & load ) : ktan nce MATLAB ortamnda elde edilen deikenlerin
ieriklerinin saklanmas gerekiyorsa save komutu kullanlr. Bu durumda tm deikenler matlab.mat adl bir
dosya iinde, ikili saylar kodunda otomatik olarak saklanr. Tekrar MATLAB ortamna girildiinde, gerekli
grldnde saklanan deikenler load komutu ile yklenebilir.

alma Ortam : MATLAB program Windows kaynaklarn ok iyi kullanr. nceki (4.2 ve ncesi)
MATLAB versiyonlar DOS tabanl olarak alrd. Bu yzden MATLABn konsolunu ve grafik grntleme
arayz ayn anda kullanlamazd. MATLABn son srmlerinde Windows iletim sistemi ile birlikte bu iki
pencereyi de ayn anda kullanmak mmkndr.Bu da kullancya problem zmlerinde byk hz ve esneklik
getirir.
Bir alma srasnda komut penceresi silinmek istenirse clc komutu kullanlr. Baz durumlarda alma
ortamnda oluturulan deikenler ok fazla yer tutmaya balar ve bu yzden kk bilgisayar sistemlerinde
bellek sorunu (OUT OF MEMORY) ortaya kabilir. Bu durumdan kurtulmak iin clear ve pack komutlar
kullanlabilir. Clear komutu bellekte yer alan, kullanc tarafndan tanmlanan tm deikenleri ve
fonksiyonlar siler. Eer deikenlerin program iinde tekrar kullanlmas gerekiyorsa pack komutu daha
kullanldr. Pack komutu bilgileri gerekli enkk bellek alanna sktrarak bellekte belli bir serbest alan
oluturur. Bylece hem tanmlanan deikenler silinmemi ve hem de belli bir yer alm olur.

crann sona erdirilmesi: zellikle bilgisayarn sonsuz bir dngye girdii veya sonu gelmez gibi grnen veri
grntleme ve yazdrma ilemleri gibi durumlarda komut icrasnn kesilmesi gerekebilir. MATLAB ortamnda
bir komutun icrasn sona erdirmek iin ctrl+c tularna ayn anda basmak gerekir Bu durmda ^C iletisi
karmza kar ki bu da komut icrasnn kullanc tarafndan sona erdirildiini gsterir.

Byk ve kk harf duyarll (casesen off, casesen): MATLAB byk ve kk harf
karakterlerini ayrt eden bir dildir. Buna gre; bir deiken TIME ad ile atanabilirken, dier bir deiken time
ad ile ve dier baka deer de Time ad ile atanabilir. Bu durumda bir karaktere birden fazla deer atamak
mmkndr. Ayrca casesen off komutu ile bu durum sona da erdirilebilir. Bylece byk ve kk harf
karakterlere duyarllk ortadan kalkm olur.

Deikenlerin ve matrislerin durumu (who, whos, what, size): Kullanc tarafndan program iinde
tanmlanan deikenlerin ve matrislerin durumunu gzden geirmek iin who, whos, what, size gibi
kullanl komutlar bulunmaktadr. Who komutu kullanc tarafndan tanmlanan deikenlerin listesini
grntler. whos komutu bu deikenleri boyutlar ile birlikte ve bu deikenlerin sfr olmayan sanal ksmlar
olup olmadn da grntler. what komutu kullanc diskinin halihazr dizininde mevcut M-dosyalar listesini
verir.

Yardm (help): Yardm imkan MATLABta en nemli kaynaktr. alma ortamnda sadece help komutu
ile, nce yardm alnabilecek dosyalarn bulunduu dizinler ve sonrada yardm alnabilecek konularn listesi
grntlenir. Kullanc daha sonra help komutu ile birlikte yardm istedii konuyu yan yana yazarak istedii
konuda yardm alabilir.
rnein
help step

komutu ile step konusunda gerekli yardm almak mmkndr. Bylece arzu edilen konu veya komutun ne
ekilde ve nerelerde kullanlabilecei hakknda gerekli bilgi salanm olur. Yardm kaynan iyi bir biimde
kullanmak suretiyle, kullanc kullanm klavuzuna gerek kalmakszn MATLAB ilemlerini kolaylkla yapma
olanana sahip olur. Ayrca rnein helpwin step komutu ile ayr bir yardm penceresinden bilgi almak
mmkndr

Yazm (type): type komutu belli bir dosyann ieriini grntler. M-dosyalarnn grntlenmesinde dosya
adndan sonra M uzantsnn yazlmasna gerek yoktur. rnein type polyfit dosyasnda yer alan % iareti ile
gizlenen aklama satrlarn grntler.

MATLABta DOS: MATLAB eski srmlerinden kalma bir zellii bnyesinde bulundurur. MATLAB komut
satrnda ( >> ) ! (nlem) karakteri kullanlarak dos komutlar iletilebilir. Bu durum da MATLAB dos komut
satrn bir nevi simle eder. Komutlarn ktsn MATLAB konsolu zerinde grmek mmkndr.rnein
program altrmak iin !nc ,!pc gibi.



1.4 MATLABTA KULLANILAN BELL BALI KOMUT ARETLER

[ ]
Keli parantezler, vektrleri ve matrisleri biimlendirmek iin kullanlr. rnein [6.9,9.64, sqrt(-1) ]
elemanlar virgllerle (veya boluklarla) ayrlm elemanl bir vektrdr. Buna karlk [11 12 13;21 22 23],
iki satr ve stundan ibaret 2x3 lk bir matrisi gsterir. Burada noktal virgl ;matris oluturulmasnda bir
satr sona erdirip bunu izleyen satrn olumasn salar. Bylece mxn boyutundaki bir matrisi kolayca
oluturmak mmkndr. Vektr ve matrisler [ ] keli parantez iinde gsterilir. rnein bir A matrisinin satr
says B matrisinin satr saysna eit ve B nin satr says ve A nn stun says art B nin stun says C nin stun
saysna eit ies [A B; C] biiminde yeni bir matris oluturmakta mmkndr.
A=[ ]
Biiminde bir bildirim bo bir matrisi A deikenine atar.

( )
MATLAB iinde normal parantez eitli amalarla eitli yerlerde kullanlr. Olaan yoldan; aritmetik
deyimlerin stnln belirtmek ve fonksiyon argmanlarn (arguments) kapatmak iin kullanlr. Daha genel
anlamda da vektr ve matrislerin indislerini kapatmak iin kullanlr. Eer X ve V bir vektr ise X(V) de bir
vektrdr ve

[ X( V(1) ), X( V(2) ) , . . . . . , X( V(N) ) ]

eklinde gsterilir. Vnin elemanlar en yakn tamsayya yuvarlatlarak indisler olarak kullanlr. Eer bu tr bir
indisin deeri 1 den kk veya Xin boyutundan kk olacak olursa hata ortaya kar. Baz rnekler verecek
olursak; X(3) X vektrnn 3nc elamann gsterir.
X( [1 2 3] )
ve benzer ekilde
X( [sqrt(2), sqrt(3), 4*atan(1)] )

X vektrnn ilk elemann gstermek iin kullanlr. Eer Xin N adet eleman varsa
X( N:-1:1 )
komutu yukardaki ilemi ters evirir. Benzer ekilde dolayl indisleme matrislerde de kullanlr. rnein Vnin
M eleman ve Wnun N eleman mevcut olsun. Bu durumda A(V,M) Ann elemanlarndan olumu MxN
boyutlu bir matrisdir. Burada !nn indisleri V ve W nun elemanlardr. rnek olarak;

A( [1,5],: ) =A( [5,1] ),: )

fadesi A matrisinin 1 ve 5nci satrlar arasnda yer deitirme salar.
.
Kesir ayrma iareti. 314/100, 3.14 ve .314e1 ayn anlama gelir. Nokta iareti ayn zamanda eleman
elemana arpma ve blme ileminde de kullanlr. Kullanl biimleri; .*, .^, ./, .\ veya .. eklindedir. rnein,
C=A./B elemanlar c(i,j)=a(i,j)/b(i,j) olan bir matrisdir.



...
Bir tek satra smayan ifadelerin bir alttaki satrda devam ettiini gsterir.

,
Matris indislerini ve fonksiyon argmanlarn ayrmak iin kullanlr. Virgl iareti ayn zamanda bir satra
birden fazla bildirim yazlmas halinde bildirim komutlarn ayrmak iin de kullanlr.

;
Noktal virgl bir bildirimde elde edilen sonularn program icras sonunda ekranda grntlenmesini
nlemek iin kullanlr. Ayrca keli parantezler iinde matrislere ait satrlar sona erdirmek iin de kullanlr.

%
Yzde iareti aklama satrlar iin kullanlr. Banda % iareti bulunan satrlar icra edilmez. Bir izgi
zerinde bulunan % iareti, izginin mantksal bir sonu olduunu gsterir.

!
! iaretini izleyen herhangi bir yaz DOS komutu ilemi grr. Bylece MATLAB iinde DOS komutlarn
altrma imkan salanr.

:
Stun iareti; indislerde, FOR iterasyonlarnda ve muhtemelen her yerde kullanlabilinir. Belli bal
kullanm biimleri aada olduu gibidir.

J:K, J den balayarak 1 er 1 er K ya kadar artan bir dizi oluturur. Ve [ J, J+1 ... , K] ayn anlama gelir.
J:K da J>K ise bo bir vektr sonulandrr.
J:I:K J ile balayan I aralnda artarak K ya kadar giden bir dizi oluturur ve

[ J, J+1, J+2I, . . ., K]
ifadesi ile ayn anlama gelir.
J:I:K ifadesinde I>0 ve J>K veya I<0 ve J<K olacak olursa bo bir matris sonulanr.
Stun iareti ayn zamanda vektrlerin ve matrislerin seilen satrlarn, stunlarn ve elemanlarn ayrmak
iin de kullanlr. Bu durum aadaki rneklerle de gsterilmitir.
A(:) Tek bir stun olarak A nn tm elemanlardr. Atanan bir bildirimin sol tarafnda A(:) nceki biimini
koruyarak A y doldurur.
A( : , J ) Ann Jinci stunu ile ayndr.
A( : , J+1) Ann Jden itibaren birer birer artarak K ya kadar giden elemanlarn gsterir ve A(J), A(J+1), ...,
A(K) ile ayndr.
A( :, J : K) Benzer ekilde A( : , J), A( :, J+1), ... ,A( :, K ) ile ayndr.



'
Trnak iareti matrislerin transpozesini almay salar. X , X matrisinin karmak elenik transpozesini ve X. se
elenik olmayan transpozesini sonulandrr. Ayrca ANY TEXT eklindeki aktarm ilemlerinde karakterler
iin elemanlar ASCII kodlarnda bir vektr gstermek iin kullanlr.

+
Toplama, X+Y iki matrisin toplamn alr. Bu toplamn gereklenebilmesi iin matrislerin ayn boyutlarda
olmas gerekir. Yalnzca matrislerden birisi skalar olduunda toplam gereklenebilir. Bir skalar herhangi bir eye
eklenir.

-
karma, X-Y X matrisinden Y matrisini karr. Burada da toplama ilemindeki benzer koullarn
gereklenmesi gerekir.

*
Matrisyel arpm ilemcisi. X*Y X ve Y matrislerinin matris arpmn gsterir. Herhangi bir skalar
(1x1elemanlmatris) herey ile arplabilinir. Aksi takdirde X matrisinin stun says Y matrisinin satr saysna
eit olmaldr.

*
Eleman elemana arpm ilemcisi. X.*Y eleman elemana arpma ilemini gsterir. Birisi skalar olmadka, X ve
Y matrislerinin eleman saylar eit olmaldr. Yalnz bir skalar her ey ile arplabilinir.


\
Matrisyel soldan blme ilemcisi. A\B B matrisinin A matrisine blmn gsterir ki bu da hemen hemen
inv(A)*B ilemi ile ayndr. Yalnz hesaplama biimleri farkldr. Eer A NxN elemanl bir matris ve B de N
elemanl Stun vektr ise X=A\B ifadesi Gaussian eliminasyonu yoluyla hesaplanan A*X=B denklemi iin bir
zmdr. Eer A matrisi kt bir ekilde leklendirilmi veya hemen hemen tekil ise bir uyar mesaj alnr.
A\eye(A) ifadesi Ann tersini sonulandrr. Eer A mxn olacak ekilde m x n elemanl bir matris ve B de m
elemanl stun vektr ise X=A\B en kk kareler cinsinden altnda ve stnde saptanan sistem denklemlerinin,
A*X=B bir zmdr.

.\
Skalar veya eleman elemana soldan blme ilemcisi. A.\B deyimi; elemanlar B( i, J)\A(i, J) olan bir matrisdir.
Yalnz burada A ve B nin ayn boyutta olmas gerekir.

/
Matrisyel sa blme ilemcisi. B/A B matrisinin A matrisine blmn gsterir ki bu da hemen hemen
B*inv(A) ile ayndr. Yalnz hesaplama yntemleri bakmndan farkllk gsterir. Dier bir biimi ile
B/A=(A\B) dr.



./
Eleman elemana blme ilemcisi. B./A eleman elemana blme ilemini gsterir. Bu durumda A ve B matrisinin
ayn boyutta olmas gerekir. Yalnz birini skalar olmas halinde buna gerek yoktur. nk bir skalar herey ile
blnebilir.
3./A ile 3 ./A ayn ilem olmadna dikkat etmek gerekir. nk birinci ifadede nokta 3 rakamnn kesir
iaretini gsterdiinden matris blme ilemini yaptrr ve ikinci ifade de ise nokta eleman elemana blme
ilemini iaret eder.


^
Matrisyel kuvvet alma ilemcisi. Z=X^y ifadesi ynin skalar olmas halinde Xin Yinci kuvvetini aldrr. Eer y
birden byk bir tam say ise kuvvet alma ilemi tekrarl arpma yolu ile hesaplanr. ynin dier deerleri iin
hesaplama zdeerler ve zvektrler yolu ile gereklenir. Z=x^Y ifadesinde xin Yinci kuvvetinin alnmasnda
eer Y bir matris ve x bir skalar ise hesaplama ilemi zdeerler ve zvektrler kullanlarak yaplr. Z=X^Y de
X ve Ynin her ikisinin de matris olmas halinde hata oluur.

^
Eleman elemana kuvvet alma ilemcisi. Z=X.^Y ifadesi eleman elemana kuvvet alma ilemini gsterir. Ancak
birinin skalar olmas halinde bu koul aranmaz. nk bir skalar ile ilem grebilir.

<
...den kk bant ilemcisi. <= ...den kk veya eittir ilemcisi. C=A<B bildirimi A ve B matrisleri
arasnda eleman elemana karlatrma yapar ve ayn boyutta bir matrisi sonulandrr. C matrisinin elemanlar;
bantnn gerek olmas halinde bir ve gerek olmamas halinde de sfr olarak atanr. A ve B matrisleri ayn
boyutta olmaldr. Yalnz birinin skalar olmas halinde bu arta gerek yoktur. nk bir skalar ile
karlatrlabilir. Dier bant ilemcileri; >, >= , = = , ~ = eklindedir.

>
...den byk bant ilemcisi. >= ...den veya eittir ilemcisi.

=
Bildirimleri atamak iin kullanlr.

= =
Mantksal eittir bant (relational) ilemcisi.

&
Mantksal AND (ve): C=A & B bildiriminde; A ve B matrislerinin her ikisi de sfrdan farkl elemanlara sahip
olduunda 1 ve sadece bir tanesi sfr elemana sahip olduunda da sfr elemanl bir matris sonulandrr. A ve B
ayn olduunda da sfr elemanl bir matris sonulandrr. A ve B nin ayn boyutta matrisler olmas gerekir.
Yalnz birinin sfr olmas halinde bu koula gerek yoktur.

|
Mantksal OR (veya): C=A | B bildirimi A ve B matrisleri sfrdan farkl elemana sahip olduunda, 1 ve her
ikisinden birisi sfr olduunda sfr elemanl bir matris sonulandrr.

~
Mantksal tamamlayc (complemet) NOT (deil) ilemcisi ~ = : Eit deildir ilemcisi. B~= bildiriminde; A
matrisi bir sfr elemanna sahip olduunda 1 ve sfrdan farkl elemanlara sahip olduunda 1 ve sfrdan farkl
elemanlara sahip olduunda da sfr elemanl bir matrisi sonulandrr.



1.5 VERLERN GRLMES VE PROGRAMLARIN ALITIRILMASI

MATLAB genelde bir saysal hesaplama dilidir. MATEMATICAda olduu gibi sembolik ifadelerin
zmlenmesinde genellikle kullanlmaz. Yalnz 4.0 ve daha sonraki srmlerinde The Symbolic Math
Toolbox ilavesi ile sembolik ilemlerde de kullanlabilmesi salanmtr.
MATLAB, matris laboratuar kelimelerinin ksaltmasndan tretilmi olarak btn ilemlerini matris esasna
dayal olarak yapar. Burada kastedilen matris en genel anlamda m*n elemandan ibaret dikdrtgen bir matris
olabilecei gibi tek bir elemandan ibaret bir skalar da olabilir. Tek bir stn veya bir satrdan ibaret zel
matrisler ise vektrler olarak bilinir. Bu adan MATLAB ortamndaki ilemler ve komutlar matris cinsinden
icra edilir. Dolaysyla da MATLAB ile alrken matrislerle ilgili ilemlerin ok iyi bilinmesi gerekir.
Matrislerin girilmesinde ise genellikle aadaki yollardan birisi kullanlr.

- Kesin elemanlar listesi olarak girme
- MATLABn kendi iindeki bildirimler ve fonksiyonlar yolu ile matris oluturulmas,
- M-dosyalar yolu ile matris oluturma,
- Harici veri dosyalarndan ykleme,

MATLABdaki ilemlerde ve hesaplamalarda kullanlacak verilerin ve parametrelerin girilmesinde keli
parantezler kullanlr. Buna karlk MATLABda bulunan bir program (M-dosyas) yoluyla zm istenen
parametre ve veriler normal parantez iinde yazlr. Tek bir saydan ibaret veri ise keli parantez kullanmadan
da girilebilir.

rnek 1.1: dat = ...
[ 0 0
1 10
2 20
3 25
4 30
5 35
6 40
7 45
8 50
9 55
10 60
11 65 ];


bildirimi ile 2 stun 12 satrdan ibaret verilerin dat deikenine saklanmas salanm olur. Burada (=)
ilemcisinden sonra gelen (...) ilemcisi veri giriinin (yani satrn) devam edeceini gsterir.
MATLAB ifadeleri ve fonksiyonlar yolu ile matris oluturulmasnda MATLAB dilinde boyut ifadelerine ve
tip bildirimlerine gerek yoktur. Oluturulan saylar dizisi istenen srada otomatik olarak saklanr. rnein,
X=0:0.1:10;

komutu ile 0dan balayp her admda 0.1 artan ve 10a kadar olan saylar x vektr olarak daha sonra
kullanlmak zere saklanr. Dier taraftan MATLABn zel fonksiyonlar yolu ile de matrisleri oluturmak
mmkndr. rnein;

a = ones( 5 );

komutu ile tm elemanlar 1 olan 5*5 lik bir a matrisi oluturulabilir. Bunun gibi zeros fonksiyonu ile tm
elemanlar 0 ve rand komutu ile de rastgele (random) saylar matrisi oluturmak mmkndr. Burada ones,
zeros, vb. MATLAB iinde bulunan hazr ifadeler veya fonksiyonlardr. Benzer ekilde a=ones(1,5);
komutu ile de 1*5 lik 5 elemandan ibaret bir satr matrisi veya vektr oluturmak mmkndr.



1.6 VERLERN M-DOSYALARI BMNDE OLUTURULMASI

MATLAB ortamna dardan arlabilecek tm programlar .m uzantl dosyalar (M-file) olarak bilinir.
MATLABn kendi hazr program algoritmalar M-dosyalar eklinde olabilecei gibi MATLAB iin yazlan
programlar da M-dosyalar eklinde saklanp MATLAB iinde arlabilir. Benzer ekilde veriler de M-dosyalar
eklinde oluturup saklanarak daha sonra MATLAB iinde kullanlabilir. rnek 1de gsterildii gibi verilerinizi
(MATLAB da kullanlacak veriler) iki stun ve on satrdan ibaret bir matris biiminde uygun bir editrde TEXT
kodunda girilerek saklanabilir. Dosya ismini veri.m ile belirlersek daha sonra MATLAB iinde veri komutu ile
verileri istediimiz kadar arabiliriz. Bu veriler MATLABta dat deikeni altnda 2 stun x 10 satrlk bir
matris olarak tanmlanmaktadr. Bu matristeki veriler farkl yerlerde kullanmak istersek yeni deikenler
atamamz gerekir. rnein 1. stundaki verileri;
X=dat(:,1);

Komutu ile x ve 2. stundaki verileri de

Y=dat(:2);

Komutu ile y ye atayabiliriz. Benzer ekilde,

A=dat(2,3);
Komutu ile dat matrisinin 2. satr ve 3. stunundaki bir veriyi a ya atamak mmkndr.

1.7 MATLAB DIINDA OLUTURULAN VER DOSYALARININ YKLENMES

MATLAB ortamndan veriler; MAT-dosyalar ve TEXT dosyalar biiminde iki ekilde arlabilir. TEXT-
dosyas , yukarda da bahsedildii gibi TEXT karakterleri cinsinden saklanan bilgileri ierir ve bellekte fazla
zaman kayb yaratmayan dosyalardr. MAT-dosyalar MATLAB iinde save komutu ile saklanan ve
MATLABta hzl ilem yapmak iin tercih edilen dosyalardr. rnein
Save dat1 x y;

Komutu ile x ve y matrisleri dat.mat isimli dosyada saklanr. Burada .mat uzants MATLAB tarafndan
otomatik bir ekilde oluturulur. Bu matrisler MATLAB iinde

Load dat1;

Komutu ile arlabilir. Benzer ekilde MATLAB iinde oluturulan veriler ASCII karakterleri cinsinden de
saklanabilir. rnein,

Save dat1.m z /ascii

Komutu ile z matrisi dat1.m dosyas iinde ASCII karakterleri (herhangi bir TEXT editr altnda
okunabilir ve yazlabilir karakterler) cinsinde saklanabilir. TEXT dosyalar MATLAB programlar dndaki
programlar (C, FORTRAN, BASIC vb. gibi) tarafndan kullanlmas gereken veriler iin gereklidir. MATLAB
iinde tekrar tekrar kullanlan verilerin ise .MAT (binary-ikili saylar) uzantl saklanmas tercih
edilmemelidir. (Burada binary saklanmasnda anlatlmak istenen ey; MATLABn bu dosyalar yazarken kendi
yazm algoritmasn kullanmasdr, bu yzden de kt anlamsz, okunamaz olmaktadr)



1.8 BLDRMLER VE DEKENLER

MATLAB bir deyim dilidir. Kullanc tarafndan yazlan deyimler MATLAB sistemi tarafndan yorumlanr
ve deerlendirilir. MATLAB bildirimleri ounlukla aadaki ekildedir.
deiken=deyim
ve basite
deyim(expression)

olabilir.Deyimler ilemci iaretlerinden, dier zel karakterlerden fonksiyonlardan ve deiken isimlerinden
ibaret olabilir. Deyimin deerlendirilmesi ve zm sonucunda bir matris oluturulur. Bu sonu ekranda
grntlenebilir ve gerekirse daha sonra kullanlmak zere bir deikene atanabilir. Eer deiken ad ve =
iareti belirtilmezse, deiken, answer (cevap) kelimesinin ksaltmas olan ans ile birlikte otomatik olarak
oluturulur. rnein MATLAB ortamnda

1900/81

deyimi yazlp enter tuuna baslnca MATLAB

ans=23.4568

sonucunu oluturur ve ekranda grntler. rnein,

a=expm(x);

bildirimi ile x matrisinin stel deeri hesaplanarak sonu a deikenine atanr ve daha sonra kullanlmak zere
saklanm olur. Burada bildirimin sonuna konan ; iareti konulmayan bildirimlerin sonular hem saklanr hem
de o anda ekranda grntlenir. zellikle elde edilen sonularn ok byk yer tuttuu durumlarda bunlarn o
anda ekranda grntlenmemesi daha uygun olur. Ayrca program icras bittikten sonra istenen veriye ait
deiken yazdrlarak ekranda grntlemek de mmkndr. rnein yukarda x matrisinin hesaplanan deeri
a deikenine atandktan sonra, MATLAB ortamndan ayrlmadka ve a deikenine baka bir atama
yaplmad mddete ekranda ekranda a yazarak sonucu grntlemek veya bu deikeni herhangi bir
hesaplamada kullanmak mmkndr. Ayrca bu deikenleri save komutu ile saklayarak daha sonraki
MATLAB almalarnda da kullanmak mmkndr. MATLAB ortamndan ayrlmadka kendine bir deer
atanan deiken tekrar tekrar kullanlabilir. Yalnz bu durumda ayn deikene yeni bir deer atanmamas
gerekir. Yeni bir deer atanmas durumunda deiken en son atanan deeri saklar.
Bildirim, normal olarak satr sonu dn veya enter tuu ile sona erdirilir. Bildirim sonlarna konan ;
iareti ekranda grntlenmeyi durdurmakla beraber ayn satrda daha fazla bildirim yazlmasna engel deildir.
Dier bir deile, ayn satrda birden fazla bildirim yazmak ve altrmak mmkndr. Bir satrda yazlabilecek
karakter says genellikle 80 karakterle snrldr. Deyimin ok karmak olduu ve tek satra sdrlmad
durumlarda, satr sonuna doru ard arda konan noktaya (...) bildirimde sreklilik salar. Bylece bir tek
bildirimin mteakip satrlarda da devam ettii bildirilmi olur.
rnein,
S=1-1/2+1/3-1/4+1/5-1/6+1/7...
-1/8+1/9-1/10+1/11-1/12;

bildirimi iki satrdan ibaret dizinin toplamn hesaplar ve sonucu s deikenine atar. Birinci satrn sonunda yer
alan ... iareti ilemin ikinci satrda devam edeceini syler. Bu durumda ikinci satr elemanlar yazlp enter
tuuna baslmadka hesaplama yaplmaz.
Deiken ve fonksiyon isimleri bir harf ve bunu izleyen rakam ve harflerden meydana gelebilir. Bir isimin
yalnzca ilk 19 karakteri hatrlanr. Dolaysyla 19 harften uzun isimlerde son harflerin bir nemi yoktur.



2.1 MATLABTA PROGRAM HAZIRLANMASI

GR

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. MATLABn
har M-dosya paketlerini kullanmak suretiyle programlamay ok ksa tutmak mmkndr.



2.2 M-DOSYALARI

MATLABn kendisi byk oranda herhangi bir program iinde arlp kullanlabilen altprogramlardan
ibaret hazr M-dosyalarndan olumutur. MATLABta M-dosyalar okunabilir ve yazlabilir TEXT dosyalardr.
Bu nedenle MATLABa ait M-dosyalarnn yanllkla deitirilmemesi gerekir. Aksi takdirde orijinal grevini
yerine getiremez. Bu nedenle de bir programc kendi hazrlad M-dosyalarn kendine ait bir alt dizinde
saklams tavsiye olunur.
MATLABta altrlmak zere programlarn yazlp sakland M-dosyalar iki biimde hazrlanabilir.
Birincisi, uzun komutlar dizisi biiminde yazlan dz yaz (script) M-dosyalardr. kincisi ise MATLABn
kendi M-dosyalarna benzer biimde hazrlanan fonksiyon dosyalar herhangi bir ana program iinde bir
altprogram gibi kullanlabilirler.


2.3 DZ YAZI DOSYALARI

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
rnein aada verilen MATLAB komutlar dizisi bmak.m ad verilen bir dosyada oluturulup
saklanabilir.
MATLAB ortamnda bmak yazmak (.m uzants yazlmaz) sureti ile program altrlabilir. Yalnz
bunu iin program iinde yer alan; B, Ct, Dm, J, Vt parametre deerlerinin altrlmadan nce atanm olmas
gerekir. Bu, ya bmak komutu yazlmadan nce klavyeden yukarda belirtilen parametre deerlerini girmek
sureti ile ya da,



Resim 4 : MATLAB editr ve hata ayklaycs

daha nce sz edildii gibi saklanm bir dosyadan verileri armak sureti ile yaplabilir. Bu ekilde bmak
altrld zaman MATLAB dosya iinde yazl komutlar icra eder ve sonular saklar ve en sonunda plot
komutu ile sonular a ve b deikenlerine atanr. Daha sonraki 3. ve 4. satrlarda num ve den
deikenleri yukarda hesaplanan deerler atanr. 5. satrda ise 0 dan
f
t deerine kadar dt artmnda bir dizi
oluturur ve t deikenine atanr. 6. satrda MATLABa ait bir altprogram (M-file) olan step komutu ile pay
num, paydas den, deikeni ile verilen bir sistem t zaman dizisinde basamak cevab sonular hesaplanr
ve bir saylar dizisi eklinde y deikenine atanr. Son satrda plot komutu ile sonularn grafii elde edilmi
olur. Ayrca, program iersinde son satrda wn, xa ve xsi gibi deerler de hesaplanabilir.
MATLAB iinde desteklenen demos daha karmak ilemlerin yerine getirilmesinde kullanlacak pek
ok rnek iermektedir.



2.4 FONKSYON DOSYALARI

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.
Fonksiyon dosyas; function satrnda yer alan giri verisine gre k argman veya argmanlarn
sonulandrr. Bu argmanlar (function tarafndan bulunan sonular) istenirse dier hesaplamalarda
kullanlabilir. Fonksiyon dosyalar MATLABn kendi dilini kullanmak sureti ile yeni MATLAB fonksiyonlarn
oluturarak MATLABta mevcut dosyalar geniletmesi asndan ok kullanldr.
Fonksiyon dosyasnn oluturulmasn ve altrlmasn aada verilerin basit bir rnekle aklayabiliriz.
Burada MATLABta mevcut bir vektrn ortalamasn hesaplayan ortalama.m dosyasna ait bildirimler listesi
verilmitir.










function y=ortalama(x)
% ortalama (x) her bir
% stunda ortalama
% deeri olan bir satr vektrdr.
[m,n]=size(x)
if m = =1
m=n;
end
y=sum(x)/m;






Bu ekilde yazlp yine ortalama.m olarak saklanan (dosya ad ile fonksiyon ad ayn olmal) yeni
fonksiyon dosyasnn kullanm herhangi MATLAB dosyasnn kullanmndan farkl deildir. rnein z, 1den
99a kadar tamsaylar gsteren bir vektr olsun,

Z=1:99;

Komutu ile z vektr veya satr matrisi oluturulmu olur. Bu vektr iinde yer alan saylarn ortalama deeri ise
aada gsterildii gibi ortalama ifadesini kullanmak sureti ile yaplr.

ortalama(z)
veya
a=ortalama(z)

birimci durumda z matrisinde yer alan saylarn ortalama deerleri ortalama.m fonksiyon dosyas yolu ile
hesaplanp ekranda
ans=50

eklinde grntlenecektir. kinci durumda ise z ortalama deeri hesaplanp grntlendikten sonra ayn
zamanda a deikenine atanarak saklanacaktr. ortalama.m fonksiyon dosyasnn baz temel zelliklerini
aadaki ekilde sralayabiliriz.

1. Birinci satr fonksiyon ismini, giri argmanlarn ve k argmanlarn beyan ader. Bu satr
bulunmad zaman, dosya dz yaz dosyas gibi ilem grr.

2. % iareti ise ilgili satrlarn aklama satr olduunu grr. Bu satrlarda yazlanlar MATLAB
tarafndan icra edilmez.

3. MATLAB ortamnda help ortalama yazlnca % iaretlerinin bulunduu satrlardaki aklamalar
ekranda grntlenir.

4. Fonksiyon dosyas iinde yer alan m, n ve y gibi deikenler ortalama dosyasnn almas srasnda
kendi iinde geerli olup daha sonra alma ortamnda grntlenmez ve kullanlamazlar. Dier
taraftan bu deikenler ortalama dosyas altrlmadan nce alma ortamnda mevcut iseler
deerleri deimeden kalrlar.

5. Hesaplatlmas gereken deikenlerin fonksiyon dosyas iinde yer alan deikenler cinsinden atanmas
art deildir. rneimizde 1 den 99 a kadar olan tam saylar, fonksiyon dosyas iinde yer alan x
cinsinden deil de z cinsinden atanmtr. Veriler x cinsinden de veya z dndaki bir karakter olarak da
atanabilirdi. 1 den 99 a kadar saylar ieren z vektr, ortalama iine geirilerek veya kopya edilerek
onun x ad ile bilinen yerel deiken haline gelir.

6. Benzer ekilde k argmannda fonksiyon dosyasnda tanmlanan karakterle ayn olmas gerekmez
rneimizde hesaplanan sonu a eklinde bir deikene atanmtr ki bu ortalama fonksiyon
dosyasnda y ile belirtilen deikene atanmaktadr.


[x y z ...] = fonksiyon_ad(a, b, c, ...)


k argmanlar zm fonksiyonu(aran) giri argmanlar

ekil 1: Bir fonksiyon dosyasnn genel kullanm biimi



2.5 FONKSYON FONKSYONU DOSYALARI

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.

fmin Tek deikenli bir fonksiyonu sadeletirir.
Fmins Birka deikenli bir fonksiyonu sadeletirir.
fplot Fonksiyonun grafiini izer.
fzero Tek deikenli bir fonksiyonu sfr yapan deeri bulur.
ode23 Diferansiyel denklemleri zer (dk derece yntemi)
ode45 Diferansiyel denklemleri zer (yksek derece yntemi)
quad Saysal integral zm yntemi (dk derece yntemi)
quad8 Saysal integral zm yntemi (yksek derece yntemi)

Diferansiyel denklem zm fonksiyonlarnn (ode23, ode 45) kullanm ekli ileriki blmlerde ayrntl bir
ekilde ele alnacaktr.


[x y z ...] = fonksiyon_ad(fonk_Ad a,b,c, ...)


k argmanlar zm zlecek giri
fonksiyonu fonksiyon argmanlar
(aran) daima iinde
(arlan)


ekil 2 : Fonksiyon fonksiyonunun kullanm biimi




2.6 IKI VERLERNN SAKLANMASI

MATLAB grafik esasl bir programdr. MATLAB ortamnda oluturulan tm verileri ve grafikleri saklamak
mmkndr. Saklanan veriler tekrar tekrar MATLAB iinde, hatta farkl programlarda da kullanlabilir.
Saklanan grafikleri ise tekrar program iin geri arlamaz, ancak bir ekranda grntlenir veya yazcdan k
olarak alnabilir.
Hesaplan verilerin saklanmas, daha nce de sz edildii gibi save komutu ile yerine getirilmektedir.
eitli bilgisayar sistemlerinde farkl biimlerde kullanlan save komutunun kiisel bilgisayarlarda (PC)
kullanm aadaki ekildedir.


Save

MATLAB alma ortamnda yer alan tm verileri otomatik olarak oluturduu matlab.mat isimli
dosyada ikili saylar format ile saklar. Bu veriler daha sonra load komutu ile arlr.


save dosya_ad

Veriler matlab.mat yerine dosya_ad.mat adnda bir dosyada saklanr.


save dosya ad X Y Z

Halihazr alma ortamnda oluturulmu bulunan X Y Z deikenleri dosya_ad.mat dosyasnda
saklanr.


save dosya_ad X Y Z /ascii

X Y Z deikenleri dosya_ad dosyasnda TEXT biiminde saklanr. eitli yerlerde kullanlabilen bu
verilerin tekrar MATLAB ortamnda kullanlabilmesi iin, veriler MATLABn anlayabilecei matris
biiminde sokulmasna ve dosya adna .m uzants eklenmesi gerekir. Bu veriler MATLABta load
komutu ile yklenemez. M-dosyas eklinde arlmas gerekir. Veriler sadece MATLAB iinde
arlacaksa .mat uzantl saklanmas tavsiye edilir.


save dosya_ad X Y Z /ascii / double

X Y Z deikenleri dosya_ad dosyasnda 16-digit ASCII biiminde saklar.


save dosya_ad X Y Z /ascii / tabs

X Y Z deikenleri dosya_ad dosyasnda TEXT kodunda, tablo biiminde saklanr.

Yukardaki komutlarn yazlmasnda komut ve deikenler arasnda / iaretinden nce boluk braklmas
gerekir. MATLABda deikenler birbirlerinden aralarna virgl konularak ayrt edilebildikleri gibi aralarna
boluk koymak suretiyle de ayrt edilebilirler. Yalnz giri argmanlarnda boluktan ziyade virgl konulmas
gerekir.









3.1 TEMEL MATLAB LEMLER

GR

Her ne kadar MATLAB 4.0 dan itibaren MATLABta The Symbolic Math Toolbox ilave edilerek sembolik
matematiksel ilem yapma olanaklar salanmsa da, MATLAB temelde matrisler ile saysal ilem yapmak
zere hazrlanm bir paket programlama dilidir. MATLABn matrislerde ilem yapmas demek skalar ilemleri
yapamamas anlamna gelmemelidir. Dier taraftan bir skalar tek bir satr ve tek bir stundan ibaret bir matris
olarak ele alnabilir. Benzer ekilde bir tek satr veya bir tek stundan ibaret bir matris satr vektr veya stun
vektr veya ksaca vektr adn alr. MATLABn matrisler ile ilem yapmas demek; verileri matrisler
biiminde deerlendirmesi ve zmleri matris esasna gre yapmas ve sonular da matris biiminde
dzenlenmesi demektir.
Verilerin tanmlanmas ve deikenlerin atanmasnda kullanlan matrisler MATLABta keli parantez [ ]
iinde yazlr. rnein,

A=[3.5] veya a=3.5
B=[1 2 3 4 5]
C=[1 2 3; 4 5 6; 7 8 9];

eklinde veriler matris biiminde tanmlanabilir. Birinci satrda A deikenine atanan 3.5 deerindeki skalar
gereinde keli parantez kullanlmakszn da atanabilir. Buna karlk ikinci satrda bir dizin eklindeki veriler
bir satr vektr biimde keli parantez iinde atanmak zorundadr. nc satrdaki C matrisi rneinde ise
keli parantez iinde 3x3 lk matris oluturulmaktadr. Burada kullanlan noktal virgl iareti, ; matris satr
elemanlarnn sonunu belirler. Yine satr sonunda keli parantezin dnda yer alan ; iareti ise; MATLAB
ortamnda verilerin grntlenmesini nler. Bu iaret bulunmadnda nc satrdaki ifade yazlp enter tuuna
basldktan sonra ekranda

C=
1 2 3
4 5 6
7 8 9

eklinde matris grntlenir. MATLAB ile ilk defa almaya balayan ve matrisleri tanmaya .alan
kullanclarn matrisleri grntlemesi nerilir. Buna karlk m-dosyalar biiminde hazrlanan uzun
programlarda satr sonlarna ; iareti konarak ekranda grntleme ilemini nlenebilir ve bylece program
icras srasnda ortaya kacak zaman kayplar nlenmi olur.


3.2 MATRSLER

Matris elemanlar alelade rakamlardan ibaret olabilecei gibi MATLAB deyimlerinden ibaret de olabilir.
rnein
x=[-1.3 sqrt(3) (1+2+3)*4/5]
bildirimi
x= -1.3000 1.7321 4.8000
sonucunu dourur.
Bireysel matris elemanlar parantez (.) iindeki indislerle ilikilendirirler. Yukardaki rnee devam edecek
olursak
x(5)=abs(x(1))
bildirimi
x= -1.3000 1.7321 4.800 0.0000 1.3000

sonulandrr. Burada x, 5 elemanl olarak tanmlandndan ilk rnekten atanan 3 eleman, ilk eleman olarak
yerine yerletirmi 4. eleman otomatik olarak sfr aldktan sonra 5. eleman x2in 1. elemannn mutlak deerini
alarak yerletirmitir.
Kk matrisleri eleman olarak kullanp daha byk matrisler oluturmak mmkndr. rnein yukarda
verilen C matrisine aada gsterildii bir satr ekleyebiliriz.

C=[C; [10 11 12]]
Bu durumda

C=
1 2 3
4 5 6
7 8 9
10 11 12

olarak sonulanr. : iareti kullanmak sureti ile byk bir matristen daha kk bir matris oluturulabilir.
rnein
C=C(1:3, :)

Bildirimi ile yukarda en son oluturulan C matrisinin ilk 3 satr ve tm stunlar alnarak sol taraftaki C ye
atanr ve bylece ilk orijinal C matrisi elde edilmi olunur.
Verilerin deerlendirilmesinde stun ilemcisi : ok kullanldr. rnein

x=data(:,1)
y=data(:,2)

bildirimleri ile data ad altnda matris biiminde tanmlanan verilerin 1. stun x deikenine ve 2. stunu da y
deikenine atanm olur.
Benzer ekilde;
x=data(1,:)

data matrisindeki verilerin 1. satrn x deikenine atar.

X=data(:,2:3)

Data matrisindeki verilerin 2. ve 3. stunlarn x deikenine atar.

X=data(1:3,:)

Data matrisindeki verilerin 1,2 ve 3 nc satrlarn x deikenine atar.

Bu ekilde mevcut bir veri tablosundan ok deiik matrisler oluturmak mmkndr.

MATLABta kullanc, verileri kendi matrisleri ile tanmlayabilecei gibi MATLABn kendi zel
matrislerinden de faydalanabilir. Bunlarn belli ballar; ones, eye, zeros, magic, rand, randn eklindedir.

Ones(n) :Tm elemanlar 1 olan nxn elemanl kare matris oluturur.
Ones(1,n):Tm elemanlar 1 olan n elemanl bir satr matrisi oluturur.
Ones(n,1):Tm elemanlar 1 olan n elemanl bir stun matris oluturur.

Benzer ekilde eye ile kegen elemanlar 1 olan birim matris, zeros ile tm elemanlar sfr olan matris,
rand, randn ile elemanlar rasgele saylardan oluan bir matris oluturulabilir. help olanaklar ile daha ayrntl
bilgiler elde edilebilinir.



3.3 MATLABTA KULLANILAN SABTLER

MATLAB programlarnda kullanlabilen skalar deerler aada tanmlanmtr.Bu deikenlerin ierikleri
MATLAB komut satrnda yazlp, entera baslarak grntlenebilir.

pi(t)
t deeri pi ad altnda otomatik olarak saklanmtr. Programlar iinde kullanlan pi kelimesi dorudan t
deerine karlk gelir.

i,j( 1 )
i, j harfleri dorudan 1 deerine ayarlanmtr.

nf ()
Bu kelime MATLABta sonsuz deeri iin atanm bir deikendir ve sfra blme ilemlerinde ortaya
kar. Eer sfra blme ilemi grntlenmek istenirse bir uyar mesaj alnr ve sonu iareti eklinde
grntlenir veya baslr.

NaN
Bu deer Not-a-Number (rakam deil) anlamna gelir ve sfr bl sfr blmnde olduu gibi
tanmlanmam deyimlerde ortaya kar.

eps
Bu deer fonksiyon, kullanlmakta olan bilgisayar iin floatingpoint (virgll saylar) tamln ierir. Bu
epsilon taml 1.0 ve bunu izleyen enbyk decimal (onlu saylar) arasndaki farktr.

ans
Bu deiken bir deyim tarafndan hesaplanan fakat bir deiken ismi altnda saklanmayan deerleri
saklamak iin kullanlr.




3.4 MATLABTA ELEMAN ELEMANA HESAPLAMA LEMLER

Eleman elemana hesaplama ilemi eleman eleman icra edilir. rnein A ve Bnin 5er elemanl birer satr
vektr olduunu varsayalm. Bu deerler ile yeni bir C satr vektr oluturmann bir yolu, aada gsterildii
gibi A ve B deki karlk gelen deerlerin arpmlarn almaktr.

C(1) = A(1) * B(1);
C(2) = A(2) * B(2);
C(3) = A(3) * B(3);
C(4) = A(4) * B(4);
C(5) = A(5) * B(5);

Bu komutlar esasnda skalar komutlardr. nk herbir komut tek bir skalar deeri dier bir tek skalar deer
ile arparak arpm nc bir deer olarak saklamaktadr. MATLABda ayn boyutlu iki matris arasnda
eleman eleman arpma ileminin icras aadaki bildirimde gsterildii gibi,* ilemcisi ile ok daha ksa
yoldan yerine getirilir.

C = A.*B

Toplama ve karma ileminde eleman elemana hesaplama ve matris ilemleri ayndr. Dolaysyla bunlarda
farkl ilemci kullanmaya gerek yoktur. Buna karlk eleman eleman ilemlerinde arpma, blme ve st alma,
matris ilemlerindeki arpma, blme ve st alma ilemlerinden farkllk gsterir. Burada en nemli fark arpma,
blme ve st alma ilemcileri nnde nokta, . areti gelmesidir.
Eleman elemana hesaplama ilemleri yalnzca ayn boyutlu iki matris arasnda uygulanmayp ayn zamanda
skalar ve skalar olmayan deerler arasnda da uygulanr. Bununla beraber bir matrisin bir skalar ile arpm ve
blmnde ilemciler noktal ve noktasz olarak kullanlabilir. Buna gre skalar olmayan bir A matrisi iin
aada verilen bildirim takmlar birbirine denktir.

B=3*A; veya B=3.*A;
C=A/5; veya C=A./5;

Sonu matrisler B ve C her iki durumda da A ile ayn boyutta bir matris olur.

Eleman elemana arpm: Vektrlerde kullanlan eleman elemana arpma ilemini gstermek zere aada
verilen iki satr vektrn ele alalm.

A=[2 5 6]; B=[2 3 5];
C=A.*B
eklinde verilen bir komut
C=[4 15 30]
eleman elemana arpma sonucunu verecektir.

Eleman elemana blme: MATLAB ileri veya sadan blme, ./ ve geri veya soldan blme, .\ olmak zere iki
blme ilemcisi kullanr. Sadan eleman elemana blme komutu
C=A./B
biiminde olup bu da
C=[1 1.667 1.2]
Ann her bir elemann B tarafndan blmn sonulandrr. Buna karlk geri ve soldan blme (ters blme)
ilemi
C=A.\B

komutu ile gereklenir ki bu Bnin A tarafndan blmn sonulandrr.

C=[1 0.6 0.833]

Eleman elemana st alma: Bu ilemde eleman elemana st alnr. Yukarda tanmlanan A ve B vektrlerini ele
alacak olursak;

C=A.^2;
D=A.^B;

komutlar yolu ile C ve D vektrleri elde edilir.

C=[4 25 36];
D=[4 125 7776];

Ayn zamanda bir skalar tabann vektr ssn almak mmkndr.
rnein
C=3.0.^A;
bildirimi
C=[9 243 729];

Sonucunu douracaktr. Bu vektr ayn zamanda aadaki bildirimle de hesaplanabilir.

C=3.^A;

Burada MATLAB nokta iaretini . 3 sabitinin bir paras sayacak ve ona gre ilem yapacaktr. Bu da
matris ilemine karlk aada geleceinden kastedilene gre yanl olacaktr. Buna karlk aada gsterildii
gibi nokta ile sabit arasnda bir boluk konacak olursa yine doru sonu alnr.
C=3 .^A;

Bu rnekler eleman elemana hesaplama ilemi yaplrken ok dikkatli olunmas gerektiini gstermektedir.
Yazlan ifadenin doruluundan tam olarak emin olunmad durumlarda basit rneklerle baz testler yaplmas
yerinde olacaktr. Bunu aadaki rneklerle gsterebiliriz.
Bundan nceki rneklerde eleman elemana hesaplama ilemlerinde, vektrler kullanlmtr. Aadaki
rneklerde grld gibi eleman elemana hesaplama ilemlerinde matrisleri de kullanmak mmkndr.

d=[1:5; -1:-1;-5]
z=ones(d);
s=d-z;
P=d.*s;
Sq=d.^3;

Hesaplama sonular aada gsterildii gibidir.

D=
1 2 3 4 5
-1 -2 -3 -4 -5

Z=
1 1 1 1 1
1 1 1 1 1

S=
0 1 2 3 4
-2 -3 -4 -5 -6

Sq=
1 8 27 64 125
-1 -8 -27 -64 -125



4.1 DENKLEM TAKIMLARININ ZMLER

GR

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.
MATLABta dorusal denklemlerin zm matris ilemleri yolu ile ok basit ekilde zlebilir. Polinom
biiminde dorusal bir denklemin kkleri roots fonksiyonu yolu ile zlebilir. Dorusal denklem takmlar ise
sa veya sol matris blme ilemleri ve inv (matrisin tersini alma) fonksiyonu yardm ile zlr.
Dorusal olmayan denklemlerin zmnde; MATLAB iinde yer alan fmin, fmins, fplot, fzero fonksiyon
fonksiyonlar kullanlabilir. Dorusal olmayan denklem takmlarnn eitli snr artlar altnda zmnde
kullanlan ok deiik fonksiyonlar mevcuttur. Bunlar iinde en kullanls fsolve fonksiyonudur.



4.2 DORUSAL DENKLEM ZMLER

Tek deikenli bir dorusal sistemin denklemi, n. dereceden bir plinom biiminde;




tanmlanr. Burada f(x)=0 biiminde denklemin kklerini bulmak iin MATLAB iinde yer
alan roots fonksiyonu veya fzero fonksiyon fonksiyonu kullanlabilir. Fzero fonksiyon fonksiyonu daha ok
dorusal olmayan denklemlerin zmnde kullanlr. Roots fonksiyonunun kullanl, aada verildii gibi
ok basittir.

roots( [an, an-1,..., a2, a1, a0])

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.

rnek :Aada verilen 8. dereceden polinomun kklerini bulunuz.

f(x)=3x8+4x7-9x6+13x5-x4+1.5x3-10.5x2+15x-5

zm:

>> a=[3 4 9 13 1 1.5 10.5 15 5];
>>yp=roots(a)

veya
yp=roots( [3 4 9 13 1 1.5 10.5 15 5] )

bildirimi ile sonu u ekilde elde edilir.

X1= - 2.9170
X2= - 0.7475 + 0.7096i
X3= - 0.7475 0.7096i
X4= 0.6024 + 1.0396i
X5= 0.6024 1.0396i
X6= 0.7060 + 0.5552i
X7= 0.7060 0.5552i
X8= 0.4618



0 1
2
2
1
1
... ) ( a x a x a x a x a x f
n
n
n
n
+ + + + + =



Resim 5: rnein MATLAB ortamndaki zm ve kts







4.3 DORUSAL DENKLEM TAKIMLARININ ZMLER

n. dereceden dorusal denklem takm
n n nn n n
n n
n n
b x a x a x a
b x a x a x a
b x a x a x a
= + + +
= + + +
= + + +
...
..... .......... .......... .......... ..........
...
...
2 2 1 1
2 2 2 22 1 21
1 1 2 12 1 11


biiminde verilir. Bu denklem takmnn matris biiminde gsterimi

| | A | | x =| | B

eklinde tanmlanabilir. Burada;


(
(
(
(

=
nn n n
n
n
a a a
a a a
a a a
A
..
.. ... ...
..
..
2 1
2 22 21
1 12 11

| |
n
b b b B ..
2 1
=


katsaylar matrislerini ve

| |
3 2 1
... x x x X =


zm istenen deikenler matrisini (vektrn) gsterir.

Bu tr istenen denklem takmlarnn zm iin, iinde yer alan zel fonksiyonlar yoktur. Bu denklemlerin
zmnde matris ilemlerinden yararlanlabilir. AX=B biiminde verilen denklem takmnn zmnde A\B
biiminde soldan (blen blme iaretinin solunda yer almakta) matris blme ilemi ile yerine getirilir. XA=B
biiminde tanmlanan matris denklemin zmnde B/A eklinde sadan matris blme ilemi kullanlr. Sadan
ve soldan matris blme ileminde saysal Gauss eliminasyon teknii kullanlr.

Denklem Takmlarnn Ters Matris lemi Yolu ile zm

AX=B biiminde verilen ve Bnin satr matrisi olarak tanmland matris denkleminin her iki tarafn A-1
ile arparsak
A-1 AX=A-1B
elde edilir. Burada A-1 A, I olarak tanmlanan birim matrise denktir.
Buna gre
IX=A-1B
veya
X=A-1B

elde edilir.
MATLAB ortamnda bu zm;

X=inv(A)*B

komutu ile elde edilebilir. Dier taraftan Bnin stun matrisi olarak tanmland, XA=B biiminde ifade edilen
denklem takmnn zm iin, her iki taraf A-1 ile arplr ve gerekli dzenlemeler yaplrsa
X=BA-1
elde edilir.MATLAB ortamnda
X=B * inv(A)
bildirimi ile gerekli zm elde edilmi olur.


rnek : Aada verilen denklem takmnn zmn elde ediniz.

(
(
(
(

= +
= + +
= + +
= + +
15 5 2 10 3
1 2 4
16 2 7 2
2 4
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
x x x x
x x x x
x x x x
x x x x


zm : zm ilk nce soldan ve sadan matris blme ilemlerine gre ele alnacak ve daha sonra da ters
matris ilemine gre zlecektir. AX=B biiminde matris denklemi verildiinde zm soldan blme ilemine
gre aadaki bildirimlerle yerine getirilebilir.

a=[ 1 4 1 1; 2 7 1 -2; 1 4 -1 2; 3 -10 -2 5 ]
b=[ 2 16 1 -15 ]
>> x=a\b;

Denklem takmlar XA=B biiminde matris denklemi ile tanmlandnda zm sadan blme ilemi ile
aadaki ekilde salanr. Burada A ve B matrisleri bir nceki orijinal halinin traspozesi olmaktadr.

a=[ 1 2 1 3; 4 7 4 -10; -1 1 -1 -2; 3 -10 -2 5]
b=[2 16 1 -15]
x=b/a

Ters matris ilemi ile zmde; MATRS denklemi AX=B biiminde verildiinde, A ve B matrisi

a=[ 1 4 1 1; 2 7 1 -2; 1 4 -1 2; 3 -10 -2 5 ];
b=[ 2 16 1 -15 ]

biiminde tanmlandktan sonra

x=inv(a)*b;

bildirimi ile zm elde edilir: Benzer ekilde Matris denklemi XA=B biiminde verildiinde A ve B matrisleri,

a=[ 1 2 1 3; 4 7 4 -10; -1 1 -1 -2; 3 -10 -2 5]
b=[2 16 1 -15]
x=b*inv(a)

bildirimi ile zm elde edilir. Yukarda verilen bildirimler yolu ile x zm iin

x= 2.0000 1.0000 3.0000 -1.0000

eklinde elde edilmi olur. Burada x
1
= 2, x
2
=1, x
3
=3 x
4
=-1 dir.



4.4 DORUSAL OLMAYAN DENKLEMLERN ZM

Dorusal olmayan denklemlerin dorusal denklemlerde olduu gibi tek bir standart biimi yoktur. Gerek
MATLAB iinde gerekse Otimatization Toolbox iinde, gerek tek deikenli ve gerekse ok deikenli
denklemlerin zmnde kullanlan eitli zm fonksiyonlar vardr. Dorusal olmayan denklemlerin zm,
dorusal denklem zm kadar basit olmayp bunlarn zm iin ayrca bir fonksiyon dosyas hazrlanmas
gerekir.
Burada, MATLAB iinde yer alan fzero fonksiyon fonksiyonu ile Otimatization Toolbox iinde
yer alan fsolve fonksiyon fonksiyonu ayrntl bir biimde ele alnacaktr. Ayrca dier dorusal olmayan
fonksiyon fonksiyonlarnn ksaca tanmlar gzden geirilecektir.
fzero: Fonksiyon fonksiyonu; tek deikenli bir fonksiyonun sfrn hesaplar. Genel kullanm biimleri
aada olduu gibidir.

z=fzero(function,X0);
z=fzero(function,X0,tol);
z=fzero(function,X0,tol, trace);

fun(x) biimindeki bir fonksiyonun, X0 ile tanmlanan deere yakn olan tek bir sfrn hesaplar. Burada,
fonksiyonu sfr yapan, yani x eksenini kesen bir sfr deeri hesaplanr.
kinci bildirimde yer alan tol isimli, seimli argman bal hata toleransn belirler. nc bildirimde yer
alan seimli trace argman her bir hesap yineleme ilemindeki bilgileri grntler.
Fonksiyon fonksiyonu olan fzero fonksiyonunu kullanmak iin ayrca function ile balayan bir fonksiyon
dosyas hazrlanmas gerekir.


rnek: f(x)=x3-2x-5 fonksiyonunun bir sfrn bulunuz.

zm: nce bir fx.m ad ile fonksiyon dosyas hazrlanr.

Function y=fx(x)
y=x^3-2*x-5

Burada dosya ad fx ile fonksiyon ad fx ayn olmas gerektiine dikkat edilmelidir. Daha sonra MATLAB
ortamnda

z=fzero(fx,2)
bildirimi ile
z=2.0946

sonucu elde edilir. Burada X0=2 olarak tahmini bir balang deer verilmitir.
f (x) fonksiyonu gerekten bir polinom olduuna gre aada verilen roots komutu ile

p=roots([1 0 -2 -5])

Ayn fonksiyonu sfr yapan gerek deer ile birlikte karmak elenik kkleri de;
p=
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i

olarak elde edilmi olur



rnek : e
2x
x 2 biiminde verilen dorusal olmayan fonksiyonun bir adet sfrn bulunuz.

zm:Burada f(x) fonksiyonu;

f(x)=e
2x
x 2 biimine sokulabildiine gre fonksiyon dosyas;
function y=fex(x)
y=exp(2*x)-x-2;

biiminde hazrlanr. Daha sonra MATLAB ortamnda;

z=fzero(fex,1)
z0.4475

elde edilir.

Yukardaki rneklerden de grld gibi fzero fonksiyonu herhangi bir fonksiyonun tahmini bir sfrnn
hesaplanmasnda ve/veya dorusal olmayan denklemlerin zmnde daha kullanldr. Dorusal denklemlerin
ayn anda tm kklerini zmek gerektiinde roots fonksiyonunu kullanmak daha pratik olacaktr.

4.5 DORUSAL OLMAYAN DENKLEM TAKIMLARININ ZM

Dorusal olmayan denklem takmlarnn zmnde, Optimization Toolbox iinde yer alan fsolve
fonksiyon fonksiyonu kullanlr. fsolve fonksiyonu dorusal olmayan denklem takmnn zmn salar.
fsolve fonksiyonunun belli bal kullanm biimleri aada olduu gibidir.

x=fsolve(fun,x0)
x=fsolve(fun,x0,options)
x=fsolve(fun,x0,options,grad)
x=fsolve(fun,x0,options,grad,p1,p2, ...)
[x,options]=fsolve(fun,x0, ...)

fsolve dorusal olmayan denklemlerin kklerini hesaplar. k argman olan X deerleri; F(x)=0 eklinde
hesaplanr. Burada F(x) ve X skalar, vektr veya matrislerden ibaret olabilir.
x=fsolve(dun,x0) bildirimi, fun.m isimli M-dosyasnda tanmlanan denklemleri, X0 tahmini balang
deerlerinden balayarak zer ve sonucu X deikenine atar. Burada X0 boyutu x deiken says kadar
olmaldr.

kinci bildirimde yer alan seimli argman options seimli parametreler vektrn tanmlar. options iin pek
ok seenek mevcuttur. Bunlar ile ilgili bilgiler help folve yolu ile salanabilir.
nc bildirimde yer alan grad, X noktasnda fonksiyonlarn ksmi trevlerini (Jacobianlarn) df/dx,
df=grad(x) elde etmek iin kullanlr. dfin iinci stunu fdeki fonksiyonun iinci ksm trevine karlk gelir.


rnek: Bir metal kesme ilemine ait denklem takm

C=1.2+11.62323v-1f-1 + 5.7449x10-8v3f0.16d1.14
0.0499v0.95 f0.78 d0.75=20

biiminde tanmlanmaktadr. Burada c 1.27 i,le 1.28 arasnda bir deerdir. Tamamen nonlinear olan bu
denklemlerin zm iin gerekli fonksiyon dosyas

function f=nlnr(x)
&x(1)=v, x(2)=f, x(3)=d, deikenlerine .karlk gelmektedir.
F(1)=-0.08+11.6323/(x(1)*x(2))+5.744e-8 . . .
(x(1).^3)* (x(2).^0.16) * (x(3).^1.14);
f(2)=12.7 0.015*(x(1).^(-1.52))*(x(2).^1.004) . . .
*( x(3). ^0.25);
f(3)=20-0.0449*(x(1).^0.95)*(x(2).^0.78)
*(x(3).^0.75);

hazrlanabilir. Daha sonra MATLAB ortamnda fsolve ile aadaki bildirimler yolu ile zlr. Burada en
nemli husus balang deerinin seimidir. Uygun bir zm elde edilene kadar balang deerlerinin seimi
deitirilebilir.

x=fsolve(nlnr,[0.5 112.5 20]);
Bildirimi ile
X= 0.6686 217.4627 18.2436

Sonucu elde edilir. Bu sonu f fonksiyonlar ile test edildiinde

f= 1.0e-008 *(-0.0573 -0.5991 0.5776)

sfra ok yakn deerler elde edildii grlr. Buna karlk X0 balang deerleri aada olduu gibi seilecek
olursa

>>x=fsolve(nlnr,[1 2 100]);

Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND= 6.79344e-017
Maximum number of iterations has been exceeded

Biiminde bir uyar alnr. Buda zmn yeterli tamlkta gereklenmediini gsterir. Gerekten de f fonksiyon
deerleri aadaki biimde yazlarak test edildiinde

>> F(1)=-0.08+11.6323/(x(1)*x(2))+5.744e-8 . . .
(x(1).^3)* (x(2).^0.16) * (x(3).^1.14);

>> f(2)=12.7 0.015*(x(1).^(-1.52))*(x(2).^1.004) . . .
*( x(3). ^0.25);

>> f(3)=20-0.0449*(x(1).^0.95)*(x(2).^0.78)
*(x(3).^0.75);

f= 0.1715 0.2316 0.5576

sfrdan olduka farkl deerler elde edildii grlr. Bu durumda balang deerlerini deitirmek sureti ile
uygun zmler aratrlmaldr.

Optimization Toolbox iinde, dorusal olmayan denklemlerin, deiik ekilde zmnde
kullanlan dier pek ok fonksiyon vardr. Bunlarn tanmlar aada kullanlan dier pek ok fonksiyon vardr.
Bunlarn tanmlar aada olduu gibidir. Genel kullanm biimleri MATLAB ortamnda help komutu ile elde
edilebilir.

attgoal oklu-amal hedefe ulama problemi zm
constr Kstl minimizasyon zm
fmin Skalar kstsz minimizasyon zm.
fminu, fmins Kstsz minimizasyon zm.
Fsolve Dorusal olmayan denklem zm.
leastssq Dorusal olmayan en kk kareler zm.
minimax Minimum-maksimum zm.
seminf Yar mutlak minimizasyon
lp Dorusal programlama
nnls Negatif olmayan en kk kareler zm.
qp Erisel programlama.




5.1 MATLABTA DFERANSYEL DENKLEM ZMLER

Birinci dereceden bir diferansiyel denklemin genelletirilmi biimi

y'=
dx
dy
=g(x,y)
eklinde ifade edilebilir. Burada; x bamsz deiken ve y de baml deikendir. Birinci dereceden bir
diferansiyel denklemin zm f
'
(x) = g(x,y) fonksiyonundan elde edilen y=f(x) eklinde bir fonksiyondur. Bir
diferansiyel denklem zmnn saysal hesaplamas y
'
trevinden y nin elde edilmesi iin gerekli integrasyon
ilemini ( y =
}
=
=
b x
a x
dx y x g ) , (
) kapsar. Bir diferansiyel denklemin zm genellikle bir fonksiyonlar ailesi
biimindedir. Tek bir zel zmn hesaplanabilmesi iin snr koullarnn (x=a, x=b) tanmlanmas gerekir.



5.2 MATLABTA DFERANSYEL DENKLEMLERN SAYISAL ZM

MATLABta diferansiyel denklemlerin saysal zmnde kullanlan; ode23 ve ede45 adnda iki adet Ruge-
Kutta fonksiyonu mevcuttur. Bunlardan; ode23 fonksiyonu ikinci ve nc dereceden Runge-Kutta integrasyon
denklemlerini, ode45 fonksiyonuda drdnc ve beinci dereceden Runge-Kutta integrasyon denklemlerini
kullanr. ode23 ve ode45 fonksiyonlarnda ayn trden giri ve k argmanlar kullanlr.

Ode fonksiyonlarnn genel kullanm ekli;

[y t] = ode23(yprime,t0,tf,yo,tol,trace);

biimindedir. Giri argmanlarnn aklamas ise aada olduu gibidir.

Yprime:
ntegre edilmesi gereken diferansiyel denklem takmn tanmlayan fonksiyon dosyas, m-uzantl olarak
saklanan fonksiyon dosyas ve fonksiyon ad ayn (rnein yprime) olmal ve ode fonksiyonlar ile
arldnda (trnak) iinde gsterilmelidir. Kullanc tarafndan hazrlanan fonksiyon dosyas
bamsz deiken, x ve baml deiken, y olmak zere iki giri argmanna ve aada gsterilen,
durum trevlerinin bir stun vektr olan ydot(y') kna sahiptir.

dx
dy
y
i
=
'
veya
dt
dy
y
i
=
'


Fonksiyon dosyas function ydot=dosya_ad(t,y) bildirimi ile balar ve zlecek DD takm
denklemlerinin MATLAB formatnda yazlm ile devam eder.

t0:
ntegrasyon iin balama zaman veya y=f(x) eklinde herhangi bir fonksiyonun integre edilmesi
halinde integrasyon aralnn balang deeri, a.

tfinal:
ntegrasyon zamannn nihai deeri veya y=f(x) eklinde herhangi bir fonksiyonun integre edilmesi
halinde integrasyon aralnn sona erme deeri, b.

y0:
Bamsz deikenin veya snr deerleri. Bir diferansiyel denklem takmnn zm halinde balang
koullar bir satr vektr biiminde olur.



tol:
Seime bal bir argman olup zmde integrasyon ileminin hata snrlarn belirler. Eer bu argman
arlan fonksiyonda yer almazsa ode23 fonksiyonunda hata snr deeri 1.0e-3 ve ode45 ile hata snr
deeri 1.0e-6 olarak otomatik belirlenir.

trace:
stee bal bir argman olup hesaplama srasnda elde edilen ara deerlerin saklanp saklanmayacan
belirleyen bir bayrak (flag) tr. 0 deeri saklanmayacan ve 1 deeri saklanacan gsterir.
Kullanlmamas halinde otomatik olarak 0 kabul edilir.

ode fonksiyonlar ile elde edilen zmn sonular bir t ve y matrisleri biiminde daha sonra kullanlmak
zere saklanr. Burada birinci argman, t bir stun vektr eklinde zaman deerlerini veya y=f(x) halinde
bamsz fonksiyon deerlerini temsil eder. kinci argman, y; diferansiyel denklemin derecesine bal olarak
durum deikenleri matrisini temsil eder. Bu matris durum deikenlerinin says kadar stuna sahiptir. Satr
says ise zmn durumunu belirler.
ode fonksiyonlarnn kullanm ve bunlar ile birlikte kullanlacak diferansiyel denklem fonksiyon
dosyalarnn yazlmasn aklamak zere basit bir birinci dereceden diferansiyel denklem zm rnei verelim.

rnek: Aada verilen birinci dereceden diferansiyel denklemin y(0)=1 balang koulu ve [1,10] snr
deerleri arasndaki zmn bulalm.

y'=
dx
dy
=g
1
(x,y)=4x
3
cosx
2
-x
2

zm: Problemin zm iin, ilknce aadaki fonksiyon dosyas yazlr. Fonksiyonun yazlmas iin
MATLABn dahili editr kullanlabilir. Bunun iin MATLAB komut satrnda edit yazlp entera baslr.
MATLABta saysal diferansiyel zmleri iin ode fonksiyonlar kullanlr. ode fonksiyon dosyalar daha
nceden de anlatld gibi fonksiyon fonksiyonu dosyalardr. Yani zm retilecek probleme ait fonksiyonu
girdi olarak kabul ederler. Sonucu ise problemin baml ve bamsz deikenlerine karlk gelecek ekilde
matrissel olarak retir. Bundan dolaydr ki, eleman says birden fazla olan matrissel sonular gzlemlemenin
en iyi yolu grafiini izdirmektir. MATLAB programnda bu ii yapan fonksiyon ya da komut plot (iz)
komutudur. Plot komutunun kullanm ekli problemin zm srasnda anlatlacaktr

function dy =deneme(x,y)
dy=4*x^3*cos(x^2)- x^2;

function kelimesiyle balayan dosyann fonksiyon ad deneme olarak belirlendiinden dosya ad da
deneme.m olarak saklanmaldr.

MATLAB ortamnda zm salayan bildirimler ve grafik kts aadaki gibidir.

>> [a b]=ode23(deneme,1,10,1);
>> plot(a,b,b-);
>> title( DENEME denkleminin zm );
>> xlabel(x ekseni)
>> ylabel(y ekseni, ( y=f(x) ));




Resim 6: zmn grafik kts


MATLAB ortamnda altrlan yukardaki bildirimler ile aadaki admlar gerekletirilmitir;

a) birinci satrda ode fonksiyonu ile arlan diferansiyel denklem fonksiyonunun saysal
zm gerekletirilmektedir; bundan sonra ode ileminin sonucunda a ve b nin ierikleri aadaki gibi
olmutur.





























a =

1.0000
1.0689
1.1474
1.2191
1.2850
1.3472
1.4055
1.4593
1.5059
1.5507
1.6170
1.7305





b =

1.0000
1.0720
1.1178
1.0967
0.9936
0.7938
0.4889
0.0855
-0.3743
-0.9221
-1.9382
-4.2596







b) ikinci satrda zm sonularnn plot komutu ile izdirilmesi salanmaktadr.Burada Plot komutunun
kullanm ekli aadaki gibidir.

plot(x,y,seenek)

x: Kordinat dzleminde x eksenine karlk gelecek olan deerler topluluu.
y: Kordinat dzleminde y eksenine karlk gelecek olan deerler topluluu.
seenek: Seenek parametresi zorunlu deildir. Grafik ktsnn grsel adan zelliklerini belirleyen bir
deerdir. rnekte kullanlan b- ifadesi grafiin mavi (b:blue) renkte izgisel (solid) olarak
oluturulacan belirtir. Kullanlabilecek parametreler aadaki gibidir

renkler nokta belirtecleri izim sitilleri



y yellow . point - solid
m magenta o circle : dotted
c cyan x x-mark -. dashdot
r red + plus -- dashed
g green * star
b blue s square
w white d diamond
k black v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram

c) nc satrda ,aklayc olmas asndan grafie balk verilmitir.
d) drdnc satrda, grafiin x eksenine ait bir aklama verilmitir.
e) beinci satrda, grafiin y eksenine ait bir aklama verilmitir.



5.3 MATLABTA DFERANSYEL DENKLEMLERN SEMBOLK ZM


MATLAB program her nekadar sembolik zmler gerekletirmek zere gelitirilmi bir paket program
olmasa da, MATLABa 4.0 srmnden sonra The Symbolic Math Toolbox ad altnda bir paketin
eklenmesiyle bu i iinde kullanlmaya balanmtr. Sembolik zmlemenin anlam; bir saysal zm elde
etmek yerine, saysal zmn bir basamak gerisinde kalan, saysal zm verebilecek bir fonksiyon elde
etmektir. MATLABta diferansiyel denklem zm iin kullanlan fonksiyon fonksiyonu dsolve (differantial
solve: diferansiyel zmle)dur.

dsolve fonksiyon fonksiyonu :

Dsolve fonksiyonu sradan diferansiyel eitliklerin sembolik zmn bulur. dsolve('eitlik1','eitlik2', ... ,
bsart1,bsart2,...) eklinde balang artlarn ve sradan diferansiyel eitlikleri parametre olarak alr. Bu
ekilde birok balang art ve eitlik beraberce kullanlabilir. Dsolve fonksiyon fonksiyonu sunucu default
olarak, bamsz deiken t ye gre hesaplar. Bu t varsaylan, fonksiyonun sonuna eklenecek bir baka
bamsz deiken ile deitirilebilir.rnein;

dsolve('eitlik1','eitlik2', ... , bsart1,bsart2,...,x)

D harfi bamsz deiken sras ile diferansiyel bulmay belirtir,genellikle D, d/dt dir.Ayrca
D2=d^2/dt^2 olarak ifade edilir. Hemen D diferansiyel bulma operatrn izleyen herhangi bir karakter,
baml deiken olarak alnr.rnek olarak, D3y y(t)nin 3.trevini belirtir. Dikkat edilmesi gereken bir nokta
vardr, buda D harfinin eitliin herhangi bir yerinde sembolik deiken olarak kullanlmamasdr.

dsolve fonksiyonunda, y baml deikenlerden biri ve a ve b sabitler olduunda y(a)=b veya Dy(a)=b
eklinde balang artlar belirtilebilir. Eer balang artlarnn says baml deikenlerin saysndan az
verilirse, meydana gelen zmler rasgele sabitler (C1,C2,C3,...gibi) ierir.

dsolve fonksiyonu eer, belirgin bir zm bulduysa bunu ekrana basar, eer belirgin bir zm
bulunamazsa bir uyar verilir ve bo bir sym(symbolic) deeri geri dndrlr. Ayrca dsolve fonksiyonu baz
durumlarda diferansiyel eitlik veya integral ieren ifadeler ieren zmler bulabilir.


5.3.1 Birinci Mertebeden Adi Diferansiyel Denklemler

rnek 1: (3x
5
y
5
-2y)dx + (5x
6
y
4
+x)dy=o denklemini zelim.

zm:

Denklemi dsolve fonksiyon fonksiyonunu kullanarak zebilmek iin aada olduu gibi ifade etmek
gerekir. Burada matematiksel operatrlere ve bunlar evreleyen parantezlerin konumlarna dikkat etmek gerekir.
Burada fazla parantez kullanmak lehimize olacaktr, bylece yazabileceimiz olas hatal ifadelerden de
kurtulmu oluruz.

(3*x^5*y^5-2*y)*Dx+(5*x^6*y^4+x)*Dy=0

Denklemin zm iin MATLAB komut satrna aadaki komutu girmek yeterlidir.
>> dsolve('(3*x^5*y^5-2*y)*Dx+(5*x^6*y^4+x)*Dy=0')

bu komuttan sonra MATLAB komut penceresinde grntlenen zm fonksiyonu aadaki gibidir.

ans=

C1+x^3*y(t)^5+1/x^2*y(t)=0

Bu sonucu daha anlalr ifade etmek gerekirse;

x
3
y
5
+ x
-2
y=c dir.



rnek 2: (x
2
+3y
2
) dx + 2xy dy=0 denkleminin zmn bulalm.

zm:

Bu denklemin zm iin gerekli MATLAB komutu aadaki gibidir.

>> dsolve('(x^2+3*y^2)*Dx+(2*x*y)*Dy=0')

Bu komutun kts yle olur.

ans =

C1+x^3*y(t)^2+1/5*x^5=0

Bu sonucu daha anlalr ifade etmek gerekirse;


c y x
x
= +
2 3
5
5
dir.




5.3.2 Homogen diferansiyel denklemler

Birinci mertebeden bir leneer adi direfansiyel denklemin

) , ( y x f
dx
dy
=

eklinde verildiini biliyoruz. Eer, y/x veya x/y nin bir g-fonksiyonu bulunabilirse, yle ki,

) / ( ) , ( x y g y x f
dx
dy
= =

olsun ozaman f(x,y) fonksiyonuna homogen fonksiyon ve yukardaki denkleme homogen diferansiyel denklem
denir.

rnek 1: 0 ) (
2 2
= + + xdy dx y x y denklemini zelim.
zm:

zm iin gerekli MATLAB komutu aadaki gibidir.

>> cozum=dsolve('(y+sqrt(x^2+y^2))*Dx-x*Dy=0')


Burada sqrt fonksiyonu karekk alma fonksiyonudur. Problemin zm olarak;


cozum =

[ (1-2*C1*y(t))^(1/2)/C1]
[ -(1-2*C1*y(t))^(1/2)/C1]

eklinde bir stun matris olumutur. Burada matrisin 1. eleman ile 2. eleman arasndaki tek fark iaretlerinin
farkl olmasdr. Bu da problemin iki farkl zm olduunu gstermektedir.

Burada sonu ifadesinin okunabilirlii azdr. MATLABta bunu normal, matematiksel tarzda ifade etmeye
yarayan bir fonksiyon vardr. Bu fonksiyon aadaki gibidir.

pretty(symbolic)

symbolic ifadesi normal matematiksel tarzda yazlmas istenen fonksiyona karlk gelmektedir. pretty
fonksiyonun ile kullanlacak parametre mutlaka sembolik olmaldr.rnek olarak bulduumuz cozum adndaki
stun matrisi sembolik biimdedir. Bunu rneimize uygularsak, yazacamz komut satr ve rnek ekran kts
aadaki gibidir.

>> pretty(cozum)
veya
>> pretty(dsolve('(y+sqrt(x^2+y^2))*Dx-x*Dy=0'))






Resim 7: pretty komutunun kullanm








5.3.3 Birinci mertebeden lineer diferansiyel denklemler

) ( ) ( x Q y x P
dx
dy
= + eklindeki denklemlere lineer diferansiyel denklem denir.


rnek 1: y'+(1/x)y = sin x denklemini zelim

zm:
Burada y'=dy / dx olduundan bamsz deiken xtir.x dsolve fonksiyonun sonunda belirtilir. zm
iin gerekli MATLAB komutu aadaki gibidir.

>> pretty(dsolve('Dy+(1/x)*y=sin(x)','x'))

elde edilen sonu;

x
C x x x 1 ) cos( ) sin( +
gibidir.


rnek 2: y e
dx
dy
x
3
2
+ = denklemini zelim.

zm:
MATLABta kullanlabilecek bir e sabiti yoktur. e zerili ifadeleri belirtmek iin exp(p) fonksiyonu
kullanlr. Buradaki p e nin ss olan deerdir. rnein exp(1)= 2.7183 dr. zm iin gerekli MATLAB
komutu aadaki gibidir.

>> pretty(dsolve('Dy=exp(2*x)+3*y','x'))

elde edilen sonu;

-exp(2 x) + exp(3 x) C1 olur.




5.3.4 BERNOULL DENKLEM

Birinci mertebeden bir adi diferansiyel denklem,

) ( ) ( x Q y y x P
dx
dy
n
= +

eklinde ise bu diferansiyel denkleme Bernoulli denklemi denir.

rnek:
x
y
x
y
dx
dy
2
= denklemini zelim

zm:

zm iin gerekli MATLAB komutu aadaki gibidir.

>> pretty(dsolve('Dy-y/x=-y^2/x','x'))

elde edilen sonu;


1 C x
x
+
olur.
















KAYNAKLAR

- MATLAB LE MHENDSLK SSTEMLERNN ANALZ VE ZM
Prof.Dr. brahim YKSEL U..Makine Mhendislii Blm 1996

- DFERANSYEL DENKLEMLER VE UYGULAMALARI
Prof. Dr. Mehmet AYDIN
Gnl GNDZ
Beno KURYEL
Yard. Do. Dr. Galip OTURAN
zmir 1999

- HTTP://WWW.MATHWORKS.COM
- HTTP://EDUCATON.MATHWORKS.COM


HAZIRLAYAN: ZGR KOCA
9962013 GTEF B.S. PROGRAMI
ARALIK 2000 / ANKARA

You might also like