matlab çıktısı

download matlab çıktısı

of 33

Transcript of matlab çıktısı

  • 8/2/2019 matlab kts

    1/33

    1.1 MATLAB

    MATLAB; (MATrix LABoratory); ilk defa 1985de C.B Moler tarafndan matematik ve zellikle de matrisesasl 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) Cdilinde hazrlanmtr.MATLAB mhendislik alannda (hesaplamalarnda); saysal hesaplama, veri zmleri ve

    grafik ilemlerinde kullanlabilecekgenel 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 alanSIMULINK, etkileimli benzetim programlarnn hazrlanmas ve altrlmasnda byk kolaylklarsalamaktadr.

    1.2 MATLABIN KULLANIM AMACI VE YER

    MATLAB tm mhendislik alannda, saysal hesaplamalar, veri zmlenmesi ve grafik ilemlerindekolaylkla kullanlabilen bir programlama dilidir. FORTRAN ve C dili gibi yksek seviyeden programlama

    dilleri ile yaplabilen hesaplamalarn pekounu MATLAB ile yapmak mmkndr. Buna karlk MATLABnfonksiyon ktphanesi sayesinde FORTRAN ve dier programlama dillerine gre MATLABta daha az saydakomutla zn retmek mmkndr Gerekte MATLAB, M-dosyalar (M-files) olarak bilinen pek ok saydafonksiyon dosyalarndan (altprogramlardan) ibarettir. M-dosyalar ASCII formatnda olup okunabilirlii olan,MATLAB programlama dili kodlarndan olumutur. Bu yzden M-dosyalar ktphanesi kullanc tarafndanmdahale 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 olanMATLABn 5.3.10183 (R11) srmdr.MATLABn bu srmn bilgisayara kurmak nceki srmlerinegre 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.

  • 8/2/2019 matlab kts

    2/33

    Resim 1:MATLAB kurulum penceresi

    Kurulum iin gerekli lisans numaras da girildikten sonra imdi sra, seimlik MATLAB bileenleriniyklemeye 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 16MB bellek gereklidir.Buradaki 1.5 GB boluk dosyalarn extrack ilemi iin gereklidir.Kurulum sonrasndaMATLAB sabit diskte 300 MB kadar yer kaplayacaktr. Ayrca kurulum aamasnda Trke dil zellii yklolan 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 mnsnekendi ksayollarn yerletirir. MATLAB bu seenekler vastasyla bellee yklenebilir. MATLAB ortamnagirildiinde, ( >> ) biiminde MATLAB iletisi ile karlalr. Bu ileti kullancya, bir komut girmek zereMATLABn hazr bulunduunu syler.

  • 8/2/2019 matlab kts

    3/33

    Resim 3 :MATLAB komut penceresi ekran

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

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

    Saklama ve Ykleme (save & load ) : ktan nce MATLAB ortamnda elde edilen deikenlerinieriklerinin saklanmas gerekiyorsa savekomutu kullanlr. Bu durumda tm deikenler matlab.mat adl birdosya iinde, ikili saylar kodunda otomatik olarak saklanr. Tekrar MATLAB ortamna girildiinde, gerekligrldnde saklanan deikenlerload 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 grntlemearayz ayn anda kullanlamazd. MATLABn son srmlerinde Windows iletim sistemi ile birlikte bu ikipencereyi de ayn anda kullanmak mmkndr.Bu da kullancya problem zmlerinde byk hz ve esneklikgetirir.

    Bir alma srasnda komut penceresi silinmek istenirse clckomutu kullanlr. Baz durumlarda almaortamnda oluturulan deikenler ok fazla yer tutmaya balar ve bu yzden kk bilgisayar sistemlerindebellek sorunu (OUT OF MEMORY) ortaya kabilir. Bu durumdan kurtulmak iin clear ve packkomutlarkullanlabilir. Clear komutu bellekte yer alan, kullanc tarafndan tanmlanan tm deike nleri vefonksiyonlar siler. Eer deikenlerin program iinde tekrar kullanlmas gerekiyorsa pack komutu dahakullanldr. Pack komutu bilgileri gerekli enkk bellek alanna sktrarak bellekte belli bir serbest alanoluturur. 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 g rnen verigrntleme 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 iletisikarmza kar ki bu da komut icrasnn kullanc tarafndan sona erdirildiini gsterir.

    Byk ve kk harf duyarll (casesen off, casesen): MATLAB byk ve kk harfkarakterlerini ayrt eden bir dildir. Buna gre; bir deiken TIMEad ile atanabilirken, dier bir deiken timead ile ve dier baka deer de Timead ile atanabilir. Bu durumda bir karaktere birden fazla deer atamakmmkndr. Ayrca casesen off komutu ile bu durum sona da erdirilebilir. Bylece byk ve kk harfkarakterlere duyarllk ortadan kalkm olur.

    Deikenlerin ve matrislerin durumu (who, whos, what, size): Kullanc tarafndan program iindetanmlanan deikenlerin ve matrislerin durumunu gzden geirmek iin who, whos, what, size gibikullanl komutlar bulunmaktadr. Who komutu kullanc tarafndan tanmlanan deikenlerin listesini

  • 8/2/2019 matlab kts

    4/33

    grntler. whoskomutu bu deikenleri boyutlar ile birlikte ve bu deikenlerin sfr olmayan sanal ksmlarolup olmadn da grntler. whatkomutu kullanc diskinin halihazr dizininde mevcut M-dosyalar listesiniverir.

    Yardm (help):Yardm imkan MATLABta en nemli kaynaktr. alma ortamnda sadece help komutuile, nce yardm alnabilecek dosyalarn bulunduu dizinler ve sonrada yardm alnabilecek konularn listesi

    grntlenir. Kullanc daha sonrahelpkomutu ile birlikte yardm istedii konuyu yan yana yazarak istediikonuda yardm alabilir.rnein

    help step

    komutu ile step konusunda gerekli yardm almak mmkndr. Bylece arzu edilen konu veya komutun neekilde ve nerelerdekullanlabilecei hakknda gerekli bilgi salanm olur. Yardm kaynan iyi bir biimdekullanmak suretiyle, kullanc kullanm klavuzuna gerek kalmakszn MATLAB ilemlerini kolaylkla yapmaolanana sahip olur. Ayrca rnein helpwin step komutu ile ayr bir yardm penceresinden bilgi almakmmkndr

    Yazm (type): type komutu belli bir dosyann ieriini grntler. M-dosyalarnn grntlenmesinde dosyaadndan sonra M uzantsnn yazlmasna gerek yoktur. rnein type polyfitdosyasnda yer alan % iareti ilegizlenen aklama satrlarn grntler.

    MATLABta DOS:MATLAB eski srmlerinden kalma bir zellii bnyesinde bulundurur. MATLAB komutsatrnda ( >>) ! (nlem) karakteri kullanlarak dos komutlar iletilebilir. Bu durum da MATLAB dos komutsatrn 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 birsatr sona erdirip bunu izleyen satrn olumasn salar. Bylece mxn boyutundaki bir matrisi kolaycaoluturmak mmkndr. Vektr ve matrisler [ ] keli parantez iinde gsterilir. rnein bir A matrisinin satrsays B matrisinin satr saysna eit ve B nin satr says ve A nn stun says art B nin stun says C nin stunsaysna 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 birvektrdr ve

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

    eklinde gsterilir. Vnin elemanlar en yakn tamsayya yuvarlatlarak indisler olarak kullanlr. Eer bu tr birindisin deeri 1 den kk veya Xin boyutundan kk olacak olursa hata ortaya kar. Baz rnekler verecekolursak; 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 )

  • 8/2/2019 matlab kts

    5/33

    komutu yukardaki ilemi ters evirir. Benzer ekilde dolayl indisleme matrislerde de kullanlr. rnein VninM 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

  • 8/2/2019 matlab kts

    6/33

    +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 eyeeklenir.

    -

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

    *Matrisyel ar pm 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 saysnaeit 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 hemeninv(A)*B ilemi ile ayndr. Yalnz hesaplama biimleri farkldr. Eer A NxN elemanl bir matris ve B de Nelemanl Stun vektr ise X=A\B ifadesi Gaussian eliminasyonu yoluyla hesaplanan A*X=B denklemi iin birzmdr. 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 melemanl 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 hemenB*inv(A) ile ayndr. Yalnz hesaplama yntemleri bakmndan farkllk gsterir. Dier bir biimi ileB/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 ileblnebilir.3./A ile 3 ./A ayn ilem olmadna dikkat etmek gerekir. nk birinci ifadede nokta 3 rakamnn kesiriaretini gsterdiinden matris blme ilemini yaptrr ve ikinci ifade de ise nokta eleman elemana blme

    ilemini iaret eder.

    ^Matrisyel kuvvet alma ilemcisi. Z=X^yifadesi 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 iinhesaplama zdeerler ve zvektrler yolu ile gereklenir. Z=x^Y ifadesinde xin Yinci kuvvetinin alnmasndaeer Y bir matris ve x bir skalar ise hesaplama ilemi zdeerler ve zvektrler kullanlarak yaplr. Z=X^Y deX 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.

  • 8/2/2019 matlab kts

    7/33

    ...den kk bant ilemcisi. = , = = , ~ = 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 Bayn 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 farklelemanlara 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 ifadelerinzmlenmesinde genellikle kullanlmaz. Yalnz 4.0 ve daha sonraki srmlerinde The Symbolic MathToolboxilavesi ile sembolik ilemlerdede kullanlabilmesi salanmtr.

    MATLAB, matris laboratuar kelimelerinin ksaltmasndan tretilmi olarak btn ilemlerini matris esasnadayal olarak yapar. Burada kastedilen matris en genel anlamda m*n elemandan ibaret dikdrtgen bir matrisolabilecei gibi tek bir elemandan ibaret bir skalar da olabilir. Tek bir stn veya bir satrdan ibaret zelmatrisler ise vektrler olarak bilinir. Bu adan MATLAB ortamndaki ilemler ve komutlar matris cinsindenicra 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 istenenparametre ve veriler normal parantez iinde yazlr. Tek bir saydan ibaret veri ise keli parantez kullanmadanda girilebilir.

    rnek 1.1: dat = ...[ 0 0

    1 102

    203 254 30

  • 8/2/2019 matlab kts

    8/33

    5 356 407 458 509 5510 6011 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 vetip 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 sonrakullanlmak zere saklanr. Dier taraftan MATLABn zel fonksiyonlar yolu ile de matrisleri oluturmakmmkndr. rnein;

    a = ones( 5 );

    komutu ile tm elemanlar 1 olan 5*5 likbir a matrisi oluturulabilir. Bunun gibi zeros fonksiyonu ile tmelemanlar 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-dosyalareklinde 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 TEXTkodunda girilerek saklanabilir. Dosya ismini veri.m ile belirlersek daha sonra MATLAB iinde veri komutu ileverileri istediimiz kadar arabiliriz. Bu veriler MATLABta dat deikeni altnda 2 stun x 10 satrlk birmatris olarak tanmlanmaktadr. Bu matristeki veriler farkl yerlerde kullanmak istersek yeni deikenleratamamz 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 fazlazaman kayb yaratmayan dosyalardr. MAT-dosyalar MATLAB iinde save komutu ile saklanan veMATLABta 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 tarafndanotomatik bir ekilde oluturulur. Bu matrisler MATLAB iinde

  • 8/2/2019 matlab kts

    9/33

    Load dat1;

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

    Save dat1.m z /ascii

    Komutu ile z matrisi dat1.m dosyas iinde ASCII karakterleri (herhangi bir TEXT editr altndaokunabilir ve yazlabilir karakterler) cinsinde saklanabilir. TEXT dosyalar MATLAB programlar dndakiprogramlar (C, FORTRAN, BASIC vb. gibi) tarafndan kullanlmas gereken veriler iin gereklidir. MATLABiinde tekrar tekrar kullanlan verilerin ise .MAT (binary-ikili saylar) uzantl saklanmas tercihedilmemelidir. (Burada binary saklanmasnda anlatlmak istenen ey; MATLABn bu dosyalar yazarken kendiyazm 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 yorumlanrve deerlendirilir. MATLAB bildirimleri ounlukla aadaki ekildedir.deiken=deyim

    ve basitedeyim(expression)

    olabilir.Deyimler ilemci iaretlerinden, dier zel karakterlerden fonksiyonlardan ve deiken isimlerindenibaret olabilir. Deyimin deerlendirilmesi ve zm sonucunda bir matris oluturulur. Bu sonu ekrandagrntlenebilir 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 olarakoluturulur. 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 zeresaklanm olur. Burada bildirimin sonuna konan ; iareti konulmayan bildirimlerin sonular hem saklanr hemde o anda ekranda grntlenir. zellikle elde edilen sonularn ok byk yer tuttuu durumlarda bunlarn oanda ekranda grntlenmemesi daha uygun olur. Ayrca program icras bittikten sonra istenen veriye ait

    deiken yazdrlarak ekranda grntlemek de mmkndr. rnein yukarda x matrisinin hesaplanan deeria deikenine atandktan sonra, MATLAB ortamndan ayrlmadka ve a deikenine baka bir atamayaplmad mddete ekranda ekranda a yazarak sonucu grntlemek veya bu deikeni herhangi birhesaplamada kullanmak mmkndr. Ayrca bu deikenleri save komutu ile saklayarak daha sonrakiMATLAB almalarnda da kullanmak mmkndr. MATLAB ortamndan ayrlmadka kendine bir deeratanan deiken tekrar tekrar kullanlabilir. Yalnz bu durumda ayn deikene yeni bir deer atanmamasgerekir. 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 yazlabilecekkarakter says genellikle 80 karakterle snrldr. Deyimin ok karmak olduu ve tek satra sdrlmaddurumlarda, 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...

  • 8/2/2019 matlab kts

    10/33

    -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 yeralan ... iareti ilemin ikinci satrda devam edeceini syler. Bu durumda ikinci satr elemanlar yazlp entertuuna 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 dammkndr. Bu durumda ounlukla ayn program iin daha az sayda satr kullanmak yeterlidir. MATLABnhar M-dosya paketlerini kullanmak suretiyle programlamay ok ksa tutmak mmkndr.

    2.2 M-DOSYALARI

    MATLABn kendisi byk oranda herhangi bir program iinde arlp kullanlabilen altprogramlardanibaret hazr M-dosyalarndan olumutur. MATLABta M-dosyalar okunabilir ve yazlabilir TEXT dosyalardr.Bu nedenle MATLABa ait M-dosyalarnn yanllkla deitirilmemesi gerekir. Aksi takdirde orijinal greviniyerine getiremez. Bu nedenle de bir programc kendi hazrlad M-dosyalarn kendine ait bir alt dizindesaklams 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 MATLABnkendi M-dosyalarna benzer biimde hazrlanan fonksiyon dosyalar herhangi bir ana program iinde biraltprogram gibi kullanlabilirler.

    2.3 DZ YAZI DOSYALARI

    Bir dizi komutlardan ibaret dz yaz dosyalar, MATLAB iinde arldnda dosya iinde bulunankomutlar 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 vesonulandrr. Dz yaz dosyalar, MATLAB ortamnda etkileimli biimde allmayacak uzun komutlar dizisigerektiren analizlerin icras, problemlerin zm veya tasarm yaplmasnda kullanl olmaktadr. Dz yazdosyalarnn yazm iin MATLABn dahili editr kullanlabilir. Bu editr altrmak iin MATLAB komutsatrnda edit komutunu yazmak gerekir

    rnein aada verilen MATLAB komutlar dizisi bmak.m ad verilen bir dosyada oluturulupsaklanabilir.

    MATLAB ortamnda bmak yazmak (.m uzants yazlmaz) sureti ile program altrlabilir. Yalnzbunu iin program iinde yer alan; B, Ct, Dm, J, Vt parametre deerlerinin altrlmadan nce atanm olmasgerekir. Bu, ya bmak komutu yazlmadan nce klavyeden yukarda belirtilen parametre deerlerini girmeksureti ile ya da,

  • 8/2/2019 matlab kts

    11/33

    Resim 4 :MATLAB editr ve hata ayklaycs

    daha nce sz edildii gibi saklanm bir dosyadan verileri armak sureti ile yaplabilir. Bu ekilde bmakaltrld zaman MATLAB dosya iinde yazl komutlar icra eder ve sonular saklar ve en sonunda plotkomutu 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 ft deerine kadar dt artmnda bir dizi

    oluturur ve t deikenine atanr. 6. satrda MATLABa ait bir altprogram (M-file) olan step komutu ile paynum, paydas den, deikeni ile verilen bir sistem t zaman dizisinde basamak cevab sonular hesaplanrve bir saylar dizisi eklinde y deikenine atanr. Son satrda plotkomutu ile sonularn grafii elde edilmiolur. Ayrca, program iersinde son satrda wn, xa ve xsigibi 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 iindebulunan tm M-dosyalar fonksiyon biiminde olup bunlar hazrlanan herhangi bir program iin altprogramgrevi grrler. Dier bir deyile PASCAL ve benzeri programlama dillerinde kullanlan altprogramlar(subroutines) gibi ilem grrler. Fonksiyon dosyalarnda yer alan tm deikenler, dz yaz dosyalarndaolduu gibi MATLAB alma ortamnda grntlenemez ve gerektiinde baka bir bildirimde kullanlamazlar.Fonksiyon dosyas; function satrnda yer alan giri verisine gre k argman veya argmanlarnsonulandrr. Bu argmanlar (function tarafndan bulunan sonular) istenirse dier hesaplamalarda

    kullanlabilir. Fonksiyon dosyalar MATLABn kendi dilini kullanmak sureti ile yeni MATLAB fonksiyonlarnoluturarak 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 listesiverilmitir.

    function y=ortalama(x)% ortalama (x) her bir% stunda ortalama% deeri olan bir satr vektrdr.

    [m,n]=size(x)ifm = =1m=n;endy=sum(x)/m;

  • 8/2/2019 matlab kts

    12/33

    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, 1den99a kadar tamsaylar gsteren bir vektr olsun,

    Z=1:99;

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

    ortalama(z)

    veyaa=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 aynzamanda a deikenine atanarak saklanacaktr. ortalama.m fonksiyon dosyasnn baz temel zellikleriniaadaki ekilde sralayabiliriz.

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

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

    3. MATLAB ortamnda help ortalama yazlnca % iaretlerinin bulunduu satrlardaki aklamalarekranda 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. Diertaraftan bu deikenler ortalama dosyas altrlmadan nce alma ortamnda mevcut iselerdeerleri deimeden kalrlar.

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

    6. Benzer ekilde k argmannda fonksiyon dosyasnda tanmlanan karakterle ayn olmas gerekmezrneimizde hesaplanan sonu a eklinde bir deikene atanmtr ki bu ortalama fonksiyondosyasnda 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

  • 8/2/2019 matlab kts

    13/33

    MATLABta normal fonksiyon dosyalar yannda kullanc tarafndan hazrlanan fonksiyonlar zmek

    amac ile kullanlan fonksiyonlar da mevcuttur. Bunlar fonksiyonlar aran ve zen fonksiyonlar olduundanfonksiyon fonksiyonu adn alr. Dier taraftan dorusal olmayan saysal hesaplama yntemleri olarak dabilinirler.

    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 birekilde ele alnacaktr.

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

    k argmanlar zm zlecek girifonksiyonu fonksiyon argmanlar(aran) daima iinde

    (arlan)

    ekil 2 :Fonksiyon fonksiyonunun kullanm biimi

    2.6 IKIVERLERNN SAKLANMASI

    MATLAB grafik esasl bir programdr. MATLAB ortamnda oluturulan tm verileri ve grafikleri saklamakmmkndr. 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 kolarak 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 isimlidosyada 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 dosyasndasaklanr.

  • 8/2/2019 matlab kts

    14/33

    save dosya_ad X Y Z /ascii

    X Y Z deikenleri dosya_ad dosyasnda TEXT biiminde saklanr. eitli yerlerde kullanlabilen buverilerin tekrar MATLAB ortamnda kullanlabilmesi iin, veriler MATLABn anlayabilecei matris

    biiminde sokulmasna ve dosya adna .m uzants eklenmesi gerekir. Bu veriler MATLABta loadkomutu ile yklenemez. M-dosyas eklinde arlmas gerekir. Veriler sadece MATLAB iindearlacaksa .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 braklmasgerekir. MATLABda deikenler birbirlerinden aralarna virgl konularak ayrt edilebildikleri gibi aralarna

    boluk koymak suretiyle de ayrt edilebilirler. Yalnz giri argmanlarnda boluktan ziyade virgl konulmasgerekir.

    3.1 TEMEL MATLAB LEMLER

    GR

    Her ne kadar MATLAB 4.0 dan itibaren MATLABta The Symbolic Math Toolbox ilave edilerek sembolikmatematiksel ilem yapma olanaklar salanmsa da, MATLAB temelde matrisler ile saysal ilem yapmakzere hazrlanm bir paket programlama dilidir. MATLABn matrislerde ilem yapmas demek skalar ilemleriyapamamas anlamna gelmemelidir. Dier taraftan bir skalar tek bir satr ve tek b ir stundan ibaret bir matrisolarak ele alnabilir. Benzer ekilde bir tek satr veya bir tek stundan ibaret bir matris satr vektr veya stunvektr veya ksaca vektr adn alr. MATLABn matrisler ile ilem yapmas demek; verileri matrislerbiiminde deerlendirmesi ve zmleri matris esasna gre yapmas ve sonular da matris biimindedzenlenmesi 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 skalargereinde 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 isekeli parantez iinde 3x3 lk matris oluturulmaktadr. Burada kullanlan noktal virgl iareti, ; matris satrelemanlarnn sonunu belirler. Yine satr sonunda keli parantezin dnda yer alan ; iareti ise; MATLABortamnda verilerin grntlenmesini nler. Bu iaret bulunmadnda nc satrdaki ifade yazlp enter tuuna

    basldktan sonra ekranda

    C=

  • 8/2/2019 matlab kts

    15/33

    1 2 34 5 67 8 9

    eklinde matris grntlenir. MATLAB ile ilk defa almaya balayan ve matrisleri tanmaya .alankullanclarn matrisleri grntlemesi nerilir. Buna karlk m-dosyalar biiminde hazrlanan uzun

    programlarda satr sonlarna ; iareti konarak ekranda grntleme ilemini nlenebilir ve bylece programicras 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]

    bildirimix= -1.3000 1.7321 4.8000

    sonucunu dourur.Bireysel matris elemanlar parantez (.) iindeki indislerle ilikilendirirler. Yukardaki rnee devam edecek

    olursakx(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 olarakyerine yerletirmi 4. eleman otomatik olarak sfr aldktan sonra 5. eleman x2in 1. elemannn mutlak deerinialarak yerletirmitir.

    Kk matrisleri eleman olarak kullanp daha byk matrisler oluturmak mmkndr. rnein yukardaverilen C matrisine aada gsterildii bir satr ekleyebiliriz.

    C=[C; [10 11 12]]

    Bu durumda

    C=1 2 34 5 67 8 910 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 yeatanr 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 ydeikenine 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.

  • 8/2/2019 matlab kts

    16/33

    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 zelmatrislerinden 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 ayrntlbilgiler elde edilebilinir.

    3.3 MATLABTA KULLANILAN SABTLER

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

    pi()

    deeripi ad altnda otomatik olarak saklanmtr. Programlar iinde kullanlan pi kelimesi dorudan 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 ortayakar. Eer sfra blme ilemi grntlenmek istenirse bir uyar mesaj alnr ve sonu iareti eklindegrntlenir veya baslr.

    NaN

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

    eps

    Bu deer fonksiyon, kullanlmakta olan bilgisayar iin floatingpoint (virgll saylar) tamln ierir. Buepsilon 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 deerlerisaklamak iin kullanlr.

    3.4 MATLABTA ELEMAN ELEMANA HESAPLAMA LEMLER

    Eleman elemana hesaplama ilemi eleman eleman icra edilir. rnein A ve Bnin 5er elemanl birer satrvektr olduunu varsayalm. Bu deerler ile yeni bir C satr vektr oluturmann bir yolu, aada gsterildiigibi 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);

  • 8/2/2019 matlab kts

    17/33

    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 deerile arparak arpm nc bir deer olarak saklamaktadr. MATLABda ayn boyutlu iki matris arasndaeleman 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 bunlardafarkl 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 iinaada 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 aadaverilen iki satr vektrn ele alalm.

    A=[2 5 6]; B=[2 3 5];C=A.*B

    eklinde verilen bir komutC=[4 15 30]

    eleman elemana arpma sonucunu verecektir.

    Eleman elemana blme:MATLAB ileri veya sadan blme, ./ ve geri veya soldan blme, .\ olmak zere ikiblme ilemcisi kullanr. Sadan eleman elemana blme komutu

    C=A./Bbiiminde 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 elealacak 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.

    rneinC=3.0.^A;

    bildirimi

  • 8/2/2019 matlab kts

    18/33

    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 damatris ilemine karlk aada geleceinden kastedilene gre yanl olacaktr. Buna karlk aada gsterildiigibi 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 yaplmasyerinde olacaktr. Bunu aadaki rneklerle gsterebiliriz.

    Bundan nceki rneklerde eleman elemana hesaplama ilemlerinde, vektrler kullanlmtr. Aadakirneklerde 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 11 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 ilekarlalr. 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 bulunandenklem 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 isesa 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 fonksiyonfonksiyonlar kullanlabilir. Dorusal olmayan denklem takmlarnn eitli snr artlar altnda zmndekullanlan ok deiik fonksiyonlar mevcuttur. Bunlar iinde en kullanls fsolve fonksiyonudur.

  • 8/2/2019 matlab kts

    19/33

    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 yeralan roots fonksiyonu veya fzero fonksiyon fonksiyonu kullanlabilir. Fzero fonksiyon fonksiyonu daha okdorusal olmayan denklemlerin zmnde kullanlr. Roots fonksiyonunun kullanl, aada verildii gibiok basittir.

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

    Burada rootsfonksiyonu iin giri argmanlarn, an, an-1, ......,a2, a1, a0 biiminde polinomun en yksekdereceden balayarak azalan kuvvetlerinin katsaylar olarak tanmlamak yeterlidir. Sonuta k olarakdenklemin 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 49 131 1.510.5 155];>>yp=roots(a)

    veyayp=roots( [3 49 131 1.510.5 155] )

    bildirimi ile sonu u ekilde elde edilir.

    X1= - 2.9170X2= - 0.7475 + 0.7096iX3= - 0.7475 0.7096iX4= 0.6024 + 1.0396iX5= 0.6024 1.0396iX6= 0.7060 + 0.5552iX7= 0.7060 0.5552iX8= 0.4618

    01

    2

    2

    1

    1 ...)( axaxaxaxaxfn

    n

    n

    n

  • 8/2/2019 matlab kts

    20/33

    Resim 5:rnein MATLAB ortamndaki zm ve kts

    4.3 DORUSAL DENKLEM TAKIMLARININ ZMLER

    n. dereceden dorusal denklem takm

    nnnnnn

    nn

    nn

    bxaxaxa

    bxaxaxa

    bxaxaxa

    .. .

    .............................................

    .. .

    .. .

    2211

    22222121

    11212111

    biiminde verilir. Bu denklem takmnn matris biiminde gsterimi

    A x = B

    eklindetanmlanabilir. Burada;

    nnnn

    n

    n

    aaa

    aaa

    aaa

    A

    ..

    ... .... .

    ..

    ..

    21

    22221

    11211

    nbbbB ..21

    katsaylar matrislerini ve

    321 ... xxxX

  • 8/2/2019 matlab kts

    21/33

    zm istenen deikenler matrisini (vektrn) gsterir.

    Bu tr istenen denklem takmlarnn zm iin, iinde yer alan zel fonksiyonlar yoktur. Bu denklemlerinzmnde 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. Sadanve 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 -1ile arparsak

    A-1 AX=A-1B

    elde edilir. Burada A-1 A, I olarak tanmlanan birim matrise denktir.Buna gre

    IX=A-1Bveya

    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 edilendenklem takmnn zm iin, her iki taraf A-1 ile arplr ve gerekli dzenlemeler yaplrsa

    X=BA-1elde edilir.MATLAB ortamnda

    X=B * inv(A)bildirimi ile gerekli zm elde edilmi olur.

    rnek :Aada verilen denklem takmnn zmn elde ediniz.

    1552103

    124

    16272

    24

    4321

    4321

    4321

    4321

    xxxx

    xxxx

    xxxx

    xxxx

    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 ileminegre 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 ileaadaki 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

  • 8/2/2019 matlab kts

    22/33

    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 x1= 2, x2=1, x3=3 x4=-1 dir.

    4.4 DORUSAL OLMAYAN DENKLEMLERN ZM

    Dorusal olmayan denklemlerin dorusal denklemlerde olduu gibi tek bir standart biimi yoktur. GerekMATLAB iinde gerekse Otimatization Toolboxiinde, gerek tek deikenli ve gerekse ok deikenlidenklemlerin zmnde kullanlan eitli zm fonksiyonlar vardr. Dorusal olmayan denklemlerin zm,dorusal denklem zm kadar basit olmayp bunlarn zm iin ayrca bir fonksiyon dosyas hazrlanmasgerekir.

    Burada, MATLAB iinde yer alan fzero fonksiyon fonksiyonu ile Otimatization Toolbox iindeyer alan fsolve fonksiyon fonksiyonu ayrntl bir biimde ele alnacaktr. Ayrca dier dorusal olmayanfonksiyon 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 yeralan seimli trace argman her bir hesap yineleme ilemindeki bilgileri grntler.

    Fonksiyon fonksiyonu olan fzero fonksiyonunu kullanmak iin ayrca function ile balayan bir fonksiyondosyas 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 MATLABortamnda

    z=fzero(fx,2)bildirimi ile

    z=2.0946

  • 8/2/2019 matlab kts

    23/33

    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 : e2xx2 biiminde verilen dorusal olmayan fonksiyonun bir adet sfrn bulunuz.

    zm:Burada f(x) fonksiyonu;

    f(x)=e2x

    x2 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 fzerofonksiyonu herhangi bir fonksiyonun tahmini bir sfrnnhesaplanmasnda 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 fsolvefonksiyon 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 eklindehesaplanr. 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 balangdeerlerinden balayarak zer ve sonucu X deikenine atar. Burada X0 boyutu x deiken says kadarolmaldr.

    kinci bildirimde yer alan seimli argman options seimli parametreler vektrn tanmlar. options iin pekok 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

  • 8/2/2019 matlab kts

    24/33

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

    biiminde tanmlanmaktadr. Burada c 1.27 i,le 1.28 arasnda bir deerdir. Tamamen nonlinearolan budenklemlerin 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 ennemli husus balang deerinin seimidir. Uygun bir zm elde edilene kadar balang deerlerinin seimideitirilebilir.

    x=fsolve(nlnr,[0.5 112.5 20]);Bildirimi ileX= 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 seilecekolursa

    >>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 fonksiyondeerleri 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.70.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 ileuygun zmler aratrlmaldr.

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

    attgoal oklu-amal hedefe ulama problemi zmconstr Kstl minimizasyon zm

  • 8/2/2019 matlab kts

    25/33

    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 programlamannls 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 birdiferansiyel denklemin zm f (x) = g(x,y) fonksiyonundan elde edilen y=f(x) eklinde bir fonksiyondur. Birdiferansiyel denklem zmnn saysal hesaplamas ytrevinden y nin elde edilmesi iin gerekli integrasyon

    ilemini ( y =

    bx

    ax

    dxyxg ),( ) 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 integrasyondenklemlerini, ode45 fonksiyonuda drdnc ve beinci dereceden Runge-Kutta integrasyon denklemlerinikullanr. ode23 ve ode45fonksiyonlarnda ayntrden 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 olaraksaklanan fonksiyon dosyas ve fonksiyon ad ayn (rnein yprime) olmal ve ode fonksiyonlar ilearldnda (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

    dyy

    i

    '

    veyadt

    dyy

    i

    '

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

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

  • 8/2/2019 matlab kts

    26/33

    tfinal:

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

    y0:

    Bamsz deikenin veya snr deerleri. Bir diferansiyel denklem takmnn zm halinde balangkoullar bir satr vektr biiminde olur.

    tol:

    Seime bal bir argman olup zmde integrasyon ileminin hata snrlarn belirler. Eer bu argmanarlan fonksiyonda yer almazsa ode23 fonksiyonunda hata snr deeri 1.0e-3 ve ode45 ile hata snrdeeri 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.

    odefonksiyonlar ile elde edilen zmn sonular bir t ve y matrisleri biiminde daha sonra kullanlmakzere 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 olarakdurum deikenleri matrisini temsil eder. Bu matris durum deikenlerinin says kadar stuna sahiptir. Satrsays ise zmn durumunu belirler.

    ode fonksiyonlarnn kullanm ve bunlar ile birlikte kullanlacak diferansiyel denklem fonksiyondosyalarnn 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] snrdeerleri arasndaki zmn bulalm.

    y=dx

    dy =g1(x,y)=4x3cosx2-x2

    zm: Problemin zm iin, ilknce aadaki fonksiyon dosyas yazlr. Fonksiyonun yazlmas iinMATLABn dahili editr kullanlabilir. Bunun iin MATLAB komut satrnda edityazlp entera baslr.MATLABta saysal diferansiyel zmleri iin ode fonksiyonlar kullanlr. ode fonksiyon dosyalar dahanceden de anlatld gibi fonksiyon fonksiyonu dosyalardr. Yani zm retilecek probleme ait fonksiyonugirdi olarak kabul ederler. Sonucu ise problemin baml ve bamsz deikenlerine karlk gelecek ekildematrissel olarak retir. Bundan dolaydr ki, eleman says birden fazla olan matrissel sonular gzlemlemeninen 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 dadeneme.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) ));

  • 8/2/2019 matlab kts

    27/33

    Resim 6:zmn grafik kts

    MATLAB ortamnda altrlan yukardaki bildirimler ile aadaki admlar gerekletirilmitir;

    a) birinci satrda ode fonksiyonu ile arlan diferansiyel denklem fonksiyonunun saysalzm gerekletirilmektedir; bundan sonra ode ileminin sonucunda a ve b nin ierikleri aadaki gibiolmutur.

    a =

    1.00001.06891.14741.21911.28501.34721.4055

    1.45931.50591.55071.61701.7305

    b =

    1.00001.07201.11781.09670.99360.79380.4889

    0.0855-0.3743-0.9221-1.9382-4.2596

  • 8/2/2019 matlab kts

    28/33

    b) ikinci satrda zm sonularnn plot komutu ile izdirilmesi salanmaktadr.Burada Plot komutununkullanm 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 birdeerdir. rnekte kullanlan b- ifadesi grafiin mavi (b:blue) renkte izgisel (solid) olarakoluturulacan belirtir. Kullanlabilecek parametreler aadaki gibidir

    renkler nokta belirtecleri izim sitilleri

    y yellow . point - solid

    m magenta o circle : dotted

    c cyan x x-mark -. dashdotr 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 programolmasa da, MATLABa 4.0 srmnden sonra The Symbolic Math Toolbox ad altnda bir paketineklenmesiyle bu i iinde kullanlmaya balanmtr. Sembolik zmlemenin anlam; bir saysal zm eldeetmek yerine, saysal zmn bir basamak gerisinde kalan, saysal zm verebilecek bir fonksiyon eldeetmektir. MATLABta diferansiyel denklem zm iin kullanlan fonksiyon fonksiyonu dsolve (differantial

    solve: diferansiyel zmle)dur.

    dsolvefonksiyon fonksiyonu :

    Dsolve fonksiyonu sradan diferansiyel eitliklerin sembolik zmn bulur. dsolve('eitlik1','eitlik2', ... ,bsart1,bsart2,...) eklinde balang artlarn ve sradan diferansiyel eitlikleri parametre olarak alr. Buekilde birok balang art ve eitlik beraberce kullanlabilir. Dsolve fonksiyon fonksiyonu sunucu defaultolarak, 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,

  • 8/2/2019 matlab kts

    29/33

    baml deiken olarak alnr.rnek olarak, D3y y(t)nin 3.trevini belirtir. Dikkat edilmesi gereken bir noktavardr, 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)=beklinde balang artlar belirtilebilir. Eer balang artlarnn says baml deikenlerin saysndan azverilirse, meydana gelen zmler rasgele sabitler (C1,C2,C3,...gibi) ierir.

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

    5.3.1 Birinci Mertebeden Adi Diferansiyel Denklemler

    rnek 1: (3x5y5-2y)dx +(5x6y4+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 dekurtulmu 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;

    x3y5 + x-2y=c dir.

    rnek 2: (x2+3y2) dx + 2xy dy=0 denkleminin zmnbulalm.

    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;

    cyxx

    235

    5dir.

  • 8/2/2019 matlab kts

    30/33

    5.3.2 Homogen diferansiyel denklemler

    Birinci mertebeden bir leneer adi direfansiyel denklemin

    ),( yxfdx

    dy

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

    )/(),( xygyxfdx

    dy

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

    rnek 1: 0)( 22 xdydxyxy 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]

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

    Burada sonu ifadesinin okunabilirlii azdr. MATLABta bunu normal, matematiksel tarzda ifade etmeyeyarayan 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 adndakistun matrisi sembolik biimdedir. Bunu rneimize uygularsak, yazacamz komut satr ve rnek ekran ktsaadaki gibidir.

    >> pretty(cozum)veya

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

  • 8/2/2019 matlab kts

    31/33

    Resim 7:pretty komutunun kullanm

    5.3.3 Birinci mertebeden lineer diferansiyel denklemler

    )()( xQyxPdx

    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

    Cxxx 1)cos()sin( gibidir.

    rnek 2: yedx

    dy x3

    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 MATLABkomutu aadaki gibidir.

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

    elde edilen sonu;

  • 8/2/2019 matlab kts

    32/33

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

    5.3.4 BERNOULL DENKLEM

    Birinci mertebeden bir adi diferansiyel denklem,

    )()( xQyyxPdx

    dy n

    eklinde ise bu diferansiyel denkleme Bernoulli denklemi denir.

    rnek:x

    y

    x

    y

    dx

    dy2

    denklemini zelim

    zm:

    zm iin gerekli MATLAB komutu aadaki gibidir.

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

    elde edilen sonu;

    1Cx

    x

    olur.

    KAYNAKLAR

    MATLABLE MHENDSLK SSTEMLERNN ANALZ VE ZMProf.Dr. brahim YKSEL U..Makine Mhendislii Blm 1996

    DFERANSYEL DENKLEMLER VE UYGULAMALARIProf. Dr. Mehmet AYDINGnl GNDZBeno KURYELYard. Do. Dr. Galip OTURANzmir 1999

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

  • 8/2/2019 matlab kts

    33/33

    HAZIRLAYAN: ZGR KOCA

    9962013 GTEF B.S. PROGRAMI

    ARALIK 2000 / ANKARA