You are on page 1of 136

U ur Arifo lu 2.15.

MATLAB ortam nda kullan lan veri trleri

MATLAB7.0 Simulink ve mhendislik uygulamalar

MATLAB ortam nda e itli veri tr tan mlanm t r. Dizi (array) eklinde tan mlanan bu veri trleri a a da maddeler halinde gsterilmi tir. Dizi, MATLAB ortam nda bir adet de i ken ierebildi i gibi bir vektr, iki veya ok boyutlu matris de olabilir. 1. 2. 3. 4. 5. 6. 7. Fonksiyon kulplar (function handles) Java trleri Hcre (cell) Yap (structure) Lojik (logical)- 1 byte uzunlu unda olup, 0 yada 1 de erini al r. Karakter (char)- 2 byte uzunlu unda olup [0, 65535] aral nda bir uzunlu a sahiptir. Say sal (numerical) Tek hassasiyetli say (single)- 4 byte uzunlu unda olup [-3e38; 3e38] aral ndaki say lard r. ift hassasiyetli say (double) - )- 8 byte uzunlu unda olup [-1e308; 1e308] aral ndaki say lard r. aretli say lar 7.3.1. aretli tamsay lar (hem pozitif hem de negatif de erleri ierirler) 7.3.1.1. int8 (8 bit i aretli tamsay ):1 byte uzunlu unda olup [ -128 ; 127] aral ndaki say lar ierir. 7.3.1.2. int16 (16 bit i aretli tamsay ): 2 byte uzunlu unda olup [-32768 ; 32767] aral ndaki say lar ierir. 7.3.1.3. int32 (32 bit i aretli tamsay ): 4 byte uzunlu unda olup [-2147483648 ; 2147483647] aral ndaki say lar ierir. 7.3.1.4. int64 (64 bit i aretli tamsay ): 8 byte uzunlu unda olup [-92234e14 ; 92234e14] aral ndaki say lar ierir. 7.3.2. aretsiz tamsay lar (sadece pozitif de erleri ierirler) 7.3.2.1. uint8 (8 bit i aretsiz tamsay ):1 byte uzunlu unda olup [0 ; 255] aral ndaki say lar ierir. 7.3.2.2. uint16 (16 bit i aretsiz tamsay ): 2 byte uzunlu unda olup [0 ; 65535] aral ndaki say lar ierir. 7.3.2.3. uint32 (32 bit i aretsiz tamsay ): 4 byte uzunlu unda olup [0 ; 4294967295] aral ndaki say lar ierir. 7.3.2.4. uint64 (64 bit i aretsiz tamsay ): 8 byte uzunlu unda olup [0 ; 18447e15] aral ndaki say lar ierir. MATLAB ortam nda bir dizi ierisinde say sal bir de er (zel olarak belirtilmemi ise) ift hassasiyette bir say (dizi) olarak tutulur. Bu durumda dizi ierisindeki her eleman iin bellekte 8 byte yer ayr l r. E er dizi iinde metin de yer al yorsa metin iindeki her bir karakter iin 2 byte yer ayr l r ve karakter dizisi tan mlanm olur. int8, int16,.., uint8, uint16,...,single, logical, vb. tr dizilerde ise tr dn m fonksiyonlar kullan larak d ouble tr diziler olu turulur. Fonksiyon kulplar hakk nda ileride detayl bilgiler verilece inden veri trlerine Hcre tan m ile ba lanacakt r. 2.11.1. Hcre (Cell) Hcre daha sonra a klanacak olan MATLAB veri trleri iinde yer al r. Hcre, bir e it dizidir ve ok boyutlu olabilir. Hcrenin normal dizilerden fark , iindeki elemanlar n farkl trden olabilmeleridir. Hcrenin her bir alt paras nda yer alan sat rlardaki eleman say lar birbirlerine e it olmal d r, fakat bir paradaki eleman tr d i er alt paradaki eleman trnden farkl olabilir. ekil 2.18de cell_top adl 4 alt paradan olu an bir hcre yap s verilmi tir.

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

cellA function

cellB

3 length 12345678 12345678 cellC cellD

-5

0.2

44 -6 -3j

2 0

-3 4

9 3j

-j 6

1-2j 88

2+4j 4 71 4j ekil 2.18

ekil 2.18de verilen hcre yap s n n cellA adl alt paras nda yer alan sat rdaki stun say lar n n (rnekte 8 stun bulunmaktad r) farkl uzunlukta oldu u aksi takdirde MATLAB ortam nda hata ile kar la laca unutulmamal d r. Benzer ili ki cellC adl alt para iin geerlidir. cell_top adl hcreyi MATLAB ortam nda basit bir ekilde tan tmak iin her bir alt paray ayr ayr tan tmak, daha sonra bu alt paralar cell_top adl hcreyi olu turacak ekilde bir araya getirmek yolu tercih edilecektir. >>cellA=[function; length cellA = function length 12345678 ; 12345678] (enter)

>>cellB=[3 -5 0.2] cellB = 3.0000 -5.0000 0.2000 >> >>cellC=[2 -3 9 j 1-2j;0 4 3j 6 88] cellC= 2.0 -3.0 9.0 0 -1.0i 1.0 -2.0i 0 4.0 0+3.0i 6.0 88.0 >> >>cellD=[44; -6; 3j; 2+4j; 4; 71; 4j] cellC = 44.0 -6.0 0 - 3.0i 2.0 + 4.0i 4.0 71.0 0 + 4.0i >>

(enter)

(enter)

(enter)

Yukar daki MATLAB sat rlar ile ilk ad m olarak tm alt hcreler MATLAB ortam na ta nm oldu. Bundan sonraki ad m tm alt hcreleri kullanarak cell_top adl ana hcreyi olu turmakt r. Hcrenin MATLABa tan t lmas nda { ve } i aretleri kullan l r;

U ur Arifo lu >>cell_top={cellA cell_top = [3x8 char ] [7x1 double] >> cellB ; cellC [1x3 double] [7x1 double]

MATLAB7.0 Simulink ve mhendislik uygulamalar cellD} (enter)

Yukar da elde edilen sonuta da grld gibi ekranda cell_top adl hcreyi olu turan veri tipleri ve bunlar n boyutlar grlmektedir. Kullan c isterse cell_top adl hcrenin her hangi bir alt paras n (rnek olarak cellA) MATLAB ortam nda grntleyebilir; >>cellA cellA = function length 12345678 >> (enter)

Kullan c isterse cell_top hcresinin elemanlar hakk nda celldisp komutunu kullanarak bilgi alabilir: >> celldisp(cell_top) cell_top{1,1} = function length 12345678 cell_top{2,1} = 44.0000 -6.0000 0 - 3.0000i 2.0000 + 4.0000i 4.0000 71.0000 0 + 4.0000i cell_top{1,2} = 3.0000 -5.0000 cell_top{2,2} = 44.0000 -6.0000 0 - 3.0000i 2.0000 + 4.0000i 4.0000 71.0000 0 + 4.0000i (enter)

0.2000

Kullan c n n cell_top hcresi hakk nda dikkat etmesi gereken ili ki tr a a da gsterilmi tir: cell_top(1,1)=cellA cell_top(1,2)=cellB cell_top(2,1)=cellC cell_top(2,2)=cellD Kullan c , cell_top adl verinin trn renmek isterse class komutu kullanmal d r: >>class(cell_top) ans = cell 2.11.2. Yap (Structure)

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

MATLAB ortam nda tan ml di er bir veri tr yap d r. Yap lar n MATLAB ortam nda kullan lma nedeni; bir konu hakk nda sahip olunan bir ok bilginin bir arada tutulma ihtiyac d r. rnek olarak bir ki inin ya ad lke, ehir, mahalle, cadde, sokak, apartman, daire gibi birbirini takip eden zincirleme bilgiler yap ortam iin bir kullan m alan olu turur. rnek olarak kimlik adl bir yap olu turulsun. Bu yap iinde; cinsiyet, lke, ehir, mahalle, cadde, sokak, apartman, daire gibi alanlar (field) iersin. Yap olu tururken yap ad ile alanlar birbirlerinden nokta i areti ile ayr lmal d r; >> kimlik.isim= Mehmet Sehit kimlik = isim: 'Mehmet Sehi t' >> kimlik.ulke= Turkiye kimlik = isim: 'Mehmet Sehit' ulke: 'Turkiye' >> kimlik.cinsiyet= Erkek kimlik = isim: 'Mehmet Sehit' ulke: 'Turkiye' cinsiyet: 'Erkek' >> kimlik.sehir= Istanbul kimlik = isim: 'Mehmet Sehit' cinsiyet: 'Erkek' ulke: 'Turkiye' sehir: 'Istanbul' (enter) (enter)

(enter)

(enter)

Bu ad mdan sonras sehir adl alan n alt alan nda olu turulsun; >> kimlik.sehir.mahalle= Istiklal kimlik = isim: 'Mehmet Sehit' cinsiyet: 'Erkek' ulke: 'Turkiye' sehir: [1x1 struct] (enter)

Dikkat edilirse mahallenin ad isim olarak de il MATLAB ortam nda kaplad verilmektedir. Kullan c ahs n oturdu u mahallenin ismini grmek ister ise; >>kimlik.sehir ans = mahalle: 'Istiklal' >> i lemi yap lmal d r. (enter)

alan (1*1) olarak kullan c ya

>> kimlik.sehir.mahalle.cadde= Sakarya kimlik = isim: 'Mehmet Sehit' cinsiyet: 'Erkek' ulke: 'Turkiye' sehir: [1x1 struct] >> >> kimlik.sehir.mahalle.sokak= 30 Agustos kimlik = isim: 'Mehmet Sehit' cinsiyet: 'Erkek'

(enter)

(enter)

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar ulke: 'Turkiye' sehir: [1x1 struct] >> >> kimlik.sehir.mahalle.apartman= Zafer (enter) kimlik = isim: 'Meh met Sehit' cinsiyet: 'Erkek' ulke: 'Turkiye' sehir: [1x1 struct] >> >> kimlik.sehir.mahalle.daire_no= 1 (enter) kimlik = isim: 'Mehmet Sehit' cinsiyet: 'Erkek' ulke: 'Turkiye' sehir: [1x1 struct] >> Kullan c mahalle adl alana yerle tirilen tm bilgileri grmek isterse a a daki sat r uygulamal d r: >> kimlik.sehir.mahalle ans = cadde: 'Sakarya' sokak: '30 Agustos' apartman: 'Zafer' daire_no: '1' y fprintf (' k ta gsterilmesi istenen ifade', 'ifadenin gsterilme biimi', de i ken listesi) k ta gsterilmesi istenen ifade: T rnak iine hangi ifade yaz l rsa ekranda bu ifade gzkr.

'ifadenin gsterilme biimi': Burada, ifadenin MATLAB ortam nda ald de erin hangi formatta ekrana yaz laca n belirten kodlar kullan l r. Bu k s mda % i aretinin arkas ndan hassasiyet belirleme ve dn m (c,d,e,E,f,F,g,G, i,o,s,u,x,X) karakterlerinden biri kullan l r. rne in s; de i ken olarak 'karakter' seildi i zaman kullan l r. Bu karakterlerin baz lar n n ne ifade etti i a a daki rneklerde gsterilmi tir. Di er karakterler ile ilgili bilgi ise etkile imli yard m penceresinden renilebilir. Daha sonra kullan lan \n,\r,\t,\b,\f gibi tan mlar ile de (s ras ile); sat rba , yeni sat r, sekme, geriye do ru silme ve yeni sayfa i lemi gerekle tirilebilir.

de i ken listesi

: Burada ise ifadenin MATLAB ortam nda atand

de i ken ismi yaz l r.

%a.bf : f ifadesi say n n sabit noktal oldu u anlam na gelir (default olarak short e format ndad r). f say s gsterim olarak a.b gibi iki say dan meydana gelir. a say s de i kenin ald de erin i areti, tam k sm ve varsa noktay da dahil ederek noktadan sonraki rakam say s n ierir. b say s ise sabit noktal say n n noktadan sonra ekrana yaz lmas istenen rakam say s n gsterir. E er tamsay iin kullan lacak rakam say s a, olmas gerekenden az olsa bile ekrana yaz lan sonu hatal olarak ortaya kmaz. >> sicaklik=1056.789432; >>fprintf('sicaklik=%4.0fderece',sicaklik) sicaklik=1057derece >>fprintf('sicaklik = %4.1f derece',sicaklik) (enter) (enter) (enter)

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar sicaklik = 1056.8 derece %a.be : e ifadesi say n n stel oldu u anlam na gelir (default olarak short e format ndad r). e say s gsterim olarak a.b gibi iki say dan meydana gelir. a say s de i kenin ald de erin i areti, nokta iin (bir) ve stel ifade iin 5 haneli ( e harfi+ssn i areti+ssn de eri) say y ierir. b say s ise noktadan sonraki say y gsterir. >>fprintf('sicaklik=%8.3ederece' ,sicaklik) sicaklik=1.057e+003derece (enter)

%a.bg : g ifadesi say n n stel oldu u anlam na gelir (default olarak short e format ndad r). g say s gsterim olarak a.b gibi iki say dan meydana gelir. g'nin e'den fark , say y daha da k saltmas d r (bazen formata gre say y yuvarlar). >>fprintf('sicaklik=%4.0g derece \n',sicaklik) sicaklik=1e+003 derece (bir sat r atland ) (enter)

rnek olarak Ahmet Sad k ad ndaki bir rencinin ad , soyad , okul numaras , ilgili dersi, bu dersten ald not alta alta ekrana yazd r ls n. Bunun iin fprintf komutundan yararlan labilir; >>Ad=Ahmet; (enter) >>Soyad=Sad k; (enter) >>Numara=307; (enter) >>Ders=Matematik; (enter) >>Not=45.75; (enter) >>fprintf(Ad:%s \nSoyad: %s\nNumara:%s \nDers: %s\nNot:%3.1f,... Ad,Soyad,Numara,Ders,Not) (enter) Ad:Ahmet Soyad: Sad k Numara:307 Ders: Matematik Not:45.8 Yukar da \n komutu her bir bilginin alt alta yaz lmas n sa lamaktad r. E er yukar da \n komutu kullan lmasayd bilgiler ayn sat ra yan yana yaz l rd . \n yerine \t konulsayd sonular ayn sat ra fakat aralar na bo luk gelecek ekilde yerle tirilecekti. \n komutundan nce yaz lan s komutu ise de i kenin karakter formunda oldu unu gstermektedir. fprintf komutunun kompleks say lar n yaln zca reel k s mlar n gsterdi i unutulmamal d r. Bu nedenle kompleks say lar n kullan ld program ve hesaplamalarda fprintf komutu yerine disp komutunun kullan lmas daha uygun olur. 3.2.3. Save As komutu

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 3.1 al ma alan nda kay tl olan de i kenlerden arzu edilen kadar Save As...komutu kullan larak bir isim alt nda MATLAB ortam na kaydedilebilir. ekil 3.1de gsterildi i gibi Workspace ortam nda bulunan de i kenlerden ( ekil 3.1de A, B ve C de i kenleri seilmi tir) arzu edilenleri shift tu u ile seilerek farenin sa tu una bas ld nda ve ortaya kan seeneklerden Save Askomutu seilip ve 't k'lan ld nda (veya ekil 3.1'de Workspace ikonlar iinde yer alan Save ikonu kullan ld nda) kullan c n n kar s na ekil 3.2de verilen pencere kar. Bu pencerede istenilen bir dosya ad (r:yeni) alt nda A, B ve C de i kenleri kaydedilir.

ekil 3.2 3.2.3.1. Import Data komutu yard m ile MATLAB ortam ndaki dosyalar n okunmas MATLAB komut penceresinde File mens iinde yer alan Import Data seene i Fare ile seilip zerine t klan ld nda kullan c n n kar s na ekil 3.3de gsterilen pencere gelir. Bu pencerenin sol taraf nda yer alan dosyalardan arzu edilen seilerek A komutuna 't k'lan ld nda ekil 3.3(a) ile verilen pencere ile kar la l r.

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 3.3

ekil 3.3(a) Bu pencere iindeki Finish komutu zerine Fare ile t klan l r ise istenen dosya ieri i MATLAB Workspace ortam na ta nm olur ( ekil 3.3(b)). Resim dosyalar MATLAB ortam nda matrisel formda saklan r.

ekil 3.3(b) Import Data seene i kullan larak mat,txt,xls (Excel dosyalar ) uzant l dosyalar ve resim dosyalar MATLAB ortam nda grntlenebilir. Import Data komutu yard m ile Excel dosyalar , Notepad ve WordPad

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar iinde yer alan dosyalar da MATLAB ortam na ta nabilir. Bu dosyalar iinde yer alan Trke karakterler bu komut taraf ndan alg lanamaz. 3.2.4. Load komutu MATLAB ortam nda kay tl bulunan dosyalar al ma ortam na (Workspace) getirmek iin load komutu kullan l r. Komutun kullan l biimi a a da gsterilmi tir: >> load dosya ad (enter)

dosya ad ile belirtilen yere MATLAB ortam nda daha nce kaydedilen dosyan n ismi yaz larak (enter) tu una bas ld nda al ma ortam na (workspace) bu dosya gelecektir. load komutu ile ancak daha nce tan mlanm ve MATLAB ortam nda sakl olan dosya, Workspace ortam na getirilir.. 3.2.5. Data al veri i MATLAB yaz l m bir programdan di er bir programa data veri ini (export) veya data al n (import) mmkn k lan alt yap ya sahiptir. Bu i lemler text olarak yaz lm dosyalarda save ya da load komutlar kullan larak gerekle tirilir. E er data1.dat adl bir text dosyas olu turulmu ise (long e format nda-bkz.Bl.2); save data1.dat a b c ascii komutu ile a, b, c de i kenleri data1.dat adl dosyada ASCII modunda saklan r. e itli yerlerde kullan labilen bu verilerin tekrar MATLAB ortam nda kullan labilmesi iin bu verilerin MATLAB taraf ndan anla labilmesini mmkn k lan .m uzant l hale getirilmesi gerekir. Bu veriler MATLAB iinde load komutu ile yklenemez, .m dosyas eklinde a r lmas gerekir. Veriler yaln zca MATLAB iinde kullan lacak ise .mat uzant l dosya iinde saklanmas tavsiye edilir. save data1.dat a b c ascii -double komutu ile a b c de i kenleri data1.dat dosyada 16 l ASCII sistemine gre saklan rlar. adl

save data1.dat a b c ascii -tabs komutu ile a b c de i kenleri data1.dat adl dosyada ASCII kodunda tablo biiminde saklan rlar. MATLAB bir dosyadan di erine data aktarmak (import-export) amac ile de kullan labilir. Bunun iin tan mlanan komutlar a a da gsterilmi tir; A=csvread(dosya ad ,c,r): Bu komutta dosya ad (rne in: u1.m veya u1.dat veya u1.mat veya u1.txt olan) ve iindeki say lar birbirleri ile virgl ile ayr lan dosyan n A adl bir matrise atanmas sa lan r. Bu komut iinde yer alan c de eri u1.m dosyas nda aktar lmayacak olan sat r say s n (1 numaral sat rdan ba layarak), r ise stun say s n (1 numaral stundan ba layarak) gsterir. E er c ve r her ikisi de s f r ise bu durumda u1.m dosyas ndaki say lar n tm A matrisine atanacak demektir. rnek olarak u1.m dosyas a a da belirtilen datalar iersin: 1,2,3 4,5,6 7,8,9 MATLAB ortam nda a a da yap lan i lemler incelenmelidir: >>A=csvread(u1.m,1,2) A= 6 9 >>A=csvread(u1.m,1,1) A= 5 6 (enter) % ilk sat r ve ilk stun Aya aktar lmayacak (enter) % u1.min ilk sat r ve ilk 2 stunu Aya % aktar lmayacak

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar 8 9 >>A=csvread(u1.m,0,0) (enter) % u1.min hepsi Aya aktar lacak A= 1 2 3 4 5 6 7 8 9 >>A=csvread(u1.m,) (enter) A= 1 2 3 4 5 6 7 8 9 csvwrite(dosya ad ,A):Bu komut ile A matrisi dosya ad k sm nda yaz l olan dosyaya (.m, .mat, .txt, .dat uzant l ) kaydedilir. E er bu dosyada data var ise bu data de erleri A matrisi ile de i tirilir ve aralar na virgl yerle tirilir. rnek olarak yukar da tan mlanan A matrisinin MATLAB ortam nda u1.m adl dosyaya aktar lmas istensin: >> csvwrite(u1.m,A) (enter)

komutu icra edildi inde u1.m dosyas a a daki hale gelir; 1,2,3 4,5,6 7,8,9 E er iinde datan n bulundu u dosya, .m uzant l de il (rne in lotus tr bir dosya) ise yukar da verilen komutta csv yerine wk1 konularak ayn i lemler yap labilir. 3.2.5.1. fopen komutu fopen komutu kullan larak MATLAB ortam nda, var olan bir veri dosyas a labildi i gibi yeni bir veri dosyas da olu turulabilir. Bu komut MATLAB command window ortam nda a a daki biimlerde uygulan r: >>bilgi=fopen(dosya ad i,secenek) >>[bilgi, mesaj]=fopen(dosya ad i,secenek) >>[bilgi, mesaj]=fopen(dosya ad i,secenek,format) (enter) (enter) (enter)

Yukar da dosya adi ile belirtilen yere MATLAB ortam na ta nacak dosyan n ad yaz l r. dosya adi bo lu una yaz lan dosya, MATLAB arama motorunun tarad adresler iinde (ncelikle work dosyas nda) olmal d r. Bu dosya, ya yeni bir data girmek ya da data okumak amac ile a r l r. Dosya yeni olu turuluyor ise work dosyas nda a l r. Mevcut olan bir dosya a r lacak ise nce work dosyas na bak l r orada yoksa di er MATLAB arama yollar na bak l r. secenek bo lu una yaz lacak komut tr; bu dosyan n okuma m , yazma m veya hem okuma hem de yazma amal olarak m a laca konusunda MATLABa bilgi verir. Tablo 3.1de bu komut trleri tan t lm t r: Tablo 3.1 Komut tr r r+ w w+ a a+ W Uygulama biimi Dosyay yaln zca okuma amal olarak aar, yazma i lemine izin vermez. Dosyay hem yazma hem de okuma amal olarak aar. E er dosya mevcut ise iindeki bilgiyi siler ve iine yaz labilir hale getirir, dosya mevcut de ilse yeni bir dosya aar ve iine yaz labilir hale getirir. E er dosya mevcut ise iindeki bilgiyi siler, okunabilir ve yaz labilir hale getirir, dosya mevcut de ilse yeni bir dosya aar, okunabilir ve yaz labilir hale getirir. Mevcut bir dosyan n sonuna bilgi eklemek iin kullan l r. Dosya mevcut de ilse olu turur. a zelli ine ilave olarak okuma i lemini de mmkn k lar. Teyp srcleri iin kullan l r. Dosyay Automatic Flushing zelli ini kullanmadan

10

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar yazmaya aar. A Teyp srcleri iin kullan l r. W zelli ini kullan r ve bilgileri dosyan n sonuna ekler. dosya adi bo lu una yaz lan dosya ikili (binary) koda gre a l yor ise Tablo 3.1de gsterilen komut trnn sonuna b eklenir. Dosya text formatl olarak a l yor ise komut trnn sonuna t eklenir. kili sistemde default olarak b oldu u iin, komut trnn sonuna bir ek getirilmedi i durumda MATLAB dosyay ikili koda gre aar. Yukar da verilen komut sat r uyguland nda e er bilgi olarak -1 de eri elde ediliyor ise i lem do ru olarak gerekle memi i lemde hata olu mu demektir (yani dosya MATLAB ortam na ta namam t r). Kullan c bu de ere bakarak fopen komutunun al mas n kontrol edebilir. Yukar da verilen komut sat r uyguland nda hata var ise mesaj olarak hata hakk nda bilgi verilir.

format olarak ; n yaz l rsa (default) lokal makina format , lyaz l rsa IEEE-kk endian kayan noktal format , byaz l rsa IEEE byk endian kayan noktal format kullan l r,%fyaz l rsa okutulacak de erlerin say oldu u belirtilir. rnek olarak giris.dat adl bir (var olmayan) bir dosya work ortam nda (yaz labilir formatta) olu turulmak istenirse; >>[bilgi ,mesaj]=fopen(giris.dat, wt) (enter) bilgi = 3 mesaj = '' sonucu elde edilir. bilgi, pozitif bir say oldu u iin yap lan i lem ba ar ile gerekle mi tir. mesaj olarak ise bir hata bildirisi ortaya kmam t r. Yukar da verilen giris.dat dosyas yerine giris.txt adl text dosyas da a labilirdi. Bilindi i gibi txt uzant l dosyalar notepad komutu seilerek de a labilir. rnek olarak daha nce tan t lan fprintf komutu ile fopen komutunun birlikte kullan ld program a a da gsterilmi tir: >>A=[ 2 4 6 8 10 1 2 14 16 18]; >>[bilgi,mesaj]=fopen(giris.dat, wt); >>fprintf(bilgi,% 5f %5f %5f\n,A); (enter) (enter) (enter) bir MATLAB

Yukar da gsterilen fprint komutu, A matrisi elemanlar n her bir sat rda 3 eleman olacak ekilde (3 adet veriden sonra bir sat r atlanacak) giris.dat adl (yeni olu turdu u) text dosyas na atar. Yukar da olu turulan giris.dat adl dosyay okuyabilmek iin; >> !notepad giris.dat komut sat r uygulanabilir. Bu i lem yap ld (enter) nda ekil 3.4de gsterilen pencere elde edilir.

ekil 3.4 3.2.5.2. fclose komutu

11

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar fclose komutu yazmak ya da okumak iin a lan dosyan n, MATLABdan ili kisini kesmek iin kullan l r. Bu dosya MATLABdan ili kisi kesilmedike (MATLAB al t srece), bilgisayardan silinemez. Yukar da a lan giris.dat adl dosyan n MATLAB ile ili kisi kesilmek istenirse; >> a=fclose(bilgi) a= 0 a de eri -1 olmad (enter)

iin yap lan dosya kapatma i lemi ba ar ile sonulanm t r. Ayn i lem; (enter)

>> a=fclose( all); komut sat r kullan larak da yap labilir. 3.2.5.3. fwrite komutu

fwrite, daha nce a lm bir dosya iine (kullan c n arzu etti i) bir veriyi ikili (binary) koda gre aktaran b ir komuttur. A a da gsterilen bir yap alt nda uygulan r: >> sayi=fwrite(bilgi,veri,yap ,bo luk) (enter)

Yukar da verilen komut sat r nda, bilgi; fopen komutunun uygulanmas sonucu elde edilir. veri; kullan c taraf ndan dosya iine aktar lmak istenen (matris formlu) veri (rnek olarak workspace ortam nda sakl bulunan bir matris olabilir) ad d r. yap ; girilecek verinin dosya iinde saklanma format d r. Saklanma formatlar Tablo 3.2de gsterilmi tir. Tablo 3.2 format char schar uchar int8 int16 int32 int64 uint8 uint16 uint32 uint64 float32 float64 bitN ubitN A klama 8-bitlik karakter 8-bitlik i aretli karakter 8-bitlik i aretsiz karakter 8-bitlik say 16-bitlik say 32-bitlik say 64-bitlik say 8-bitlik i aretsiz say 16-bitlik i aretsiz say 32-bitlik i aretsiz say 64-bitlik i aretsiz say 32-bitlik de i ken nokta 64-bitlik de i ken nokta N-bitlik i aretli say ,1N64 N-bitlik i aretsiz say ,1N64

atlama; her veri aras na b rak lacak bo lu u gsterir. Komut sat r n n uygulanmas sonunda elde edilen say ; verinin ierdi i data say s n gsterir. Daha sonra da bahsedilece i gibi MATLAB, bir matrisi arka planda stnstun depolar; 1. stunun elemanlar arkas na 2. stun ve onun arkas na da 3. stun elemanlar n ekler (bylece matris stunlar tamamlan ncaya kadar devam edilir) ve sonu olarak bu matris arka planda bir dizi olarak saklan r. 3.2.5.4. fread komutu fread; ikili (binary) sisteme gre haz rlanm bir data dosyas n okuma komutudur. A a da gsterilen format kullan larak uygulan r: >>[dizi,sayi]=fread( bilgi,alan,yap ,bo luk) (enter)

12

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar Yukar da gsterilen komut sat r nda, baz tan mlar yukar da a klanm t . Komut sat r nda grlen alan; dosyadan okunmas istenen de i ken say s n belirtir, farkl ekilde uygulan r: - alan bo lu una bir say yaz labilir. Bu durumda dosyadan bu say adedi kadar veri okunur. Okunan veriler dizi ile belirtilen k de i kenine bir stun matris olarak atan rlar. - alan bo lu una inf komutu yaz labilir. Bu durumda dizi ile belirtilen k de i kenine okunan dosyadaki tm data de erleri aktar l r. - alan bo lu una [a,b] yaz labilir. Bu durumda dosyadaki a*b boyutu iine giren tm datalar, dizi ile belirtilen matrise a*b boyutlu olarak atan r. 3.2.5.5. fscanf komutu fscanf; formatlanm sisteme gre olu turulmu bir veri dosyas n n okuma komutudur. A a da gsterilen format kullan larak uygulan r: >>[dizi,sayi]=fscanf (bilgi,format,alan) (enter)

Yukar da verilen tm ifadeler daha nce a klanm t r. A a daki uygulama incelenmelidir: >>A=[ 2,4,6,8,10 ;12,14,16,18 20]; >>[bilgi,mesaj]=fopen('iris.dat','wt') ;%iris.dat dosyasi yazma amacli olusturulur >>fprintf(bilgi,'%5f %5f %5f \n',A); %iris.dat dosyasina A verisi yazdiriliyor >>qq=fopen('iris.dat','rt') ; % iris.dat dosyasi okuma amacli aciliyor >>[dizi,sayi]=fscanf(qq,'%f',Inf) %iris.dat verileri dizi adli degiskene ataniyor dizi = 2 4 6 8 10 12 14 16 18 20 sayi = 10 Yukar da elde edilen sonulara bak ld nda okutulan veri say s n n 10 oldu u grlmektedir. Ayn dizi tekrar okutulmak istense, nce fclose komutu ile dizinin MATLAB ile ba lant s kopart l p sonra fopen komutu kullan larak MATLAB ba lant s n n kurulmas gerekir. A a da hem bu i lemin nas l yap laca gsterilmekte hem de [2 5] komutu ile A matris,i gerek ekli ile ekrana yazd r lmaktad r: >>fclose(qq); >>qq=fopen('iris.dat','rt'); >>[dizi,sayi]=fscanf(qq,'%f',[2 5]) dizi = 2 4 6 8 10 12 14 16 18 20 sayi = 10 3.2.5.6. textread komutu

13

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar textread komutu, stun yap s formatl ASCII kodlu verileri dosyadan okumak iin kullan l r. A a da gsterilen format kullan larak uygulan r: [x,y,w,z,..]= textread(dosya adi,format,satirno) Yukar da grlen komut sat r nda dosya adi; a lacak dosyan n ad n belirtir. format; stun-stun okunacak datan n yap s n gsterir. Blm 2de fprintf komutunda tan t lan format trleri kullan l r. rnek olarak %s ifadesi format yerine yaz ld nda, okunacak dosyadaki verinin karakter tr oldu u belirtilmi olur. satirno; dosyadan okutulacak sat r say s n gsteren bir ifadedir. K saca, bu komut kullan larak say veya karakter dizilerinden olu an dosyalar MATLAB ortam nda okutulabilir. E er a lacak dosya (r: okuma.dat), work klasrnde de ilde (rne in) D sabit diskinde deneme adl alt klasr iinde ise yukar daki komut sat r nda dosya adi bo lu una; [x,y,w,z,..]= textread(D: \deneme\okuma.dat,format,satirno ) yaz lmal d r. A a da textread komutuna ili kin bir uygulama gsterilmektedir. Bir irkete i ba vurusu yapan ki ilere ili kin e itli bilgiler basvuru.dat adl dosya iine yerle tirilecektir. Ba vuran ahsa ili kin bilgiler bu dosyaya a a daki s ra gzetilerek yerle tirilecektir: Ad , Soyad , Ya , Cinsiyeti, Medeni_hali, Egitim_durumu Yukar da say lan bilgileri ieren dosya ncelikle bilgisayar ortam nda a lmal d r. Bunun iin a a da belirtilen ad mlar n gerekle tirilmesi gerekir: - MS Windows Ba lat ubu una t klan ld nda a lan pencere iinden al t r seene ini se. - Yukar da belirtilen i lem yap ld nda a lan pencerede yer alan bo lu a notepad yaz ve Tamam tu una t kla. Yukar da belirtilen ad mlar gerekle tirildi inde a lan Ads z-Notdefteri ekil 3.5de gsterilmi tir.

ekil 3.5

ekil 3.6

Daha sonra ba vuru bilgileri ekil 3.6da gsterildi i gibi sat r-sat r Ads z adl Not defterine girilmelidir. Bu i lem de gerekle tirildikten sonra ekil 3.6da grlen Dosya mens iinde yer alan Save As seene i kullan larak a lan pencerede dosya ismi olarak basvuru.dat ad yaz l p, dosya C:/MATLAB7.01/work klasr iine yerle tirilmektedir. Veri dosyalar nda her karakter grubu bir stun olarak alg lan r. Bu a dan bak ld grubu, 6 stun-2 sat rdan olu an bir matris gibi d nlebilir. nda ekil 3.6'da grlen veri

Art k, basvuru.dat ad ile work klasrne yerle tirilen veri dosyas textread komutu kullan larak okutulabilir. Bu dosyada yer alan veriler; yukar da da bahsedildi i gibi 2 sat r-6 stundan olu an bir matris olarak d nlmelidir. A a da MATLAB ortam nda basvuru.dat adl veri dosyas n n textread komutu ile okutulmas n sa layan komut sat r verilmi tir:

14

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar >> [adi,soyadi,yasi,cinsiyeti,Medeni_durumu,Ogrenim_durumu]=textread ... ('basvuru.dat','%s %s %f %s %s %s') Yukar da verilen komut sat r n n uygulanmas sonunda elde edilen ekran grnts a a da gsterilmi tir: adi = 'Ahmet' 'Yesim' 'Mehmet' soyadi = 'Kuru' 'Yagiz' 'Tas' yasi = 26 27 24 cinsiyeti = 'E' 'K' 'E' Medeni_durumu = 'Evli' 'Bekar' 'Bekar' Ogrenim_durumu = 'Universite' 'Lise' 'Lise' Yukar da verilen program sat r nda %s; karakter giri ler, %f ise say sal giri ler iin kullan lmaktad r. E er baz bilgilerin ekranda grlmesi istenmiyor ise format bildiren ifadenin iine '*' i areti yerle tirilmelidir: >>[adi,soyadi,Og renim_durumu]=textread ... ('basvuru.dat','%s %s % *f %*s %*s %s') Yukar da verilen komut sat r n n uygulanmas sonunda elde edilen ekran grnts a a da gsterilmi tir: adi = 'Ahmet' 'Yesim' 'Mehmet' soyadi = 'Kuru' 'Yagiz' 'Tas' Ogrenim_durumu = 'Universite' 'Lise' 'Lise' 3.3.2. M uzant l dosyalar n MATLAB iinde farkl klasrlere yerle tirilmesi Kullan c MATLAB ortam nda olu turdu u de i ik M uzant l dosyalar farkl klasrlere yerle tirmek isteyebilir. rne in e ri izimleri iin geli tirdi i MATLAB dosyalar n egri adl bir klasre, diferansiyel denklem zmleri iin geli tirdi i dosyalar ise diferansiyel adl bir klasr iine yerle tirmek isteyebilir. Bundan ama daha sonraki al malarda bu dosyalar aramadan kolayca bulmakt r. Bunun iin nce MATLAB iinde work klasr iinde bir alt klasr a l r ve ad na diferansiyel denir. Bu klasrn work adl klasr iinde olmas art de ildir. Byle bir tercih yap lmas n n nedeni MATLAB bilgisayardan uninstall edilse bile work

15

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar klasrnn bilgisayarda hala kalabilme zelli indendir. MATLAB iinde a lan bir .m uzant l dosya adresi MATLAB arama motoruna tan t lmaz ise Command Window ortam nda bu dosya ismi yaz ld nda bu dosya bulunamaz. Bu nedenle yeni a lan bu klasrn adresi MATLABa retilmelidir. Byle bir i lem iin MATLAB masastnde File mens iindeki Set Path.. seene i kullan l r. rne in kullan c MATLAB ortam nda haz rlad harmonik problem zmlerini ieren tm M uzant l dosyalar harmonik adl bir klasrde depolamak istesin. Bunun iin ilk ad m olarak yukar da bahsedildi i gibi work adl klasr iinde harmonik adl bir alt klasr amak gerekir. Daha sonra bu klasr yolunu MATLABa tan tmak gerekmektedir. Bunun iin ise File/Set Path.. yolu fare ile seilmelidir. Bu i lem yap ld nda kullan c n n kar s na ekil 3.5de grlen pencere kar.

ekil 3.5 A lan pencere iinde Add Folder seene ine t klan ld nda kullan c n n kar s na ekil 3.6da grlen pencere kar. Bu pencerede Tamam seene i seildi inde ekil 3.7de verilen pencere elde edilir. Bu pencerede grlen s ralama MATLAB motorunun dosya aramadaki ncelik s ras n gstermektedir.

ekil 3.6

ekil 3.7

E er bu s ralama kullan c a s ndan uygun de ilse kullan c Move Down seene ini kullanarak <C:\MATLAB7\work\harmonik> yolunu alt s ralara ta yabilir. ekil 3.5de Add with Subfolders seene i kullan l rsa harmonik adl alt klasrn alt na eklenecek yeni alt klasrlerde bir daha tan t ma gerek kalmaks z n kendili inden arama motorunun arama yoluna eklenecektir. E er ekil 3.7de grlen yollar iinden

16

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar baz lar kullan c taraf ndan art k kullan lm yor ise Remove seene i kullan larak bu yollar arama seenekleri iinden kart labilir. E er Revert seene i kullan l rsa en son tan t lan yol i lemi iptal edilir. Default seene i kullan l rsa arama yolu varsay lan (eski) yollar na geri dner. rnek olarak A srcsnde Untitled2.m adl bir MATLAB dosyas bulunsun. Kullan c bu dosyay C ortam na ta madan A srcs zerinden al t rmak istedi inde kar s na ekil 3.8'de gsterilen bir pencere kar. Bu pencerede kullan c ya, mevcut klasr iinde Untitled2 adl dosyan n bulunamad veya tan ml MATLAB yolu iinde bu dosyan n bulunamad mesaj verilerek bu dosyay al t rmak iin a a daki yoldan bir tanesinin seilmesi gerekti i belirtilmektedir. Seilen ilk tercih mevcut klasrn de i tirilmesi, ikinci tercih MATLAB path (yolunun) de i tirilmesi ve bu yolun taramada ( ekil 3.7) en ste yerle tirilmesidir. Son seenek ise bu yolun taramada en alta yerle tirilmesidir.

ekil 3.8

ekil 3.9

ekil 3.10 E er ekil 3.9'da gsterildi i gibi ikinci seenek fare ile i aretlenir ve OK tu una bas l rsa, A srcndeki program al r. Kullan c MATLAB masastnde File mens iinde yer alan Set Path seene ine 't k'larsa ekil 3.10 grnts ile kar la l r. Burada grld gibi A srcs MATLAB tarama motorunun yolunun ilk arayaca yere yerle tirilmi tir. E er ekil 3.10'da Save tu una bas lmaz ise bu yol sreklilik kazanmaz di er bir ifade ile bir ba ka zamanda A srcsnde bir MATLAB dosyas al t r lmas gerekse yukar da belirtilen tm i lemlerin tekrar yap lmas gerekir. Save tu una bas ld nda kullan c n n bilmesi gereken di er nemli bir nokta da; arama motoru bir dosyay ararken her seferinde A srcsne bakaca ndan, disket srcsnde srekli bir disketin bulunmas gibi anlams z bir sonu ortaya kacakt r. Sonu olarak, kullan c s k s k A (ya da di er E, F gibi sabit olmayan) srclerden faydalan yor ise en az ndan ekil 3.9'da gsterilen en son seene i i aretlemesi daha uygun olacakt r. Bylece arama i leminde sabit olmayan src en son taran r ve ancak sabit srclerde aranan dosya bulunamaz ise sabit olmayan srcler aramaya dahil edilir. Problem

17

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar ekil 4.15de verilen devrede (byk oklar evre ak m ynlerini gstermektedir); v1 (t ) ! 2 *10 * sin wt ; v 2 ( t ) ! 2 *15 * sin( wt  60) oldu una gre srekli hal ko ullar alt nda i1 ( t ) ve i 2 ( t) ak mlar aras ndaki faz fark n derece olarak hesaplayan bir MATLAB program yaz n z (tm ilk ko ul de erleri 0 al nm t r).

i1 ( t ) Ic i 3 (t) ekil 4.15. zm Devre zm yntemi olarak evre ak mlar yakla m kullan l rsa (evre ak m ynleri saat ibresi dn yn al nm t r); I c1 10 * exp( * 0) ! 2  3  * (X 1  X 2) I c 2  15 * exp( * pi / 3)

I c2 i 2 ( t)

yaz labilir. Verilen devrede dal ak mlar ile evre ak mlar aras nda i1 ( t) ! I c1 ; i 2 ( t ) ! I c 2 ; i 3 (t ) ! I c1  I c 2 ili kisi bulunmaktad r. A a daki program i1 ( t ) ve i 2 ( t) ak mlar hesaplamaktad r. aras ndaki faz fark n derece olarak

f=50;C=4; L1=5;L2=6; R1=1; R2=2; R3=3; XL1=2*pi*f*L1; XL2=2*pi*f*L2; XC=1/(2*pi*f*C); Z=[R1+R3+j*(XL1 -XC) -(R3+j*XL1) ; -(R3+j*XL1) R2+R3+j*(XL1+XL2)]; V=[10*exp(j*0) ;-15*exp(-j*pi/3)]; akim=inv(Z)*V; i1aci=angle(akim(1));i2aci=angle(akim(2)); farkaci=(i1aci -i2aci)*180/pi Yukar da verilen program n al t r lmas sonunda elde edilen a farklar a a da gsterilmi tir; >> farkaci = -37.1962 5.2.3. Bir matrisin elemanlar n n bir k sm ile di er bir matris olu turulmas MATLAB ortam nda daha nce tan mlanm bir matrisin baz sat r veya stunlar n kullanarak yeni matrisler elde etmek mmkndr. A a daki rnekler incelenmelidir; >>h=[1 2 3 4 5 6 7 8 9] h= 1 2 3 4 5 6 7 8 9 (enter) (enter) (enter)

1  3  * (X 1  X )  ( 3  * X 1)

 ( 3  * X 1)

18

U ur Arifo lu >>A=h(:,2) A= 2 5 8

MATLAB7.0 Simulink ve mhendislik uygulamalar (enter)

Yukar da verilen rnekte h matrisinin 2 numaral stunu A matrisine atanmaktad r. h matrisinin sat r hanesinde yer alan (:) i areti, sat rlar ile ilgili bir i lemin yap lmayaca n gstermektedir >> B=h(1,:) B = 1 2 3 (enter)

Yukar da verilen rnekte h matrisinin 1 numaral sat r B matrisine atanmaktad r. h matrisinin stun hanesinde yer alan (:) i areti, stunlar ile ilgili bir i lemin yap lmayaca n gstermektedir >>f=[1,2,3 ;4,5,6;7,8,9;10,11,12] f = 1 2 3 4 5 6 7 8 9 10 11 12 >>C=f(:,2:3) C = 2 3 5 6 8 9 11 12 (enter)

(enter)

Yukar da verilen rnekte f(:,2:3) ifadesinde virgln nnde yer alan (:) i areti, f matrisinde sat r i leminin yap lmayaca n gstermektedir. Virgln sa nda yer alan 2:3 ise f matrisinin 2. stndan 3. stuna kadar tm stunlar n n C matrisine atanaca n gstermektedir. >> G=f(1:3,:) G = 1 2 3 4 5 6 7 8 9 (enter)

Yukar da verilen rnekte f(1:3,:) ifadesinde virgln solunda yer alan 1:3 i areti, f matrisinde 1. sat rdan 3. sat ra kadar tm sat rlar n G matrisine atanaca n gstermektedir. Virgln sa nda yer alan (:) i areti ise f matrisinde stun i leminin yap lmayaca n gstermektedir. >> P=f(3:4,1:2) P = 7 10 8 11 (enter)

Yukar da verilen rnekte f(3:4,1:2) ifadesinde virgln hem solunda hem sa nda say lar yer ald iin, f matrisinde hem sat r hem de stn i lemlerinin yap laca anla lmaktad r. f matrisinde 3. sat rdan 4. sat ra kadar tm sat r elemanlar ile f matrisinde 1. stundan 2. stuna kadar tm stun elemanlar n n ortak olanlar n n (kesi im kmesi) p matrisine atanaca n gstermektedir. Yukar daki i lem a a da verilen komut ile de gerekle tirilebilir; >> P=f([3 4],[1 2]) (enter)

19

U ur Arifo lu P = 7 8 10 11 veya >> P=f([3,4],[1,2]) P = 7 8 10 11 (enter)

MATLAB7.0 Simulink ve mhendislik uygulamalar

E er f matrisinin yaln zca 1. ve 3. sat rlar ile 1. ve 3. stunlar kullan larak E adl yeni bir matris elde edilmek istenirse a a daki program sat r uygulanabilir; >>E=f([1 3], [1 3]) E = 1 3 7 9 (enter)

Yukar daki sat r iinde 1 ve 3 rakamlar aras na virgl yerle tirilir ise sonu yine ayn olacakt r. Kolon operatr (:) kullan larak da benzer i lemler yap labilir. A a daki rnek incelenmelidir; >> M=[0.9 0.8 M = 0.9000 0 0.6000 8.0000 0.82 0.9;0 1 4 0.7;0.6 0.4 0.6 0.1;8 0.1 0.7 0.4] 0.8000 1.0000 0.4000 0.1000 0.8200 4.0000 0.6000 0.7 000 0.9000 0.7000 0.1000 0.4000

>>F=M([1:3],[2:2:4]) F = 0.8000 0.9000 1.0000 0.7000 0.4000 0.1000

(enter)

Yukar da verilen rnekte M matrisinin 1. (dahil) ve 3. (dahil) sat rlar aras nda kalan sat rlar ile 2. (dahil) stunundan 4. (dahil) stununa kadar olan stunlar iki er iki er art r ld nda elde elden stun elemanlar ile F matrisi olu turulmaktad r. u ana kadar verilen rneklerde M( ifadesinin iinde vektr kullan ld . A a da verilen rnekte ise vektr yerine matris gsterimi kullan lm t r; >>K=M([2 1;4 2],[2 1;3 1]) (enter)

Yukar da verilen MATLAB sat r n n uygulanmas sonunda nas l bir sonu elde edilece i a a da ad mlar halinde gsterilmi tir: >>[2 1;4 2] 2 1 4 2 (enter)

matrisi MATLAB ortam nda (daha nce de bahsedildi i gibi) dizi olarak tutulmaktad r. Di er bir ifade ile 1. stunun arkas na 2. stn, 2. stunun arkas na 3. stun ve 3. stunun arkas na ise 4. stun eklenir. Buna gre yukar daki; 2 4 1 2

20

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar matrisi MATLAB ortam nda dizi olarak (2 4 1 2) eklinde saklan r. Bu a klamadan sonra K=M([2 1;4 2],.. sat r n n MATLAB ortam nda uygulan a a daki gibi olacakt r: 0 8.0000 0.9000 0 1.0000 0.1000 0.8000 1.0000 4.0000 0.7000 0.8200 4.0000 0.7000 0.4000 0.9000 0.7000

Yukar da grld gibi M matrisinin 2. sat r K matrisinin 1. sat r , M matrisinin 4. sat r K matrisinin 2. sat r , M matrisinin 1. sat r K matrisinin 3. sat r , M matrisinin 2. sat r ise K matrisinin 4. sat r olmaktad r. [2 1;3 1] matrisi MATLAB ortam nda; 2 3 1 1

oldu una gre yukar da sat r iin yap lan i lemler stun iin yap lmal d r. Buna gre yukar da elde edilen son matrisin stunlar K=M(.,[2 1;3 1]) i lemine maruz b rak l rsa 1. stun yerine 2. stun, 2. stun yerine 3. stun, 3. stun yerine 1. stun, 4. stun yerine ise 1. stun gelecektir: 1.0000 0.1000 0.8000 1.0000 Bylece; >>K=M([2 1;4 2],[2 1;3 1]) K = 1.0000 4.0000 0 0.1000 0.7000 8.0000 0.8000 0.8200 0.9000 1.0000 4.0000 0 elde edilecektir. Bir di er rnek olarak a a daki MATLAB sat r incelenmelidir; >>T=K([1 5 6 8 3 12]) T = 1.0000 4.0000 0.7000 (enter) 4.0000 0.8000 0 nn (enter) 0 8.0000 0.9000 0 4.0000 0.7000 0.8200 4.0000 0 8.0000 0.9000 0 0 8.0000 0.9000 0

Yukar daki sonucu anlayabilmek iin matris elemanlar n n MATLAB ortam nda dizi olarak saklan ld tekrar hat rlanmas gerekir: K=(1 0.1 0.8 1 4 0.7 0.82 4 0 8 0.9 0 0 8 0.9 0)

Buna gre K matrisinin 1.,5.,6.,8.,3. ve 12. elemanlar n n T vektrn olu turdu u anla lmaktad r. Yukar daki gsterim kullan larak K matrisinin baz eleman de erleri de i tirilebilir: >>K([1 5 6 8 3 12])=99 K = 99.0000 99.0000 0 0.1000 99.0000 8.0000 99.0000 0.8200 0.9000 1.0000 99.0000 99.0000 (enter) 0 8.0000 0.9000 0

Grld gibi K matrisinin 1., 5., 6., 8., 3. ve 12. eleman de erleri 99 say s ile de i tirilmektedir.

21

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

Matrisel gsterim kullan larak da bir matrisin baz sat r ve stun eleman de erleri de i tirilebilir. A a daki rnek incelenmelidir: >>K([1 3],[2 4])=0.99 K = 99.0000 0.9900 0.1000 99.0000 99.0000 0.9900 1.0000 99.0000 (enter) 0 8.0000 0.9000 99.0000 0.9900 8.0000 0.9900 0

Yukar da gsterildi i gibi K matrisinin 1. sat r ve 3. sat r ile 2. stun ve 4. stun elemanlar n n iinde ortak olanlar n n (kesi im kmesi) de erleri 0.99 yap lmaktad r. Yukar daki gsterimde bir ok eleman de eri bir tek eleman de eri ile de i tirildi. Ayn anda birden fazla eleman de eri de de i tirilebilir. A a daki rnekler incelenmelidir: >>K([1 3],[2 4])=[1 -1;2 -2] K = 99.0000 1.0000 0 0.1000 99.0000 8.0000 99.0000 2.0000 0.90 00 1.0000 99.0000 99.0000 (enter) -1.0000 8.0000 -2.0000 0

Grld gibi K matrisinin 1. ve 3. sat r ile 2. ve 4. stun elemanlar n n iinde ortak olanlar n n (kesi im kmesi) de erleri (4 adet eleman) 1 2 -1 -2

elemanlar ile yer de i tirmektedir. >> K(3, [2:4])=3:2:7 K = 99.0000 1.0000 0.1000 99.0000 99.0000 3.0000 1.0000 99.0000 E er kesi im kme eleman say s ile kar la lacakt r. (enter) 0 -1.0000 8.0000 8.0000 5.0000 7.0000 99.0000 0 ile yerlerine atanan eleman say s aras nda uyumsuzluk olur ise hata bildirimi

MATLAB ortam nda daha nce tan mlanmam bir matris kolon gsterimi yard m ile olu turulabilir. A a daki rnekler incelenmelidir: >>s(1:3,1:4)=5 s = 5 5 5 5 5 5 (enter) 5 5

5.2.4. Matrisleri birle tirerek yeni bir matris olu turulmas MATLAB ortam nda mevcut matrisleri kullanarak yeni bir matris olu turulmas i lemi yap l rke n dikkat edilmesi gereken en nemli nokta birle tirilen matrisler aras ndaki boyut uyumudur. Burada matris olu turmak iin rand komutundan faydalan lacakt r (rand komutunun her uygulan nda matris boyutu ayn olsa bile-farkl de erler ieren bir matris elde edilece i unutulmamal d r) : >> a1=rand(3,2) % 3 sat r, 2 stunluk rasgele elemanlardan olu an matris olu turuluyor a1 = 0.4103 0.3529

22

U ur Arifo lu 0.8936 0.8132 0.0579 0.0099 >> a1=rand(3,4) a2 = 0.1389 0.6038 0.2028 0.2722 0.1987 0.1988 >> a1_2=[a1 a2] a1_2 = 0.4103 0.3529 0.8936 0.8132 0.0579 0.0099 >> a3=rand(3,6) a3 = 0.8462 0.6721 0.5252 0.8381 0.2026 0.0196

MATLAB7.0 Simulink ve mhendislik uygulamalar (enter) 0.0153 0.7468 0.4451 0.9318 0.4660 0.4186 (enter) 0.1389 0.2028 0.1987 0.6038 0.2722 0.1988 0.0153 0.7468 0.4451 (enter) 0.6813 0.3795 0.8318 0.5028 0.7095 0.4289 0.3046 0.1897 0.1934 0.6822 0.3028 0.5417 0.9318 0.4660 0.4186

>> a1_2_3=[a1_2;a3] (enter) a1_2_3 = 0.4103 0.3529 0.1389 0.60 38 0.0153 0.9318 0.8936 0.8132 0.2028 0.2722 0.7468 0.4660 0.0579 0.0099 0.1987 0.1988 0.4451 0.4186 0.8462 0.6721 0.6813 0.5028 0.3046 0.6822 0.5252 0.8381 0.3795 0.7095 0.1897 0.3028 0.2026 0.0196 0.8318 0.4289 0.1934 0.5417 5.2.5. MATLAB Command Window ortam nda tan ml bir matrisin baz eleman de erlerinin Array Editor ortam nda de i tirilmesi

ekil 5.1 ekil 5.1de Command Window ortam nda K matrisi yaz l r ve ('enter') tu una bas l rsa Workspace ortam nda K adl (sar renkli) ikon ortaya kar. Bu ikon zerine fare ile gelinip ift adet t klan ld nda ekil 5. 1(a)da verilen Array Editor ekran grnts ile kar la l r. ekil 5.1(a)da grlen K matrisinin

23

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 5.1(a)

ekil 5.1(b)

hangi eleman (yada elemanlar ) de i tirilecek ise fare ile o eleman n zerine t klan larak ortaya kan siyah ereve iine istenilen (yeni) de er klavye ile girilir. Daha sonra de i tirilen eleman d nda kalan herhangi bir eleman zerine fare ile 't k'lan larak ekil 5.1(a)'da grlen siyah pencere kapat l r. Bu i lem bittikten sonra Array Editor penceresinin File mens iinde yer alan Close Editor (veya Close K) seene i kullan larak bu ortamdan k l r. Bylece K matrisinin de eri de i tirilmi olur. E er kullan c fare yard m ile ekil 5.1(b)'de gsterildi i gibi sat rlar seer ve daha sonra farenin sa tu una 't k'larsa ekil 5.1(c)'de gsterilen pencere a l r. Bu pencere iinde Delete komutu seilirse ekil 5.1(d)'de verilen pencere ile kar la l r. Bu pencere iinde Shift cell up seene ini kullan r ise ekil 5.1(e)'de verilen sonu matris elde edilir. Burada grld gibi i aretlenen sat rlar '0' a e itlenmi tir. Kullan c ekil 5.1(f)'gsterildi i gibi stunlar fare ile seer, yukar da belirtilen i lemler sonunda ekil 5.1(d)'de verilen pencereye ula r ve Shift cell left komutuna 't k'larsa, K matrisinin i aretlenen stun elemanlar '0'a e itlenir ( ekil 5.1(g)).

ekil 5.1(c)

ekil 5.1(d)

ekil 5.1(e)

ekil 5.1(f)

24

U ur Arifo lu ekil 5.1(g)

MATLAB7.0 Simulink ve mhendislik uygulamalar

5.2.6. Bir matrisin MATLAB Command Window ortam nda boyutunun de i tirilmesi MATLAB ortam nda kay tl bir matrisin boyutunun de i tirilmesi iki trl olabilir: Matris boyutu byltlebilir (geni letilebilir), matris boyutu kltlebilir (daralt labilir). rnek olarak C1 matrisi a a daki gibi verilmi olsun: >> C1= [1 2 3;4 5 6] C1 = 1 2 3 4 5 6 (enter)

C1 matrisi 2*3 boyutundad r. rnek olarak a a daki komut sat r yard m yla C1 matrisi 3*3 boyutuna geni letilebilir. Geni letilen C1 matrisinin yeni eleman de erleri (rne in) s f r olsun: >> C1([3:3], [1:3])=0 C1 = 1 2 3 4 5 6 0 0 0 (enter)

E er C1 matrisi daralt lmak istenir ise silinmek istenen sat r ve (veya) stun eleman de erleri bo diziye atanmal d r. Yukar daki C1 matrisinin (rne in) 2. sat r silinerek 2*2 boyutuna indirgenmek istenirse, a a daki komut sat r uygulanmal d r: >> C1(2,:)=[ ] C1 = 1 2 0 0 (enter) 3 0

5.2.6.1. Bir matrisin MATLAB Editor ortam nda boyutunun de i tirilmesi

ekil 5.2(a)

ekil 5.2(b)

ekil 5.1'de grlen Array Editor ortam ndaki K matrisinin 3. ve 4. stunlar n n silinmesi istense, nce ekil 5.2(a)'da gsterildi i gibi fare yard m ile silinmesi gereken stunlar i aretlenir. Daha sonra farenin sa tu una 't k'lan ld nda a lan pencere iinde ( ekil 5.2(a)) Delete komutu seilir. Bu i lem sonunda ekil 5.2(b)'de gsterilen pencere a l r. Bu pencere iinde Entire column seene ine 't k'lan l p OK tu una bas l rsa, ekil 5.2(c) ile verilen pencere elde edilir. Burada da grld gibi K matrisinin boyutu klm tr. E er K matrisinin ekil 5.2(d)'de gsterildi i gibi 3. ve 4. sat rlar silinmek isteniyor ise nce bu sat rlar fare ile seilir, daha sonra yukar da anlat ld gibi ekil 5.2(b) penceresine ula l r. Bu sefer bu pencerede Entire row seene ine 't k'lan l p OK tu una bas l rsa, ekil 5.2(e) ile verilen sonu elde edilir.

25

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 5.2(c)

ekil 5.2(d)

ekil 5.2(e)

ekil 5.2(f)

E er kullan c K matrisinin boyutunu art rmak istiyor ise ekil 5.2(f)'de gstertildi i gibi (rne in 5. bir stun ilave etmek iin) fare ile 5. stundaki herhangi bir hcreye 't k'layarak a lan siyah pencere iine klavye yard m ile istedi i de eri girebilir. Benzer i lemi ayn stunun di er elemanlar iinde yapmal d r. Aksi halde di er eleman de erleri kendili inden '0'a atan r. 5.2.9. MATLAB ortam nda tan ml bir matrisin yeniden dzenlenmesi Daha nce de bahsedildi i gibi boyutu ne olursa olsun tm matrisler MATLAB arka plan nda bir boyutlu bir dizi olarak saklan r. Kullan c MATLAB ortam nda verilen bir matrisin boyunu (eleman de erleri ayn kalmak art ile) de i tirmek istedi inde yukar da bahsedilen gere i unutmamal d r. rnek olarak 3*4 boyutunda olan N matrisi: >> N=[1 2 3 4;5 6 7 8;9 10 11 12] N = 1 2 3 4 5 6 7 8 9 10 11 12 olsun. Bu matrisi MATLAB arka plan nda; >>N(:) ans = 1 5 9 2 6 10 3 7 11 4 8 12 (enter) (enter)

olarak saklan r. N matrisinin boyutu reshape komutu kullan larak de i tirilebilir:

26

U ur Arifo lu M=reshape (N,a,b):

MATLAB7.0 Simulink ve mhendislik uygulamalar N matrisinin elemanlar n a sat r say l b stun say l M adl matris iinde saklar. >>M=reshape(N,4,3) (enter) M = 1 6 11 5 10 4 9 3 8 2 7 12

E er MATLAB ortam nda sakl M matrisinin sat rlar 180 derece ters evrilmek istenirse fliplr komutu kullan lmal d r; K=fliplr(M): M matrisinin sat r elemanlar n 180 derece ters evirerek K adl matris iine atar: >> K=fliplr(M) K = 11 6 1 4 10 5 8 3 9 12 7 2

E er MATLAB ortam nda sakl K matrisinin 1. sat r son sat r, son sat r 1. sat r yap l p di er sat rlarda buna gre dzenlenmek istenir ise flipud komutu kullan lmal d r; M matrisinin sat r s ralamas n ters evirerek T adl matris iine atar: >> T=flipud(K) T = 12 7 2 8 3 9 4 10 5 11 6 1

T=flipud(K):

E er MATLAB ortam nda sakl T matrisi saatin dn ynnn ters istikametinde 90 derece dndrlmek istenir ise rot90 komutu kullan lmal d r: S=rot90(T): T matrisini 90 derece saat ibresinin hareket ynn ters ynnde dndrr ve elde edilen matrisi S adl matrise atar. >> rot90(T) ans = 2 9 5 1 7 3 10 6 12 8 4 11

5.2.12. ok boyutlu matris yap lar Buraya kadar kullan lan matrisler iki boyuta sahipti. MATLAB ortam nda ok boyutlu matris yap lar da tan ml d r. boyutlu bir matrisi tan mlamak iin yle bir rnek verilebilir: boyutlu matrisin ilk iki boyutu kitab n bir sayfas n (x,y-dzlemi), nc boyutu ise bu sayfadan sonraki (arkaya do ru) herhangi bir sayfay temsil etsin (z ekseni). rnek olarak b1 matrisi 2 sat r 3 stun ve 2 sayfadan olu an bir eser olsun. b1 matrisinin ilk sayfas ; >> b1(:,:,1)=[1 3 5;7 9 11] b1 = 1 3 5 7 9 11 (enter)

27

U ur Arifo lu olsun. b1 matrisinin 2. sayfas ise; >> b1(:,:,2)=[0 2 4;6 8 10] b1(:,:,2) = 0 2 4 6 8 10

MATLAB7.0 Simulink ve mhendislik uygulamalar

(enter)

olsun. E er MATLAB ortam nda b1 matrisinin ne oldu u merak edilirse; >> b1 b1(:,:,1) = 1 3 7 9 b1(:,:,2) = 0 6 2 8 (enter) 5 11 4 10

elde edilir. E er b1 matrisinin boyutu merak edilirse; >>ndims(b1) ans = 3 bulunur. b1 matrisinin ls merak edilirse; >> size(b1) ans = 2 3 2 (enter)

(enter)

elde edilir. Bylece b1 matrisinin 2*3*2 llerinde oldu u anla lmaktad r. Drt boyutlu bir matrise yle bir rnek verilebilir: lk iki boyut matrisin sat r ve stun bo yutunu, 3. boyut bu matrisin kitab n hangi sayfas nda bulundu unu (di er bir ifade ile sayfa numaras n ), 4. boyut ise kitab n bir ok kitab n s rayla yerle tirildi i rafta soldan (yada sa dan) ka nc kitap oldu unu belirten say olabilir. E er bu rnek daha da geli tirilirse 5. boyut kitab n ka nc rafta oldu unu, 6. boyut raf ieren dolap numaras n , 7. boyut dolap s ras n (soldan yada sa dan), 8. boyut dolaplar ieren oda numaras n , 9. boyut odan n bulundu u kat numaras n vb. temsil edebilir. Matrisin boyutu artt ka b1 matrisini takip eden parantez iindeki virgl say s da artacakt r. Okuyucunun unutmamas gereken nemli bir nokta da, her bir boyut iin yeni bir matris tan mlanmas gere idir. rnek olarak b1 eserinin 3 sayfal oldu u d nlrse 3. sayfaya ili kin matrisin MATLABa tan t lmas gerekir. Bunun iin ise a a dakine benzer bir i lem gerekle tirilmelidir: >> b1(:,:,3)=[ -2 13 44;62 83 110] (enter)

5.5. Ekran n birden ok izim iin pencerelere ayr lmas subplot komutu ekran birden ok alt izim ekranlar na ay r r. rnek olarak; e er iki tane izim ayn ekran zerinde yap lacak ise bunlar ya (yan yana) st sa ve st sola yerle tirilir yada (st ste) alt sa ve alt sola yerle tirilir. E er drt adet izim yap lacak ise iki adet ste, iki adet alta izim yap labildi i gibi 4 tanesi yan yana da izdirilebilir. Bu komut; subplot(n,m,p) biiminde kullan l r. Burada izim yap lacak ekilleri bir matrisin elemanlar olarak grmek mmkndr. Bu durumda n; sat r say s n , m; stun say s n gsterir. p ise izilen alt pencerenin ka nc alt pencere oldu unu gsterir. Pencere say s soldan sa a ve yukar dan a a ya do ru numaralan r. rnek olarak, subplot(2,1,1) komutu yaz ld nda bu komutu takip eden plot komutu ile izdirilecek olan ekil, (ekran bir matris olarak d nlerek) matrisin (n=2) ikinci sat r (m=1) birinci stununa yerle tirilir. Bu ekil (p=1) ilk ekil olacakt r. rnek olarak subplot (222) yaz ld nda bu komutu

28

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar takip eden plot komutu ile verilen ekil drt paraya ayr lan ekran n (ikinci sat r ikinci stun) sa alt na yerle tirilir ve bu ikinci ekil (p=2) olmal d r. 5.6. Plot komutu kullanarak e rinin daha dar aral kta izdirilmesi Kullan c plot komutu ile izdirmek istedi i y=f(x) fonksiyonunda (program sat rlar iinde xi daha geni aral kta belirlese bile) xi daha dar aral kta da izdirebilir. A a daki rnek incelenmelidir: figure(1) x=0:0.5:50; y=3*x.^2; plot(x,y); title('ikinci dereceden egri cizimi'); xlabel('x'),ylabel('y'),grid; figure(2) plot(x(1:5), y(1:5)); title('ikinci dereceden egri cizimi'); xlabel('x'),ylabel('y'),grid;

ekil 5.9

ekil 5.10

ekil 5.9da (Figure No.1) x de i keni 0:0.5:50 aral nda de i tirilmektedir. ekil 5.10da ise (Figure No.2) x de i keni ilk 5 de eri iin izdirilmektedir. Bylece kullan c xin de i imi iinde istedi i de i im aral n daha hassas olarak grme imkan na sahip olabilmektedir. Burada dikkat edilmesi gereken nokta ise x ve ynin incelendi i eleman say lar n n ayn boyutta olmas d r (bu rnekte 5). Aksi halde kullan c hata uyar s ile kar la acakt r. 5.7. Figure penceresini kullanarak e rinin eksenleri ile oynanmas ekil 5.9da gsterilen Figure No.1 penceresinde Edit seene i iine girilip Axes Properties alt seene i t klan ld nda ekil 5.11de verilen grnt ile kar la l r. E er X ekseni ile ilgileniliyor ise bu pencerede X axis ikonuna 't k'lan larak a lan alt pencere iinde yer alan limits seene inin sa taraf na alt ve st X de erleri klavye ile girilebilir. Benzer i lemler arzu edilir ise Y (e er izim boyutlu ise Z) ekseni iin de yap labilir. Font seene ine 't k'lan ld nda ise a lan pencere ile eksenlerde kullan lan harflerin boyut ve fontlar seilir. ekil 5.11'de yer alan Auto seene i i aretlenirse, kullan c s n rlar n tespitini MATLAB'a b rak r. X scale seene i ile X ekseninin de i iminin lineer mi yoksa logaritmik mi olaca belirlenir. Bu pencere iinde Title bo lu una e rinin ismi, Colors seene inin yan ndaki ilk kutucuk ile eklin arka plan rengi, ikinci kutucuk ile de X, Y ve Z eksenleri zerindeki text format ndaki harflerin rengi belirlenir. Grid kutucu u hangi eksen iin i aretlenir ise o eksen zgara formunda olu turulur.

29

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 5.11 E er kullan c ekil 5.11'de Reverse seene ini i aretler ise eksen zerindeki say lar ters dndrlr, rne in X ekseni 0'dan 50'ye kadar s ralan rken, Reverse seene ine 't k'lan ld nda X ekseni 50'dan 0'a do ru azal r. Box komutu i aretlendi inde ise Y'nin en stteki de erinin ve X'in en sa daki de erinin hizas ndaki (kesik kesik) izgiler dz izgiye dndrlr. ekil 5.11'de Ticks..ikonuna 't k'lan rsa ekil 5.12'de grlen pencere ile kar la l r. Bu pencere iinde yer alan seenekler kullan larak , Y ve Z ekseni zerinde yer alan de erler de i tirilebilir (Insert), silinebilir (Delete). Step by komutu ile seilen eksen zerindeki de erlerin art belirlenebilir. Bu i lemler yap l rken fare yard m ile ekil 5.12'de gsterilen tablo iindeki pencereye 't k'lan larak aktif hale gelen pencere iine klavye yard m ile yeni bir de er yaz labilir ( ekil 5.13).

ekil 5.12

ekil 5.13

30

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 5.14

ekil 5.15

E er kullan c ekil 5.11'de fare yard m ile e ri zerine 't k'larsa ekil 5.14 ile verilen pencere ile kar la l r. Bu pencerede X Data Source seene inin sa taraf nda yer alan bo lukta (Auto yaz s n n bulundu u yer) ok i aretine 't k'lan ld nda, kullan c n n kar s na Workspace ortam nda o anda yer alan de i kenlerin listesi kar. Bu de i ken listesinden bir tanesi seilir ise bu seilen diziyi olu turan de erler, X eksenini olu turan yeni de i kenler olarak belirlenir.. Benzer eyler Y (ve varsa Z) ekseni iin sylenebilir. Plot type komutu ile e ri (line ,bar, area, stem ve stairs) trlerinden birisine uygun ekilde izdirilir. Line komutuna t k'lan ld nda ise kullan c n n kar s na izgi trleri (dz,kesik izgi vb.) seenekler kar. Marker komutu ile de e riyi olu turan her bir noktan n (gen,kare, yuvarlak,y ld z vb.) ekillerden hangisine uygun olaca na karar verilir (none seene i kullan l rsa klasik izim ekli uygulan r). Line komutu hizas ndaki renk seim kutusu yard m ile izginin rengi, Marker komutu hizas ndaki renk seim kutusu yard m ile de i aret rengi belirlenir. Figure Color seene i ile ekil 5.14'de x-y eksenlerinin ve ekil ad n n bulundu u pencere rengi belirlenir. ekil 5.11'de Inspector kutusuna 't k'lan ld nda, ekil 5.15'de gsterilen arka plan ayar penceresi ile kar la l r. Bu pencere yard m ile eksenlere ili kin detayl ayarlar gerekle tirilir. E er ekil 5.14'de gsterilen Inspector seene ine 't k'lan l r ise ekil 5.16'da gsterilen iki boyutlu e riye ili kin arka plan ayar seenekleri ile kar la l r. Kullan c kendisine sunulan alternatifleri kullanarak e ri ve ekil hakk nda uygun de i iklikler gerekle tirebilir.

ekil 5.16

ekil 5.17

ekil 5.17'de ok ile gsterilen Data Cursor ikonuna 't k'lan ld nda farenin imleci '+' i areti eklini al r. Bu durumda fare ile e rinin hangi noktas na 't k'lan l r ise o noktan n koordinatlar e ri zerinde gzkr ( ekil

31

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar 5.17). E er ekil 5.17'de X ve Y de erlerini ieren pencere zerine fare ile gelinip sa tu una 't k'lan l r ise bir pencere a l r ( ekil 5.17). A lan pencere iinde Display Style seene inin alt nda yer alan Window Inside Figure seene i i aretlenir ise X ve Y'nin ald de erler eklin alt nda a lan yeni bir kutu iine yaz l r ve ekil 5.17'de grlen XY penceresi kapan r. E er kullan c birden fazla noktay e ri zerinde grmek isterse, e ri zerine gelinip farenin sa tu una bas ld nda a lan pencere iinden Create New Datatip seene ini kullanmal d r. Kullan c e er, X-Y penceresini silmek isterse, e ri zerine gelinip farenin sa tu una bas ld nda a lan pencere iinde yer alan Delete Current Datatip komutunu, tm -Y pencerelerini silmek isterse Delete All Datatip komutunu semelidir. E er ekil 5.17'de gsterilen alt pencere iinde Export Cursor Data to Workspace seene i i aretlenir ise e ri zerinde i aretli tm X-Y de erlerini ieren bir yap (struct) datas Workspace ortam nda olu turulur.

ekil 5.18

ekil 5.19

ekil 5.18'de gsterildi i gibi Insert Legend ikonuna 't k'lan l nda Figure 1 ekran nda bulunan tm e rilerin renk ve isimlerini a klayan kk bir pencere a l r. ekil 5.19'da gsterilen (be parmak i aretli) Pan ikonuna 't k'lan ld nda fare imleci be parmak eklini al r. mle, e ri zerine getirilir ve farenin sol tu una bas l rsa be parmak i areti e riyi kavrayacak ekilde de i ir. Bu durumda e ri (farenin sol tu u b rak lmayacak) fare hareketine ba l olarak sa a-sola ya da yukar -a a hareket ettirilebilir. Bylece e rinin di er blgelerde ald X ve Y de erleri de grlm olur. Pan ikonunun yan nda yer alan rotate ikonu zerine 't k'lan ld nda ise (zellikle boyutlu grafiklerde) e riye e itli a lardan bakma imkan elde edilir. ekil 5.19'da ikon mensnn en sa nda yer alan Show Plot Tools mensne 't k'lan ld nda ekil 5.20'de gsterilen pencere ile kar la l r. Bu pencere 3 adet alt pencere ierir. En altta yer alan Property Editor Text penceresi yerine (e er fare ile e rinin zerine 't k'lan rsa) Property Editor -lineseries penceresi a l r. E er fare ile eksenin zerine 't k'lan l r ise en alta Property Editor -Axes penceresi gelir. Altta yer alan bu pencereler ile ilgili olarak gerekli a klamalar yukar da verilmi ti. ekil 5.21'de gsterildi i gibi Figure-Palette adl alt pencerede 2D Axes ifadesinin sa taraf nda bulunan kutucu a 't k'lan ld nda iinde beyaz renkli kutucuklar bar nd ran bir pencere kar. Fare yard m ile bu pencerelerden bir k sm seilerek (subplot) alt izim pencereleri a l r. ekil 5.21'de iki tane alt alta izim penceresi olu turacak ekilde beyaz kutucuk seilmi tir. Bu i lem uyguland nda ekil 5.22'de grlen pencere elde edilir. Art k bu pencere iine yeni bir izim yap labilir. Bunun iin iki adet (yatay eksen ve d ey eksen iin) diziye ihtiya vard r. ekil 5.22'de (altta bo olan) izim penceresine 't k'lan l r ise (sa altta yer alan) Add data ikonu aktif hale gelir. Bu ikon zerine 't k'lan ld nda ekil 5.23'de verilen pencere ile kar la l r. Bu pencerede X Data Source yan nda yer alan bo lu a (ok i aretine 't k'lan ld nda Workspace ortam nda yer alan tm de i kenlerin listesi iinden) F1 seilerek, Y Data Source yan nda yer alan bo lu a da benzer ekilde F2 seilerek OK tu una bas l rsa (grid komutu da i aretlenerek) ekil 5.24'de verilen pencere elde edilir.

32

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 5.20

ekil 5.21 ekil 5.21'de Figure Palette penceresinde 2D yerine 3D seilseydi, yukar da i in iine bir de Z boyutu girecekti. Bu durumda F1 ve F2'ye ilaveten Z boyutu olarak bir ba ka dizi daha (rne in:workspace ortam ndan) bulunmas gerekecekti.

33

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 5.22

ekil 5.23

34

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 5.24

ekil 5.25 ekil 5.24'de Figure Palette penceresi iinde yer alan Variables ifadesinin zerine 't k'lan ld nda ekil 5.25'de gsterilen Annotations seenek penceresine ula l r. E er elde edilen e ri pencereleri zerinde bir de i iklik yap lmak istenir ise (rne in; ok izmek,bir text ifadesi yazmak, ekil yerle tirmek vb. gibi) ilgili i aretler zerine 't k'lamak gerekir. 6.2.1.6. Polinom integralinin al nmas polyint(a): Katsay lar a vektr ile verilen bir (A) polinomun integralini hesaplar.

rnek olarak; A= 2s 3  3s 2 - 5s  6 polinomunun integrali hesaplanmak istensin: >> a=[ 2 3 5 >> polyint(a) 6]; (enter) (enter)

35

U ur Arifo lu ans = 0.5000 1.0000

MATLAB7.0 Simulink ve mhendislik uygulamalar -2.5000 6.0000 0

Elde edilen sonuca bakarak A polinomunun integrali;


B = 2s 3 + 3s 2 - 5s + 6) ds = 0.5s 4 + s 3 - 2.5s 2 + 6s

olmaktad r. polyint(a) ifadesinde integral sabiti s f r kabul edilmektedir. ntegral sabitinin s f r kabul edildi i yukar da bulunan zm vektrnn son eleman n n s f r olmas ndan da anla lmaktad r. polyint(a,sabit) Kullan c integral sabitini s f rdan farkl bir de erde semek isterse bu komutunu kullanmal d r.

rnek olarak integral sabiti 5 al n rsa; >> a=[ 2 3 5 6]; >> polyint(a,5) ans = 0.5000 1.0000 -2.5000 elde edilir. 6.6.1. MATLAB ortam nda altprogram iinde altprogram kullan lmas MATLAB ortam nda altprogram (ana altprogram) iinde bir veya daha ok say da altprogram (yard mc altprogram) kullan labilir. Yard mc altprogramlar ancak ana altprogram taraf ndan a r labilirler. Bunun d ndaki bir yolla yard mc altprogramlara eri im imkans zd r. Ana altprogram iinde yard mc altprogram kullan lmas n n nedeni yeni altprogram dosyalar (m file) amamak, takip edilmesi kolay olan altprogramlar yazabilmektir. Problem 6.1..
( a / a 1 ) x 2  ( b / b 1 ) x  ( c / c1 ) ! 0

(enter) (enter) 6.0000 5.0000

denkleminde a=1; b=5; c=6 de erlerini almaktad r. a 1 , b 1 , c1 de erleri ise; 3a 1 - 4 ! 0 b1  5 ! 0 2c 1  2 ! 0 denklemlerini sa lamaktad r. Verilen ikinci dereceden denklemin kklerini bulan MATLAB program n yaz n z. zm >> >> >> >> a=1; b=5; c=6; [x1 x2]=kokbul(a,b,c) (enter) (enter) (enter) (enter)

Yukar da ad geen kokbul.m adl altprogram a a da verilmi tir: function [h1, h2]=kokbul(k1,k2,k3) w2=[3 -4]; a1=kokbul2(w2); w3=[1 5]; a2=kokbul2(w3); %1 %2 %3 %4 %5

36

U ur Arifo lu w4=[2 2]; a3=kokbul2(w4); a=k1/a1; b=k2/a2; c=k3/a3; x=-b/(2*a); y=sqrt(b^2 -4*a*c)/(2*a); h1=x+y; h2=x-y; function u1=kokbul2(n1) u1=roots(n1);

MATLAB7.0 Simulink ve mhendislik uygulamalar %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16

Yukar da grld gibi ana altprogram iinde 1 adet yard mc altprogram kullan lmaktad r. Ana altprogram 16 sat rdan, yard mc altprogram ise 2 sat rdan olu maktad r. Command Window ortam nda verilen 4 sat r n al t r lmas sonunda elde edilen kk de erleri a a da gsterilmi tir: >> x1 = 3.5726 x2 = -2.2393 mean(x): x bir vektr ise bu komut ile xin elemanlar toplan r ve eleman say s na blnr. E er x bir matris ise xin her bir stununun ortalama de erini hesaplar; >> a=[1 2 3;2 4 6;4 8 12] (enter) a = 1 2 3 2 4 6 3 6 12 >> mean(a) (enter) ans = 2.3333 4.6667 7.0000 >> x=[2 4 6] (enter) x = 2 4 6 >> mean(x) (enter) ans = 4 x vektrnn geometrik ortalama de erini hesaplar. x=[ x 1 , x 2 , x 3 ,....x n ] vektrnn geometrik ortalamas ; (
n 1

geomean(x):

i =1

xi ) n

ifadesi ile hesaplan r. Ayn i lem MATLAB ortam nda a a daki gibi yap l r: >>a=[1 2 3 2 4 6 4 8 12] >>geomean (x) ans = 3.6342 harmmean(x): (enter)

x vektrnn harmonik ortalama de erini hesaplar. x=[ x 1 , x 2 , x 3 ,....x n ]

37

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar vektrnn harmonik ortalamas ; n 1 xi i =1 ifadesi ile hesaplan r. Ayn i lem MATLAB ortam nda a a daki gibi yap l r: >> a=[1 2 3 2 4 6 4 8 12] >>harmmean (x) ans = 3.2727 (enter)
n

trimmean(x,k):

x vektrnn (%k)/2 lik maksimum ve minimum de erlerinin at lmas ile elde edilen yeni vektrn ortalamas n bulur. >> a=[1 2 3 2 4 6 4 8 12] >> trimmean(a,50) ans= 3.5000 (enter) (enter)

Yukar da a vektrnn %50 k rp lm de eri hesaplanmaktad r. median(x) : x bir vektr ise xin alt ve st s n r aras ndaki orta de er (de erler s raland nda ortada bulunan) eleman n bulur. E er x bir matris ise xin her bir stununun iinde o stundaki say lar n mean(x) de erini hesaplar; >> c =[5 2 3]; >> median(c) ans = 3 >>b =[1 8 3;2 4 6;4 8 12]; >> median(b) ans = 2 8 6 (enter) (enter) (enter) (enter)

Yukar da grld gibi b matrisinin ilk stunu iindeki say lar aras nda 1 ile 4 aras nda olup bu stunun ortalama de erine en uygun olan say 2 olmaktad r. kinci stun iin bu say 8, nc stun iin ise 6 olarak grlmektedir. median(x,k) : x bir matris olmak zere k=1 ise xin orta de eri xin stunlar zerinde hesaplan r. k=2 ise xin her bir sat r zerinde orta de er hesaplan r; x bir vektr ise bu komut ile xin elemanlar s ralan r. x bir matris ise bu komut ile xin stunlar kkten by e s ralan r; >> x=[8 x = 8 2 9 1 5;2 0 3;9 7 6] 1 0 7 5 3 6 (enter) 3 5 6 (enter)

sort(x)

>> sort(x) ans = 2 0 8 1 9 7

38

U ur Arifo lu sort (x,1) sort (x,2) : :

MATLAB7.0 Simulink ve mhendislik uygulamalar x matrisinin stunlar n kkten by e s ralar. x matrisinin sat rlar n kkten by e s ralar.

8.1. Mant k i lemleri Mant k yada ili ki ieren ifadelerde; e er giri verileri s f rdan farkl ise k de erleri do ru (1), giri verileri s f r ise k de erleri yanl (0) olarak al n r. Bu anlamda k de erleri mant ksal (lojik) de erler (1 ve 0 gibi) almaktad r. MATLAB ortam nda kullan lan kar la t rma i aretleri Tablo 8.1de verilmi tir;

Tablo 8.1 aret < <= > >= = = ~ =

Anlam Daha kk Daha kk veya e it Daha byk Daha byk veya e it E it E it de il

A a daki MATLAB yaz l mlar incelenmelidir; >>A=1:9 (enter) A= 1 2 3 4 5 6 7 8 9 >>B=8-A (enter) B= 7 6 5 4 3 2 1 0 -1 % A vektoru icinde 4e esit ve bundan kucuk olan sayilar % digerleri ise 0'a esitleniyor >>sec1= A<=4 (enter) sec1= 1 1 1 1 0 0 0 0 0 % A vektoru icinde B den buyuk olan sayilar 1'e % digerleri ise 0'a esitleniyor >>sec2= A>B (enter) sec2= 0 0 0 0 1 1 1 1 1 % A vektor icinde B ye esit olan sayilarin % digerleri ise 0'a esitleniyor >>sec3= (A= =B) (enter) sec3= 0 0 0 1 0 0 0 0 0

1'e,

1'e

% B vektorunden, A vektorunun icindeki % degeri 2 den buyuk sayilarin birb irlerinden kart lmas % >>C=A>2 % 2den byk say lar 1'e, digerleri ise 0'a esitleniyor C = 0 0 1 1 1 1 1 1 1 >>D=C.*A % A n n iinde 2 den byk olmayan say lar s f ra % e itleniyor , D adl vektore ataniyor D = 0 0 3 4 5 6 7 8 9 >>sec4= B-D % istenen amaca ula l yor (enter)

39

U ur Arifo lu sec4= 7 6 2

MATLAB7.0 Simulink ve mhendislik uygulamalar 0 -2 -4 -6 -8 -10

Yukar da verilen i lemlerde grld gibi = i areti ile = = i areti aras nda fark vard r. = = i areti iki de i keni kar la t r r. E er iki de i ken ayn de eri al r ise sonu 1, farkl ise sonu 0 olur. Di er taraftan = i areti ise atama iin kullan l r. = i aretinin sa taraf ndaki say bu i aretin sol taraf ndaki de i kene atan r. 8.3.2. Mant ksal kontrol i lemcileri Tablo 8.4de gsterilen mant ksal kontrol i lemcileri, her iki yan na yerle tirilen ve (1*1) boyutunda olan ifadenin do ru veya yanl olmas na gre 1 veya 0 reten MATLAB komutlar d r. Tablo 8.4 aret && ||

Lojik kar l ve veya

Kontrol i areti && ise ve bu i aretin her iki taraf ndaki (1*1) boyutundaki ifadeler do ru ise sonu 1, aksi halde 0 olacakt r. E er | | i aretinin her iki taraf ndaki ifadelerden e n az biri do ru ise sonu 1, aksi durumlarda sonu 0 olacakt r. A a daki rnekler incelenmelidir: >>a=2; >>b=3; >>(a<3)&&(b>4) ans = 0 >>m=[1 2]; (enter) >>n=[3 4]; (enter) >>(m<3)&& (n>2) (enter) ??? Operands to the || and && operators must be convertible to logical scalar values. Yukar da grld gibi m ve n vektrleri (1*1) boyutunda olmad find(x) : iin hata uyar s ile kar la lm t r. (enter) (enter) (enter)

x bir vektr ise bu komut ile x in s f r olmayan elemanlar n n s ras olu turulan vektre yaz l r. E er x bir matris ise bu komut x matrisini stun stun tarayarak (b matrisinin MATLAB arka plan nda bir dizi olarak sakland unutulmamal d r) s f r olmayan elemanlar n s ras n vektr olarak (stun vektr) yazar.

>> a=[1 0 -1 6] a= 1 0 -1 6 >> find(a) ans = 1 3 4 >> b=[0 1 3 -1; 0 1 0 3; 0 2 0 1; 0 -4 2 0]; >> find(b) ans = 5 6 7 8

40

U ur Arifo lu 9 12 13 14 15

MATLAB7.0 Simulink ve mhendislik uygulamalar

find komutunun yan ndaki ifade lojik bir fonksiyon ise bu komutun kar la t rma amal mmkndr. A a daki rnekler incelenmelidir: >>[satir,sutun]=find(b==2) satir = 3 4 sutun = 2 3 (enter)

kullan lmas da

Yukar daki program sat r nda b matrisinin 2ye e it elemanlar n n adresleri aranmaktad r. Komutun uygulanmas ndan elde edilen sonulara bak ld nda b matrisinde iki tane 2 say s bulundu u anla lmaktad r. lk 2 say s 3. sat r 2. stunda, ikinci 2 say s ise 4. sat r 3. stunda bulunmaktad r. E er b matrisinde 2den byk elemanlar n adresleri merak edilirse a a daki komut sat r uygulanmal d r: >> [satir,sutun]=find(b>2) satir = 1 2 sutun = 3 4 (enter)

Elde edilen sonulara bakarak b matrisinde 1. sat r 3. stunda ve 2. sat r 4. stununda 2den byk elemanlar bulunmaktad r. E er kullan c bu eleman de erlerini merak ederse a a daki komut sat rlar n kullanabilir: >> b(1,3) ans = 3 >> b(2,4) ans = 3 (enter) (enter)

E er kullan c b matrisi iinde -5den byk, -1den kk eleman (yada elemanlar n) adreslerini merak ederse a a daki komut sat r n kullanabilir: >> [satir,sutun]=find(b> -5 & b<-1) satir = 4 sutun = 2 (enter)

Elde edilen sonuca gre yukar daki art sa layan bir adet eleman bulunmaktad r ve bunun adresi ise 4. sat r 2. stundur. A a da verilen rnekte ise b matrisinin 2den byk elemanlar 6 say s na atanmaktad r: >>b(find(b>2))=6 b = 0 1 6 0 1 0 (enter) -1 6

41

U ur Arifo lu 0 2 0 -4

MATLAB7.0 Simulink ve mhendislik uygulamalar 0 2 1 0

A a daki rnekte ise bnin 1den byk ve 3ten kk elemanlar 8 yap lmaktad r: >> b(find(b>1 & b<3))=8 b = 0 1 3 -1 0 1 0 3 0 8 0 1 0 -4 8 0 Problem Kullan c , klavye yard m ile bir matris girecektir. Yaz lan MATLAB program ile bu matristeki pozitif say lar bir matrise, negatif say lar bir di er matrise ve kompleks say lar ise ba ka bir matrise atanacakt r. zm A=input('[....;....;...]seklinde bir matris giriniz=') k=find(imag(A)); %matristeki komplex say lar n yeri bulunuyor b=A(k); %komplex say lar n yeri b ye atan yor disp('simdi ekranda matrisin sadece negatif say lar gzksn') A1=(A<0).*A disp('simdi de ekranda sadece matrisin pozitif say lar gzksn') A2=(A>0).*A disp('simdi ise ekranda sadece komplex sayilari grelim') A3=zeros(size(A)); %A ile ayn boyutta s f rl k matris olu turuluyor A3(k)=b Yukar da verilen program n al t r lmas sonunda elde edilen Command Window ekran grnts a a da verilmi tir: [....;....;...]seklinde bir matris giriniz=[2 3 i;4 -6 9;-3i 6 9] A = 2.0000 3.0000 0 + 1.0000i 4.0000 -6.0000 9.0000 0 - 3.0000i 6.0000 9.0000 simdi A1 = 0 0 0 ekranda matrisin sadece negatif say lar 0 -6 0 0 0 0 gzksn gzksn (enter)

simdi de ekranda sadece matrisin pozitif say lar A2 = 2 3 0 4 0 9 0 6 9

simdi ise ekranda sadece komplex sayilari grelim A3 = 0 0 0 + 1.0000i 0 0 0 0 - 3.0000i 0 0 >> Problem..

42

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar rand komutu ile K adl 10*8 boyutunda bir matris retiniz. rand komutu ile retilen bu matrisin 0.2 den kk elemanlar n de erleri ve adresleri veren M adl bir matris olu turulacakt r. M matrisinin ilk stunu 0.2'den kk say n n K matrisinin hangi sat r nda bulundu unu, M matrisinin ikinci stunu 0.2'den kk say n n K matrisinin hangi stununda bulundu unu ve M matrisinim nc stunu ise 0.2'den kk say n n de erini verecektir. Bu i lem yapan MATLAB program n yaz n z. zm >> K=rand(10,8) [a b]=find(K<0.2) ; % a sat r numaras , b stun numaras ss=length(a); % a n n sat r say s for u=1:ss c(u,1)=K(a(u,1),b(u,1)); % a ve b adreslerindeki K eleman degerlerini % verir end M=[a b c] % arzu edilen sonu matrisi 8.10. break komutu For dngs iinde de i ken son de erine ula madan dngden kmak iin break komutu kullan labilir. A a da verilen dosyada, A matrisinin iindeki ilk 0 aranmakta, say yakaland nda bu say n n bulundu u sat r ve stun numaras saptan p i ie olan for dngleri durdurulmakta ve hesaplama 2. end komutunun alt ndan devam etmektedir. Program n en alt nda ise 0 say s n n bulundu u sat r ve stun numaralar yazd r lmaktad r. A=[1 5 6;7 -3 9;-4 0 8]; for t=1:size(A,1) %t; 1'den A'n n sat r say s na k adar art yor for g=1:size(A,2) %g; 1'den A'n n stun say s na kadar artiyor if A(t,g)==0 satir_numarasi=t; sutun_numarasi=g; break; end end end satir_numarasi sutun_numarasi Not: Yukar da verilen program n en ba na tic, en sonuna ise toc yaz l r ve program tekrar al t r l rsa elapsed_time=0.16 elde edilir. Bunun anlam ; tm i lemlerin 0.16 saniye iinde bitirildi idir. E er yukar da verilen programda break komutu kald r l r, program tekrar al t r l r ve zamana tekrar bak l rsa, 0.22 saniye elde edilir. Bylece break komutu ile program kesilerek kullan c ya zaman tasarrufu sa lanmaktad r. 8.11. continue komutu Yukar da bahsedildi i gibi bir dng sona erdirilmek istendi inde break komutu kullan lmaktad r. Bazen dngnn durdurulmas yerine yaln zca dngnn o an geerli olan de i keni bir atlat p dngye devam etmek istenebilir. A a da verilen programda B matrisinin tm elemanlar 2ye blnmekte fakat mutlak de eri 6dan byk olan A matrisi elemanlar na bu i lem uygulanmamakta, bu durum ile kar la ld nda continue komutu ile dngde o an geerli olan de i kenin ald de er atlanmakta ve dngye devam edilmektedir, son olarak A matrisinin son hali ekrana yazd r lmaktad r.. B=[2 5 11;7 -3 9;-4 0 8]; for t=1:size(B,1) for g=1:size(B,2)

43

U ur Arifo lu if abs(B(t,g))>6 continue end B(t,g)=B(t,g)/2; end end B

MATLAB7.0 Simulink ve mhendislik uygulamalar

Yukar daki program n uygulanmas sonunda elde edilen B matrisi de eri a a da verilmi tir: >> B = 1 2.5 11 7 -1.5 9 -2 0 8 >> A a da verilen MATLAB program nda A vektrnn s f ra e it veya s f rdan kk de erli elemanlar iin (10 taban na gre) logaritma i lemi yap lmamakta (bu arta uygun say lar A vektr iinde say lar aynen b rak lmakta), yaln zca An n pozitif de erli elemanlar iin A vektr elemanlar n n logaritmas al nmaktad r: A=[0 1 -5 2 8 -7]; for n=1:length(A) if A(n)<=0 continue end A(n)=log10(A(n)) end A % A vektorunun pozitif elemanlar n n % logaritmalar al nd nda elde e dilen yeni A vektoru Yukar da verilen program n al t r lmas sonunda elde edilen A vektr eleman de erleri a a da gsterilmi tir: >> A = 0 0 -5.0000 0.3010 0.9031 -7.0000 8.12. return komutu Ana programdan alt programa dallan p alt program iinde istenilen art gerekle ti inde alt programdaki dngden k p tekrar ana programda kal nd yerden devam edilmek isteniyor ise alt program iinde return komutu kullan lmal d r. A a da verilen rnekte Command Window ortam nda A matrisi tan t lmakta, bul.m adl bir alt program iine dallan lmaktad r. Alt program iinde A matrisinin (alt programdaki kar l B) ilk s f r olan eleman bulunmakta return komutu yard m ile derhal alt program sona erdirilip Command Window ortam nda ana program kald yerden devam etmektedir. Daha sonra ana programda ilk 0 eleman n n bulundu u A matrisinin sat r ve stun numaralar yazd r lmaktad r. >> A=[1 5 6;7 -3 9;-4 0 8]; >>[satir_no,sutun_no]=bul(A) A a da bul.m adl alt program verilmi tir: function [satir_no, sutun_no]=bul(B) for t=1:size(B,1) for g=1:size(B,2) if B(t,g)==0 satir_no=t; sutun_no=g; return; end (enter) (enter)

44

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar end end Yukar da verilen Command Window ortam ndaki iki program sat r n n al t r lmas ile a a daki sonular elde edilir. >> satir_no = 3 sutun_no = 2 8.13. error komutu Kullan c bazen program belli ko ullar gzeterek yazar. E er program iinde kulland de erler bu ko ullar sa lamaz ise program al abilir fakat sonular do ru olmayabilir. Kullan c ileride bu program al t rd nda bu ko ular unutabilece ini d nerek yazd program iine bir komut yerle tirerek hem program n durmas n hem de neden durmas gerekti ine dair mesaj n (hat rlatman n) ekrana yaz lmas n istedi inde (veya buna benzer amalar iin) error komutunu kullanabilir. rnek olarak kullan c A adl bir matris iine pozitif do ru ak m bilgileri girmekte ve yazd ortalama_bul.m adl alt program ile A vektr matrisinin ortalamas n hesaplamaktad r. Bilindi i gibi pozitif do ru ak m de eri asla pozitif de erden negatif de ere gemez. E er A vektr matrisi iinde herhangi bir eleman de eri negatif ise kullan c error komutu yard m ile hem program durdurabilir hem de durdurma sebebini ekrana yazd rabilir. Yine bilinmelidir ki iinde negatif say bar nd ran bir matrisin ortalamas ( mean komutu yard m ile) hesaplanabilmektedir. Di er bir ifade ile byle bir programda error komutu kullan lmad nda herhangi bir hata ile kar la lmaz. Bu program kesmek kullan c n n bir tercihidir. >> A=[1 5 6 7 -3 9 4 0 8]; >> ortalama=ortalama_bul(A) (enter) (enter)

A a da ortalama_bul.m adl alt program verilmi tir: function d=ortalama_bul(B) for t=1:size(B,1) for g=1:size(B,2) if B(t,g)<0 error ('matris elemanlar ndan hic biri negatif olamaz') end end end d=mean(B); Yukar da verilen iki program sat r n n uygulanmas sonunda elde edilen sonular a a da verilmi tir. Grld gibi program n al mas error komutu kullan larak durdurulmakta ve ortalama hesab yapt r lmamaktad r. >> ??? Error using ==> ortalama_bul matris elemanlar ndan hic biri negatif olamaz 8.14. warning komutu error komutunda kullan c n n istedi i mesaj ekrana yaz lmakta ve program durdurulmaktad r. warning komutunda ise kullan c n n istedi i mesaj ekrana (uyar olarak) yaz lmakta fakat program n al mas devam ettirilmektedir. Bu komutun uygulamas na rnek olarak yukar da verilen ortalama_bul.m adl alt programda error komutu yerine warning yaz l p uyar metni de i tirilebilir. A a daki alt program incelendi inde A vektrnn ortalamas al nmakta fakat uyar ifadesi ile de kullan c uyar lmaktad r: function d=ortalama_bul(B) for t=1:size(B,1) for g=1:size(B,2)

45

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar if B(t,g)< 0 warning (['matris elemanlar ndan hic biri negatif olamaz'... fakat yine de ortalama al nmaktad r]) end end end d=mean(B); A a da verilen sat rlar uyguland nda; (enter) (enter) fakat yine de

>> A=[1 5 6 7 -3 9 4 0 8]; >> ortalama=ortalama_bul(A)

Warning: matris elemanlar ndan hic biri negatif olamaz ortalama al nmaktad r ortalama = 4.11111111111111 elde edilir. 8.15. eval komutu

Bu komut MATLAB ortam nda e itli biimlerde kullan labilir. A a da verilen rnekler incelenmelidir: >>x=0:1:3; (enter) >>y=eval(2*x.^2+sin(2*x)) (enter) y = 0 2.90929742682568 7.24319750469207

17.72058450180107

Yukar daki sat rlarda x de erleri iki t rnak iinde verilen fonksiyonda yerine konularak elde edilen de erler y vektrne atanmaktad r. for n=1:3 eval(['A' num2str(2*n) ' = [n ;n -1 ;2*n]']) end Yukar da verilen program uyguland >> A2 = 1 0 2 A4 = 2 1 4 A6 = 3 2 6 A klama: num2str(x) komutu ile x say s MATLAB ortam nda karakter gibi de erlendirilir. Bu nedenle yukar da verilen program sat r nda (2*n) say s A adl karakterle birle tirilebilmektedir. eval komutunun bulundu u sat rda yer alan [n ;n-1 ;2*n] vektr matrisi n dngs ile de er de i tirmektedir. karakter='<='; nda a a daki sonular elde edilir:

46

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar A=[-1 4 6;11 -8 -6]; for n=1:2 for m=1:3 if eval([num2str((A(n,m))) karakter num2str(0)]) A(n,m)=abs(A(n,m)); end end end A Yukar da verilen programda ise A matrisinin elemanlar iinde 0a e it veya kk olan n mutlak de eri al nmakta ve son olarak yeni hali ile A matrisi ekrana yazd r lmaktad r. Program n uygulanmas sonunda elde edilen A de eri a a da gsterilmi tir; A = 1 4 6 11 8 6 >> Yukar da verilen programdaki eval komutunun bulundu u sat r; if eval([A(n,m) <= 0]) biiminde de yaz labilirdi. Bu durumda da A matrisi ayn de eri al rd . 8.16. feval komutu feval(fonksiyon ad ,degerler):degerler blmnde yer alan say n n ald de eri fonksiyon ad k sm nda yaz l olan fonksiyona koyarak hesaplatan bir MATLAB komutudur. k sm nda yer alan fonksiyon MATLAB arka plan nda tan ml (sin,cos,tan, gibi) ( enter)

fonksiyon ad fonksiyon ise;

>>b= feval(@sin,pi/3) b = 0.8660

program sat rlar nda grld gibi pi/3 a s (radyan olarak) sin(x) ifadesinde x yerine konularak sin(pi/3) de eri hesaplanmakta ve sonu b de erine atanmaktad r. feval komutunun alt program uygulamalar ile ilgili rnekler ise Blm 10da verilmi tir. Problem yle bir MATLAB program yaz n ki, hangi dereceden olursa olsun bir polinomun tm kklerini hesaplayabilsin. Yaz lan program iinde polinomun katsay lar vektr olarak verilmeyecek, ekran zerinden klavye ile girilecektir. Yaz lan program sat rlar aras nda a a daki sat rlar da bulunacakt r. Program kullan c n n belirledi i kadar denklemi ard arda zebilecektir. A a da yaz lacak programa ili kin ara sat rlar gsterilmi tir: .. disp(kac adet denklem koku bulmak istiyorsu nuz?) .. disp('polinomun en buyuk derecesini gir') . . disp('en buyuk dereceden baslayarak s ra ile katsayilari giriniz') .. disp('inci denklemin kokleri')

47

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar (Kullan c , diledi i kadar polinomun kklerini ard arda bulmak istemektedir. Yaz lacak MATLAB program nda kullan c n n kar s na nce "ka adet denklem bulmak istiyorsunuz?" sorusu kacakt r. Daha sonra s ra ile 'en byk polinom' derecesinden ba layarak polinomun katsay lar s ra ile klavye kullan larak girilecektir. Ekranda ka nc denklemin kkleri oldu unu belirten a klama da yer alacakt r. Bu i lem tm denklemler bitene kadar devam edecektir) zm >> disp(' ka adet denklem koku bulmak istiyorsunuz ?') aa=input(''); n=0; while n<aa n=n+1; disp('polinomun en byk derecesini gir') A=input(''); disp('en byk dereceden ba layarak s ra ile katsay lar c=size(A,1); for k=1:A+1 c(k)=input('') end disp('inci denklemin kkleri') roots(c) end 13.4. boyutlu ara de er hesab Bir veri grubunun farkl de i kenin fonksiyonu ve 3 boyutlu bir dizi olu turmas durumunda verinin baz de erlerine kar gelen de eri bulmak iin interp3 komutu kullan l r. Bu komutun genel kullan m ; >>v1=interp3 (x,y,z,v,x1,y1,z1) ( enter)

giriniz')

eklindedir. Bu komutun kullan l biimi interp2 ile ayn d r ve ayn zm yntemleri kullan l r. x, y ve z ayn eleman say s na sahip vektrler olmal d r. Ayn uzunlukta olmayan x, y ve z vektrlerinin bulunmas halinde meshgrid komutu kullan larak gerekli uygunla t rma i lem yap labilir. 13.5. n boyutlu ara de er hesab Bir veri grubunun n farkl de i kenin fonksiyonu ve n boyutlu bir dizi olu turmas durumunda, n adet verinin baz de erlerine kar gelen de eri bulmak iin interpn komutu kullan l r. Bu komutun genel kullan m ; >>v1=interpn (x,y,z,v,....,x1,y1,z1,....) eklindedir. 13.6. E ri uydurma i leminin Basic Fitting arayz yard m ile gerekle tirilmesi E ri uydurma i leminin Basic Fitting problemin zm zerinden anlat lacakt r. Problem 13.3 MATLAB ortam nda (arka planda) tan ml olan census adl data dosyas 1790 ile 1990 y llar aras nda ABDdeki ya populasyonunu iermektedir. Bu de i imi temsil edecek 4. dereceden polinomun katsay lar n bulunuz. zm Command Window ortam nda; arayz yard m ile nas l gerekle tirildi i a a da verilen ( enter)

48

U ur Arifo lu >> load census

MATLAB7.0 Simulink ve mhendislik uygulamalar (enter)

komutu uyguland nda Workspace ortam nda cdate ve pop adl iki vektr matris ortaya kacakt r ( ekil 13.9) . cdate; 1790 ile 1990 aras ndaki 10'ar y ll k art lar gsteren stun vektr, pop; 1790 ile 1990 y llar aras ndaki poplasyonu gsteren stun vektrdr.

ekil 13.9 ekil 13.10da >> plot(cdate,pop,'ko') (enter)

komutunun uygulanmas sonunda elde edilen pop=f(cdate) de i imi gsterilmi tir. A a da verilen komut sat r uyguland polinomun katsay lar elde edilecektir: nda bu iki vektr aras ndaki ili kiyi temsil eden 4. dereceden bir

>> p=polyfit(cdate,pop,4) (enter) Warning: Polynomial is badly condition ed. Remove repeated data points or try centering and scaling as described in HELP POLYFIT. > In polyfit at 81 p = Columns 1 through 3 4.7543e-008 -3.5557e-004 Columns 4 through 5 -1.2644e+003 6.0020e+005

1.0032e+000

ekil 13.10

ekil 13.11

49

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

Yukar da verilen uyar da (her ne kadar polinomun katsay lar elde edilmi olsa da) cdate ve pop adl iki vektr aras ndaki da l m n n pek uygun olmad , verilen data de erlerinin normalize edilerek e ri uydurma i leminin tekrar yap lmas nerilmektedir Normalizasyon i lemi iin nerilen yollardan bir tanesi de; cdate de erleri ile cdate de erlerinin ortalamas aras ndaki fark , cdate de erlerinin standart sapmas na blmektir. A a da bu i lemin yap ld MATLAB komut sat r gsterilmi tir: >>sdate=(cdate -mean(cdate))./std(cdate); (enter)

Yukar da verilen komut sat r n n uygulanmas sonunda elde edilen sdate adl vektr matrisi, cdate adl vektr matrisinin a klanan normalizasyon yakla m na maruz b rak ld nda elde edilen (normalle tirilmi ) de erleridir. cdate adl vektrn normalle trilmesi sonunda elde edilen sdate adl uyguland nda; >>p=polyfit(sdate,pop,4) (enter) p = 7.0471e-001 9.2102e -001 2.3471e+001 7.3860e+001 >> elde edilir. 4. dereceden bu polinom iin sdate vektrnn ald de erler; vektre polyfit komutu

6.2229e+001

>>pop4=polyval(p,sdate); komut sat r ile bulunabilir. Bylece normalizasyon i lemine maruz b rak lm cdate de erleri ile normalizasyon i lemi yap lmam cdate de erleri ayn eksen tak m zerinde a a daki komut sat r yard m ile izdirilirse ekil 13.11de grlen de i imler elde edilir. >>plot(cdate,pop4, , cdate,pop,o) 13.6.1. E ri uydurmada kullan lan arayzlerin tan t lmas Kullan c n n deney sonucu gzlemledi i data de erleri ile (e itli yakla mlar kullanarak) e ri uydurma yakla m sonucu hesaplad de erler aras ndaki ili kinin do rulu unu tespit etmek iin kullan lan yakla m ekillerinden bir tanesi rezid hesab d r. MATLAB ortam nda normalize edilmi data de erlerinin e itli e ri uydurma yakla mlar na uygulanmas sonunda elde edilen sonular rezid hesab yap larak kar la t r labilir. MATLAB ortam nda e ri uydurma amal kullan lan iki farkl arayz ortam bulunmaktad r. Bunlardan ilki Basic Fitting arayz di eri ise Curve Fitting Tool arayzdr 13.6.1.1. E ri uydurma i leminin Basic Fitting arayz yard m ile gerekle tirilmesi Yukar da verilen cdate ve pop adl iki vektr aras ndaki e ri uydurma i lemi, MATLAB ortam ndaki Basic Fitting arayz kullan larak da ok kolay bir ekilde yap labilir. Bunun iin a a daki i lemlerin s ra ile gerekle tirilmesi gerekir: 1. Verilen data de erleri plot komutu yard m ile izdirilmelidir: >> load census >> p=plot(cdate,pop) (enter) (enter)

Elde edilen ekil penceresinde Tools seene i iine girilerek Basic Fitting zerine t klan lmal d r ( ekil 13.12). Bu i lem yap ld nda ekil 13.13'de gsterilen pencere ile kar la l r.

50

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.12 2.

ekil 13.13

ekil 13.13de gsterilen Basic Fitting penceresinde, Select Data ifadesinin yan ndaki bo lukta, ekil 13.12de verilen e riye ili kin data de erlerinin data1 adl ortamda sakland anlat lmaktad r. Center and scale X data yaz s n n sol yan nda yer alan bo kutu zerine t klan ld nda data1 adl de i imin normalizasyon i lemi (arka planda) yap l r. Check to display fits on figure yaz s n n alt nda kalan pencere iinde e itli seenekler yer almaktad r. Bu pencere iinde kullan c ya iki farkl tip e ri uydurma seene i sunulmaktad r:Bu iki seenek; interpolasyon (ara de er bulma) ve polinom seimidir. Bu pencere iinde yer alan kutucuklardan ilki spline interpolant seene idir. Bu kutucuk i aretlendi inde MATLAB hesaplamalar spline komutu kullan larak gerekle tirilir. Bu kutucu un alt nda kalan kutucuk i aretlendi inde ise kutucuklardan ilki spline interpolant seene idir. Bu kutucuk i aretlendi inde MATLAB hesaplamalar pchip komutu kullan larak gerekle tirilir. Bu komut MATLAB arka plan nda Piecewise Cubic Hermite Interpolating Polynomial adl interpolasyon metodunu kullan r. Bu pencere iinde ba tan nc kutu ve alt nda yer alan di er kutular i aretlendi inde ise s ras ile birinci (linear), ikinci (quadratic), nc (cubic), , dereceden polinomlar yard m ile e ri uydurma i lemi gerekle tirilir. E er verilen data de erleri N adet lm ieriyor ise MATLAB ortam nda en fazla N. dereceden bir polinom uydurmaya msaade edilir.

3.

4. Show equation ifadesinin sol yan nda yer alan kutucuk i aretlendi inde ise e ri uydurma yakla m nda kullan lan polinomun denklemi ekran zerinde gzkr. Significant digits seene inin yan nda yer alan bo lukta ise bu polinomun katsay lar ndan ka adet nemli say n n gsterilece i belirlenir. 5. Plot residuals seene i i aretlendi inde bu ifadenin alt nda yer alan iki seenek nem kazan r. lk seenek (Bar plot yazan) rezid de i iminin ne ekilde izdirilece i (Bar plot, Scatter plot , Line plot) hakk nda kullan c n n tercihini sormaktad r. Bunun alt nda yer alan seenekte ise (Subplot yazan) izdirilecek rezid e risinin mevcut olan ekil penceresinin alt na m (Subplot) yoksa ba ms z bir pencere (Separate)olarak m izdirilece i konusunda kullan c ya seenek verir. Show norm of residuals seene i yan nda yer alan kutucuk t klan ld (hesaplamalarda hata ile orant l olan) rezid genli i hakk nda kullan c ya bilgi verilir. nda ise kullan c

6.

Yukar da yap lan a klamalara rnek olmas bak m ndan ekil 13.13de i aretlenen kutucuklar gsteren pencere ekil 13.14te verilmi tir. ekil 13.14de gsterilen seeneklerin i aretlenmesi sonunda elde edilen ekran grnts ise ekil 13.15te gsterilmi tir. >> plot(cdate,pop,ro)

51

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.14 ekil 13.14te

ekil 13.15

butonuna t klan l r ise ekil 13.16 da verilen ekran grnts ile kar la l r.

ekil 13.16 ekil 13.16da verilen pencerenin sa taraf nda yer alan Numerical results blmnde s ras ile; uydurulan polinom denklemi, polinomun (en yksek dereceden ba layarak s ralanan) katsay lar ve rezid normu (genli i) verilir. Bu blmm en alt nda yer alan Save to workspace seene i t klan ld nda ise kullan c n n kar s na ekil 13.17 de gsterilen pencere kar.

52

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.17 ekil 13.17 de verilen pencerede (fit ve normresid) adlar kullan c taraf ndan istenirse de i tirilebilir) OK seene i t klan ld nda, Workspace ortam nda bu adlar ile an lan bir yap ve bir de i ken olu turulur. fit adl yap iinde polinomun derecesi ve katsay lar n bildiren bilgiler, normresid adl de i ken iine ise rezid normu yaz l r. E er ekil 13.16da gsterilen pencere iinde sa en altta yer alan ekil 13.18 ile verilen ekran grnts elde edilir. butonuna t klan l r ise

ekil 13.18 ekil 13.18de verilen Find Y=f(X) pencerenin sa taraf nda yer alan Evaluate seene inin sol yan nda yer alan bo lu a, lm sonunda hakk nda bilgi sahibi olunmayan cdate de erleri girilir. Evaluate seene i t klan l r ise en stnde X ve f(X) ifadeleri bulunan bo alana cdate de erlerine kar gelen pop de erleri gelir (hesaplan r). Kullan c Evaluate seene inin sol taraf ndaki bo lu a (1800:5:1850 biiminde) vektr biiminde arad cdate de erlerini de girebilir. Kullan c , Evaluate seene inin sol taraf ndaki bo lu a lmde gz nne al nan en byk cdate (yani X) de erlerlerinden daha byk de erler girerek ekstrapolasyon da yapabilir. Ekstrapolasyon sonunda elde edilen yeni pop (yani f( )) de erleri en stnde X ve f(X) ifadeleri bulunan bo alana yaz l r. E er sa en altta yer alan Save to workspa ce seene i i aretlenir ise elde edilen sonular Workspace ortam nda kullan c n n belirleyece i bir isim alt nda ayr ayr kaydedilir. Bu seenek kullan ld nda kullan c n n kar s na kan ekran grnts ekil 13.19da verilmi tir. Kulan c isterse x1 ve fx1 adlar n de i tirebilir.

53

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.19 E er kullan c bu yeni de erleri e ri zerinde grmek isterse ekil 13.18'de yer alan Plot evaluate results seene ini i aretlemesi yeterlidir. Burada bir ekstrapolasyon rne i olmas iin Evaluate seene inin sol taraf ndaki bo lu a 2000:5:2500 yaz lm , Plot evaluate results seene i i aretlenmi ve elde edilen de i im ekil 13.20de gsterilmi tir. ekil 13.18'in ekstrapolasyon uygulamas sonunda ald grnt ise ekil 13.21'de gsterilmi tir.

ekil 13.20

ekil 13.21

Kullan c isterse ekil 13.18'de Plot Fits penceresi iinde yer alan e ri trlerinden birka tanesini ayn anda i aretleyebilir. Bu durumda ekil 13.20'de birden fazla e ri ve rezid de eri elde edilir. Kullan c isterse en uygun olan e riyi bunlar n iinden seebilir. 13.6.1.2. E ri uydurma i leminin Curve Fitting Tool arayz yard m ile gerekle tirilmesi MATLAB ara kutular iinde e ri uydurma i leminin yap lmas iin geli tirilen di er bir arayz (GUI) Curve Fitting Tool ortam d r. Bu ortam kullanarak; bir veya daha fazla data seti incelenebilir, grafik olarak en iyi e ri uydurma i lemi, ayn datay birden fazla e ri ile izdirip kar la t rma imkan , ara de er bulma-d de er bulma-trevsel ve integral e ri uydurma i lemleri yap labilir. E ri uydurma ara kutusunu al t rmak iin a a daki komut sat r n n uygulanmas yeterlidir: >>cftool ('enter')

Yukar daki komut sat r uyguland nda kullan c n n kar s na ekil 13.22'de verilen grnt kar. Bu ara kutusunun tan t lmas iin rnek olarak yine problem 13.3 zlecektir: Blm 13.6.1.1'de belirtildi i gibi; >>load census (enter)

komutu uyguland nda Workspace ortam nda ekil 13.9'da gsterildi i gibi cdate ve pop adlar nda iki adet vektr olu ur (cdate; x ekseni ve pop; y ekseni seilecektir). nce bu iki vektrn cftool ortam na ta nmas a klanacakt r.

54

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.22

ekil 13.23

13.6.1.2.1. Workspace ortam ndaki datan n e ri uydurma ara kutusuna ta nmas (importing) ekil 13.22'de Data..butonuna 't k'lan ld nda (veya File mens alt nda yer alan Import Data.. komutuna 't k'lan ld nda) ekil 13.23'de gsterilen pencere a l r. Bu pencere iinde X Date ifadesinin sa taraf ndaki ok i aretine 't k'lan ld nda Workspace ortam nda sakl olan byklkler ile kar la l r. Bunlar iinden x eksenine kar gelmesi d nlen vektr i aretlenir. Benzer eyler Y Date ifadesi iin geerlidir. Bu i lemler gerekle tirildi inde ekil 13.23'de Preview penceresinde, bu iki vektrn de i imi grlecektir. Bu gsterimde yaln zca x ve y de erlerinin i aretlendi i, her hangi ibr e ri izim i leminin yap lmad na dikkat edilmelidir. ekil 13.23'de Create data set komutuna 't k'lan ld nda cdate ve pop vektrleri Curve Fitting Tool ara kutusuna ta n r (importing). Bu i lem sonunda ekil 13.22'de verilen Curve Fitting Tool penceresi ekil 13.24'de gsterilen forma dn r. Art k e ri uydurma i lemine geilebilir. ekil 13.23'de Weights (a rl k sabitleri) ifadesinin sa taraf ndaki bo lu a (varsa) probleme ili kin a rl k katsay vektrnn ad yaz labilir. E er buraya bir ey yaz lmaz ise tm data de erleri iin 1 de eri (default) al n r. ekil 13.23'de Data set name ifadesinin sa taraf ndaki bo lu a x ve y eksenlerini olu turan vektrlerin adlar (kendili inden) yaz l r. Kullan c dilerse buraya ba ka adlar da yazabilir. E er x ve y eksenlerini olu turan data de erleri iinde Inf say s var ise ihmal edilir (gz nne al nmaz), complex say var ise reel k sm al n r. Bu iki durumda da ekranda bir pencere b elirir ve kullan c uyar l r. Verilen problemde MATLAB arka plan nda sakl olan iki adet vektr (cdate ve pop) kullan lm t r. Kullan c isterse bunlar n yerine Workspace ortam nda olu turaca iki adet (e it boyutta) vektr kullanarak da benzer i lemleri yapabilir. 13.6.1.2.2. E ri uydurma (Fitting) Daha nceki ad mlarda x ve y eksenine ili kin data de erleri cftool ortam na ta nd . ekil 13.24'de Fitting komutuna 't k'lan ld nda ekil 13.25'de gsterilen Fitting penceresi ile kar la l r. Bu pencerede New Fit komutuna 't k'lan ld nda ise ekil 13.26'da verilen grnt elde edilir (Fitting penceresi). Bu pencerede Fitname komutunun sa taraf nda bulunan bo lu a izdirilecek e rinin ismi yaz lmal d r (r:egri2). Daha sonra yer alan Polynomial alt penceresinde yer alan e ri trlerinden birisi seilerek (rne in; quadratic) Apply ya da Immediate apply komutlar na 't k'lan ld nda, Fitting penceresi ekil 13.27 ile verilen forma dn r. Bu i leme ili kin istatistiksel bilgiler ise ekil 13.27'de Results penceresinde yer al r.

55

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

Kullan c dikkat ederse Curve Fitting Tool penceresi iinde bir adet e ri grecektir. E er bu pencerenin alt nda e riye ili kin rezid de i imi de grlmek isteniyor ise ekil 13.24'de gsterilen Curve Fitting Tool penceresinde yer alan View mensnn iinde yer alan Residuals/Line Plot seene ine 't k'lan lmal d r. Bu i lem yap ld nda ekil 13.24 yerine ekil 13.28'de verilen pencere elde edilir.E er kullan c daha yksek mertebeden e ri uydurmak isterse ekranda; Equation is badly conditioned. Remove repeated data points or try centering and scaling. uyar s ile kar la abilir.Bu durumda ekil 13.27'de Center and scale X data ifadesinin sol taraf nda yer alan kutucuk i aretlenerek data de erleri normalize edilebilir.

ekil 13.24

ekil 13.25

ekil 13.26

ekil 13.27

56

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.28

ekil 13.29

Verilen problem iin ekil 13.27'de Center and scale X data i aretlendi inde, arka planda yap lan normalizasyon i lemi a a da verilmi tir: >>(cdate-mean(cdate))./std(cdate) 13.6.1.2.3. E ri uydurmada i leminde en iyi e rinin tespit edilmesi Kullan c , yukar da bahsedilen i lemleri diledi i kadar e ri tr zerinde deneyebilir. ekil 13.27'de Type of Fit seene inin sa taraf ndaki bo lukta yer alan ok 't k'lan ld nda kullan c n n kar s na bir ok e ri tr kar. Bu seenekler; Custom equations (kullan c taraf ndan belirlenecek e ri trleri), Exponential, Fourier, Gaussian, Interpolant, Polynomial(polinom), Power, Rational (oransal), Smoothing Spline , Sum of Sin functions, Weibull olarak s ralan r. Bu e ri tipleri a a da tan t lm t r: y Exponentials y ! ae bx
y ! ae bx  ce dx

y Fourier Series y ! a 0  a i cos(n x  b i sin( n x )


i !1 n

y Gaussian y ! ai
i !1 n 1 i !1 n x  bi 2 ) ( ci e

y Polynomials y ! p i x n 1 i y Power Series


y ! ax b

y ! a  bx c y Rationals
n 1 n 1 i pi x

y! x

i !1 m

 q i x m i
i !1

y Sum of Sines

57

U ur Arifo lu y ! a i sin( b i x  ci )
i !1 n

MATLAB7.0 Simulink ve mhendislik uygulamalar

y Weibull Distribution y ! abx b 1e  ax


b

y Custom Equations ekil 13.27'de Type of Fit ifadesinin sa taraf nda yer alan bo lukta ok i areti yard m ile Custom Equations ifadesine ula l r. Bu pencerede yer alan New equation.. komutuna 't k'lan ld nda ekil 13.29 ile verilen pencere a l r. Bu pencere iki adet seenek ierir. Bunlardan ilki, Linear Equations di eri ise General Equations seene idir. ekil 13.29, Linear Equations 'a ili kindir. Bu pencerede Add a term ifadesine 't k'layarak y denklemine yeni sins e itlikleri ilave edilebilir yada Remove Last Term komutu kullan larak y ifadesine en son ilave edilen terim silinebilir. ekil 13.29'da General Equations seene ine 't k'lan ld nda ekil 13.30 penceresi ile kar la l r. Bu penceede Equation ifadesinin sa taraf nda bulunan ikinci bo lu a kullan c , diledi i e itli i yazabilir. Bu pencerenin alt nda yer alan pencerede ise y e itli inde kullan lan katsay lara ili kin ba lang de eri, alt ve st s n r de erlerini girecek kk pencereler bulunur. Bu de erler girildi inde OK tu una bas larak e ri denklemi tamamlan r.

ekil 13.30

ekil 13.31

Bu tiplerden hangisi seilirse Type of Fit ifadesinin alt nda yer alan bo lukta, seilen e ri tipine ili kin e ri denklem (ya da denklemleri) belirir. Kullan c , e ri tipini yukar da bahsedildi i gibi setikten sonra ekil 13.27'de grlen Copy Fit komutuna 't k'lad nda a lan ( ekil 13.27'ye benzeyen) yeni pencerede Fit name ifadesinin sa taraf na yeni bir isim (r:egri3) yazmal ve Immediate apply (ya da Apply) komutunu uygulamal d r. Bu ekilde kullan c , diledi i kadar e ri denklemini seerek e ri uydurma i lemini gerekle tirebilir. ekil 13.31'e bak ld nda 7 adet e ri uyduruldu u grlecektir. ekil 13.32'de en altta yer alan Table of Fits penceresi iinden hangi e riye 't k'lan l rsa, ayn ekilde yer alan Results penceresinde bu e riye ili kin denklem, katsay ve istatistiksel de erler yer al r. Table of Fits penceresi yer alan e riler iinden (isabetli bir e ri uydurma i lemi yap lamad d nlerek) bir tanesi silinmek istenir ise ilgili sat r fare ile i aretlenerek Delete fit komutuna 't k'lan lmas gerekir. ekil 13.31'de Residuals penceresinde yer alan e riler iinde birbirlerine benzer olanlar d nda kalan e riler, kt bir e ri uydurma i leminin sonucunu gstermektedir. Bu nedenle di er e rilerden sapan ve uzakla an e riler ekil 13.32'de Delete fit komutu kullan larak uzakla t r lmal d r. ekil 13.31'de, bu zelli e sahip (kt uydurulmu 3 adet-egri1-egri4-egri5) e ri, ok ile i aretlenmi tir. Kt olan e rileri tespit etmek iin ekil 13.32'de Table of Fits penceresinde yer alan SSE(Sum of Squares due to Error) ve Adj R-square de erleri de kullan labilir. Adj R-square de eri 1'e yakla t ka e rinin iyi oldu u, 1'den uzakla t ka ise e rinin kt oldu u bilinmelidir. SSE de eri ise kldke e rinin iyi oldu u, bydke e rinin kt oldu u nda sylenebilir (istatistiksel katsay lara ili kin a klamalar ilerleyen sayfalarda verilecektir). Bu bilgiler ekil 13.32'de egri1, egri4 ve egri5'e ili kin SSE ve Adj R-square de erleri incelenmelidir (en iyi e rinin egri6 oldu u grlmelidir).

58

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar ekil 13.31'de grlen tm e riler bilgisayar ekran nda farkl renkte olduklar iin kullan c taraf ndan rahatl kla fark edilebilirler. Kitap siyah-beyaz bask olarak bas ld ndan bu ay r m kitap zerinde grmek zorla abilir. ekil 13.31'de, fare ile herhangi bir e rinin zerine gelinip sol tu a bas ld nda, bu noktaya ili kin x ve y de erlerini gsteren kk bir pencere a l r.

ekil 13.32

ekil 13.33

ekil 13.32'de SSE stununa fare ile 't k'lan ld nda bu stundaki de erler byklklerine ba l olarak s ralan rlar. Benzer eyler Adj R-square iin de sylenebilir. E ri6 de erlerinin stunun en stnde olmas en iyi e ri uydurman n bu e ri ile yap ld n da gstermektedir. ekil 13.34'de en iyi e rinin katsay lar gsterilmi tir.

ekil 13.34 13.6.1.2.4. Ekstrapolasyon

ekil 13.35

imdiye kadar, verilen datalar n alt ve st s n rlar aras nda kalan de erleri ieren bir e ri uydurma i lemi gerekle tirildi. Mevcut data de erlerini kullanarak bu data de erlerinin d nda kalan de erler iin de bilgi istenebilir. rne in; verilen problemde cdate de erleri; 1790 ile 1990 aras nda, pop de erleri ise 3.9 ile 248.7

59

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar aras nda de i mekteydi. E er kullan c mevcut 7 adet e riyi kullanarak 1790'dan kk ve/veya 1990'dan byk seneler iin pop de erlerini bulmak istese (extrapolasyon) cftool ortam nda ne yapmal d r? Yukar da bahsedilen soruyu cevaplamak iin ncelikle ekil 13.31'de Tools mensnde yer alan Axis Limit Control ifadesi 't k'lanmal d r. Bu i lem yap ld nda kullan c n n kar s na ekil 13.33'de verilen pencere kar. Bu pencere iki adet alt pencereden olu maktad r; Data and Fits ve Residuals. Bu pencerelerde yatay eksen iin X Lower Limit-X Upper Limit ve d ey eksenler iin Y Lower Limit ve Y Upper Limit butonlar bulunmaktad r. Bu butonlar n sa taraf nda bulunan a a ve yular ok i aretlerine 't k'lan larak limit de erleri azalt p art rmak mmkndr. rnek olarak de erleri 1800 ile 2050 aral nda seilirse ekil 13.34'de gsterilen pencere elde edilir. Bu de i im bir liste olarak grlmek istenir ise ekil 13.35'de Analysis.. butonuna 't k'lan lmal d r. Bu i lem yap ld nda kullan c n n kar s na ekil 13.36'da verilen pencere kar. En iyi e ri uydurman n egri6 ile yap ld bilindi i iin ekil 13.36'da Fit to analyze ifadesinin sa taraf ndaki bo lu a egri6 getirilmi , bu kutunun alt nda yer alan Analyze at Xi kutusu iine ise istenilen aral k ve art miktar yaz lmal d r. ekil 13.36'daki uygun kutucuklar i aretlenip Apply seene ine 't k'lan ld nda ekil 13.36'da sa tarafta yer alan (1800 ile 2050 aral ndaki ) cdate ve (bu aral a kar gelen)pop de erler listesi elde edilir.

ekil 13.36

ekil 13.37

ekil 13.36'da Save to workspace.. butonuna bas ld nda kullan c n n kar s na kk bir pencere kar. Bu pencere iindeki bo lu a bir isim yaz ld nda, Workspace ortam nda bu adla an lan bir yap dosyas iine ekstrapolasyon de erleri kaydedilir. 13.6.1.2.5. Table of fits seenekleri ekil 13.32'de Table of fits penceresinde uydurulan e riler hakk nda bilgi vermek zere yerle tirilmi iki adet istatistik tan m yer almaktad r: SSE ve Adj R-square. SSE de eri en az karesel hata hesab n yapan bir istatistiksel byklktr. Bu de er s f ra do ru yakla t ka, iyi bir e ri uydurma i leminin gerekle tirildi i d nlebilir. E ri uydurma i leminde di er bir kalite ls ise Adjusted R-square katsay s d r. Bu de erin, iyi bir e ri uydurma i leminde 1'e yakla mas istenir. Kullan c n n Table of fits seeneklerini de i tirmesi, di er bir ifade ile istatistiksel l me byklklerini belirlemesi de mmkndr. Bunun iin ekil 13.32'de yer alan Table options.. butonuna 't k'lanmal d r. Bu i lem yap ld nda ekil 13.37'da gsterilen pencere ile kar la l r. Bu pencerede yer alan kutucuklar i aretlendi inde, bunlar n sa taraf nda yer alan ifadeler, Table of fits iinde gzkr. ekil 13.34'de grlen Table of Fits ayarlar , ekil 13.37 yard m ile gerekle tirilmi tir. ekil 13.37'de grlen istatistiksel tan mlar a a da k saca tan t lm t r: -SSE (The sum of squares due to error)

60

U ur Arifo lu eleman n , SSE=


n

MATLAB7.0 Simulink ve mhendislik uygulamalar

y i de eri llen data vektrnn i. eleman n , y i e ri uydurma sonunda elde edilen data vektrnn i.
i

ise a rl k katsay lar n gstermek zere;


2


i !1

e itli i ile hesaplan r.SSE, 0'a yakla t ka e ri uydurma i leminin ba ar l oldu u sylenebilir. -R-square y vektr ile, y vektr aras ndaki korelasyonun karesine e it bir katsay d r. ki bykl n birbirine blmnden elde edilir (n; y (veya y ) vektr eleman say s ): SSR ! SST
i !1 n

R!

R de eri 0 ile 1 aras nda de i ir. R de eri 1'e yakla t ka e ri uydurma i leminin ba ar l oldu u sylenebilir. -Adj R-sq (Adjusted R-square) v (de eri byk olmas istenir) rezid serbestlik derecesi olmak zere, Adj R-sq a a daki ifade ile hesaplan r. SSE (n  1) Adj R-sq = 1  SST (v  1) Genellikle e ri uydurmada en iyi verimlilik gstergesidir. 1'e yak n olmas istenir. -RMSE (Root Mean Squared Error) Ortalama karesel hatan n (MSE)karekkdr.0'a yak n olmas istenir. RMSE= MSE =SSE/v 13.6.1.2.6. E ri uydurma sonular n n kaydedilmesi

 

yi  yi

wi(y i  y)
2

! 1

i !1

wi(y i  y)

SSE ; SST

SST=SSR+SSE

ekil 13.38

ekil 13.39

ekil 13.40

61

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.32'de Save to Workspace butonuna 't k'lan ld nda ekil 13.38'de verilen pencere a l r. Bu pencerede adet kk kutucuk yan nda adet ifade yer almaktad r. rne in en stte yer alan Save fit to MATLAB object named ifadesinin sol taraf nda yer alan kutucuk fare yard m ile 't k'lan ld nda, sa tarafta yer alan bo dikdrtgen kutu iinde yaz l olan fittedmodel1 adl cfit objesi, Workspace ortam nda olu acakt r. ekil 13.39'da Workspace ortam nda yklenen fittedmodel1 zerine ift adet 't k'lan ld nda en iyi e ri uydurma modeline ili kin polinom katsay lar , Array Editor ortam nda belirir. Benzer i lem goodness1 yap s iin yap l rsa, en iyi e riye ili kin istatistiksel de erler, Array Editor ortam nda, ekil 13.40'da gsterildi i gibi ortaya kar. Output1 yap s iinde ise kullan lan yakla m ile ilgili ilave a klamalar yer al r. Kullan c ekil 13.32'de grlen e ri trlerini ileride kullan lmak zere saklamak isteyebilir. Bunun iin nce (Curve Fitting Tool) ekil 13.35'de File mens iinde yer alan Save Session..komutu 't k'lan lmal d r. Bu i lem yap ld nda kullan c n n kar s na ekil 13.42'de verilen pencere kar. Kullan c taraf ndan bir dosya ad alt nda (r:egri_uydurma ) tm e riler, Kaydet butonuna 't k'lan larak kaydedilir. Bu tr dosyalar n uzant s cfit olur. E er MATLAB ortam ndan k l r (veya bilgisayar kapat l r) ve daha sonra tekrar bu e rilere ula lmak istenirse, ekil 13.35'de gsterilen Curve Fitting Tool penceresinde File mens alt nda yer alan Load Session ..komutuna 't k'lan l r. Bu i lem yap ld nda ekil 13.42'ye benzer bir pencere a l r. Burada egri_uydurma.cfit seilir ve A butonuna 't k'lan l r ise ekil 13.35'deki pencere a l r.

ekil 13.41

ekil 13.42

E er kullan c 7 adet e riden baz lar n silmek istiyor ise ekil 13.35'de Plotting..butonuna 't k'lamal d r. Bu i lem yap ld nda ekil 13.43'de gsterilen pencere kar. Bu pencerede silinmek istenen e rilerin isimlerinin sol taraf ndaki kutucuklar bo b rak l r ve pencerenin sol alt ndaki Clear..ifadesinin yan ndaki kutucuk i aretlenir, Close butonuna 't k'lan l r. Bu i lem sonunda ekil 13.35'de grlen egri1,egri2,egri3 ve egri4 e rileri ortadan kalkar.

ekil 13.43

ekil 13.44

Kullan c isterse yukar da bulunan 7 adet e riyi M dosyas (altprogram olarak) saklayabilir. Bu i lemi yapmak iin ekil 13.35'de verilen Curve Fitting Tool penceresinde File mens iinde yer alan Generate MFile ifadesine 't k'lan l r. Bu i lem sonunda ekil 13.42'ye benzer bir pencere a l r. Bu M dosyas na, uygun bir isim verilerek (r: egri_uygurma.m ), Kaydet butonuna 't k'lan l r.

62

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

E er kullan c , yukar da belirtildi i ekilde kaydedilen egri_uydurma.m adl altprogram , bir MATLAB dosyas olarak al t rmak isteyebilir. Bunun iin ekil 13.44'de bir k sm gsterilen egri_uygurma. m adl altprogram dosyas n n ilk sat r na bak lmal d r. ekil 13.44'de ilk sat r; function egr i_uydurma(cdate,pop) olarak verilmektedir. Bu sat rda function komutundan sonra gelen 'egri_uydurma(cdate,pop )' ifadesi, Command Window ortam nda a a daki; >>egri_uydurma(cdate,pop) ('enter') ekilde uygulan rsa, egri_uygurma.m adl altprogram al r ve sonuta ekil 13.35'de grlen e riler elde edilir. Yukar da verilen sat r n al abilmesi iin cdate ve pop vektrlerinin Workspace ortam nda tan ml olmas gerekir. 13.6.1.2.7. Data de erleri iindeki grltnn szlmesi (smooting)

E er verilen data de erleri grlt ieriyor ise kullan c n n bu de erleri ortadan kald rmak iin bir szme algoritmas na ihtiyac olacakt r. E ri uydurma i lemi parametrik bir i lem olmas na ra men szme, parametrik olmayan bir uydurma i lemidir. Szme i lemi, grlt ieren data de erlerini data vektr iinden uzakla t rma i lemi olarak da yorumlanabilir. Szme i leminde yayg n olarak kullan lan iki yakla m vard r: filtreleme ve regresyon. Her iki yakla m da bir aral a span (pencere) ihtiya duyar. Bu pencere i lem yap lan data de erleri ile beraber yer de i tirir. Span bydke e rideki przllk azal r fakat przl al nan datan n znrl azal r, span kldke tam ters sonular elde edilir. Optimal span de eri, data de erlerine ve kullan lan szme yntemine ba l d r. Deneyerek bulmak en yayg n yakla md r. Curve fitting toolbox (e ri uydurma ara kutusu) ba l ca a a da verilen szme yntemlerini kullan r. y Moving average filtering-alak geiren bir filtredir, kom u noktalar n ortalamas n al r. y Lowess ve loess-Lineer en kk kareler yntemi ile e ri uydurur,birinci dereceden polinom (lowess) veya ikinci dereceden polinom (loess) kullan r. y Savitzky-Golay filtering-ilk ynteme benzer, filtre katsay lar n n trevini al r ve e itli derecelerden polinomlar kullan r. Kullan c isterse dzle tirme iin cubic spline komutunu da kullanabilir. Dzle tirme i lemini iyi a klayabilmek iin MATLAB arka plan nda sakl bulunan bir ba ka data ifti kullan lacakt r. cftool ortam nda dzle tirme (smooting) i lemi iin kullan lan arayz ekil 13.45'de gsterilmi tir. Bu dataya ula mak iin; >>load enso ('enter')

komutu uygulanmal d r. Bu i lem yap ld nda Workspace ortam nda, month (ay) ve pressure (bas n) adl e it boyutta iki vektr olu ur. y eksenini olu turan pressure vektr; ayl k olarak Avusturalya'daki iki kritik blge aras ndaki atmosferik bas n ortalamas n ierir (bu bilgi kullan larak gney yar m kredeki rzgar bilgilerine ula l r). x eksen bilgileri ise aylar iindeki nispi zaman gs terir. Her bir vektr 168 say ierir. ekil 13.45'de Create data set butonuna 't k'lan ld nda ekil 13.46'da gsterilen Curve Fitting Tool penceresi a l r. ekil 14.46'da fare ile herhagi bir nokta zerine gelinip farenin sa tu una bas l r ve ortaya kan pencereden Line Style/Solid komutuna 't k'lan l r ise ekil 13.47'de gsterilen e ri de i imi elde edilir. ekil 13.45'de Smooth butonuna 't k'lan ld nda ortaya kan pencerede Create smoothed data set butonuna 't k'lan ld nda ekil 13.48'de verilen pencere elde edilir. Bu pencerede Method ifadesinin sa taraf ndaki bo luktaki ok i aretine 't k'lan ld nda kullan c n n kar s na;

63

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.45

ekil 13.46

ekil 13.47 y y y y y y

ekil 13.48

Moving Average Lowess(linear fit) Loess (quadratic fit) Savitzky-Golay Robust Lowess(linear fit) -s n r d ndakilere diren gsterir Robust Loess (quadratic fit) -s n r d ndakilere diren gsterir

metodlar kar. ekil 13.48'de Span ifadesinin sa taraf ndaki bo lu a; her bir dzle tirme hesaplamas nda kullan lacak nokta (data) say s yaz l r. E er metod olarak Savitzky-Golay seilirse Span alt ndaki bo lukta Degree ifadesi belirir. Buraya polinom derecesi yaz l r ve bu de erin Span de erinden az olmas istenir. Enso adl data dosyas na yukar da belirtilen tm metodlara gre ayr ayr dzle tirme i lemi uygulanabilir. Bunun iin ekil 13.48'den bir metod seilmeli ve daha sonra pencerede Create smoothed data set butonuna 't k'lan lmal d r. Ayn i lem di er metodlar ayr ayr seerek tekrarlan rsa ekil 13.49'da gsterilen pencere elde edilir. Bu pencere iinde yer alan smoothed data set penceresi iinde yer alan zm yakla mlar ndan herhangi birine (rne in:Moving Average ) fare ile 't k'lan l p daha sonra View butonuna 't k'lan l rsa ekil 13.50'de grlen View Data Set penceresi elde edilir (enso(smooth) ad alt nda). E er ekil 13.49'da Save to workspace butonuna 't k'lan ld nda bir pencere a l r. Bu pencere iindeki bo lu a

64

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar bir ad yaz l rsa ekil 13.50'de Index penceresinde grlen data de erleri bu ad alt nda workspace ortam nda bir yap dosyas nda saklan r.

ekil 13.49

ekil 13.50

ekil 13.46'da Plotting.. butonuna 't k'lan l r ise ekil 13.51'de grlen pencere a l r. Bu pencerede yer alan her ad n bir dzle tirme metoduna kar geldi i bilinmektedir. E er bunlar n iinden bir tanesi seilir ve kutu iine 't k'lan l r ise ekil 13.52'de verilen de i im elde edilir. E er kullan c n n ekran nda yaln zca noktalar var ise herhangi bir noktaya farenin sa tu u ile 't k'lan ld nda a lan kk pencerede Line Style/Solid komutuna 't k'lamal d r. Yap lan i lemin sonucunu grmek iin ekil 13.47 ile ekil 13.52 birbirleri ile kar la t r lmal d r.

ekil 13.51 13.6.1.2.8. Data iindeki baz de erlerin eliminasyonu

ekil 13.52

Yukar da verilen month veya pressure adl vektrlerin iinden baz de erlerin (uygun olmad klar iin) silinmesi gerekebilir. Silinecek data de erleri vektr iinde farkl yerlerde olabilecekleri gibi (rne in; 1.,8. ve 10. elemanlar gibi) birbirini takip eden (blgesel-rne in; 18. eleman ile 35. eleman aras ndaki tm say lar) s rada da olabilirler. cftool ortam nda her iki durum iin de eliminasyon yap labilir. Bu i lemlerin yap laca ara yze ula mak iin Curve Fitting Tool penceresinde ( ekil 13.47) Exclude.. butonuna bas lmal d r. Bu i lem yap ld nda kullan c n n kar s na ekil 13.53'de verilen pencere kar.

65

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.53

ekil 13.54

ekil 13.53'de Select data set ifadesinin sa taraf ndaki bo lukta yer alan ok i aretine 't k'lan larak enso adl (iinde iki vektr ieren) dosya i aretlenmelidir. Bylece eliminasyon i leminin bu dosya iinde yer alan vektrler iinde yap laca belirlenmi olmaktad r. E er daha nce bir ad alt nda eliminasyon i lemi gerekle tirilmi ise ( ekil 13.54) bunlar n isimleri Existing exlusion ru le penceresi iinde yer al r (elimine1 ve elimine2 gibi). E er yeni bir ad alt nda (r:elimine3) bir eliminasyon i lemi daha gerekle tirilmek isteniyor ise ekil 13.54'de gsterilen Exclusion rule name ifadesinin sa taraf ndaki bo lu a bu isim yaz lmal d r. E er enso iinde X de erlerinden baz lar (tek-tek) elimine edilecek ise Check to exclude enso alt penceresi iindeki sat rlar n sol ba ndaki kutucuklara fare yard m ile 't k'lan lmas gerekir. ekil 13.54'de X (veya Y) eksenindeki ilk de er, elimine3 ad alt nda enso dosyas ndan (di er bir ifade ile month ve pressure vektrlerinin ilk eleman bu vektrler iinden) uzakla t r lmaktad r. Bu i lemin uygulamaya sokulabilmesi iin son olarak Create exclusion rule butonuna 't k'lan lmas gerekir. Kullan c isterse elimine etti i elemanlar grafik ortam nda da grntleyebilir. rne in daha nce gerekle tirilmi olan eliminasyon3 adl dosya elemanlar n grafik ortamda grmek istersek ekil 13.54'de elimine2 adl dosya zerine 't k'land ktan sonra Exclude graphically butonuna 't k'lan lmal d r. Bu i lem yap ld nda kullan c n n kar s na ekil 13.55'de grlen pencere kar. Burada 'x' i areti ile gsterilen de erler presure vektrnden elimine edilen de erlerdir. 'o' i areti ile gsterilen de erler ise yeni presure vektrn olu turan de erlerdir.

ekil 13.55

ekil 13.56

ekil 13.55'de Exclude All butonuna 't k'lan ld nda buradaki tm de erler pressure vektrnden uzakla t r l rken, Include All butonuna bas ld nda ise elimine edilen tm de erler geri al n r. ekil 13.54'de Exclude Section penceresinde ise elimine edilecek blgeler belirlenir. rne in Y vektrnn 8'e e it ve bu de erden kk de erleri ile Y de erlerinin 10'a e it ve de erden byk oldu u blgeler, enso iinden uzakla t r lmak istensin. Bunun iin ilk ad m olarak ekil 13.56'da gsterildi i gibi bo luklar doldurulmal d r. Create exclusion rule butonuna 't k'lan ld nda bu blge elimine4 ad alt nda kaydedilir. E er Exclude graphically butonuna 't k'lan l rsa ekil 13.57'de gsterilen pencereye ula l r. Bu pencerede sol tarafta elimine edilen blgeler gri tonla, geri kalan (elimine edilmeyen) blgeler ise

66

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar a k tonla i aretlenmi tir. Sa tarafta yer alan tabloda ise gri sat rlar elimine edilen de erleri, a k renkli sat rlar ise elmine edilmeyen de erleri gsterir (bu tabloda tm de erler gzkmemektedir). ekil 13.56'da sa alt tarafta yer alan Copy, View, Rename ve Delete butonlar aktif de ildir. Bu butonlar n aktif olabilmesi iin Existing exlusion rule penceresi iinde yer alan adlardan bir tanesine 't k'lamak gerekir. Bu butonlar kullan larak bu pencere iinde yer alan dosyalar zerinde kopyalama, izdirme, isimlendirme ve silme i lemleri yap labilir. E er ekil 13.552de 'o' i aretlerinin zerine fare ile gelinip sol tu a bas l rsa bu i aret 'x' i aretine dn r (Excluded olur). E er farenin sol tu u tutularak i aretler seilir ise tu b rak ld nda seilen 'o' i aretleri 'x' i aretine dn r.

ekil 13.57 13.6.1.2.8.1. Blgesel eliminasyon rne i

ekil 13.58

Yukar da data eliminasyon i leminin iki trl; tek-tek ya da blgesel olabilece i belirtilmi ti. Bilindi i gibi tm parametrik e itliklerde, Curve Fitting Toolbox ba lang katsay lar n art ko maktad r. Baz tip datada (rne in; bir ok periyot ieren data) iyi bir ba lang de eri seilemez ise tatminkar bir sonu al namaz. Byle durumlarda blgesel eliminasyon, uygun bir ba lang de eri tespit edilme i leminde kullan c ya yard mc olabilir. Burada blgesel eliminasyona rnek olarak grlt ieren bir sins dalgas nda ba lang de er kestirimi yap lacakt r. A a daki MATLAB sat rlar nda gurultu_sin ad ile iinde grlt bar nd ran bir sinzoidal dalga retilmektedir. Bu dalgan n nemli parametresi (s ras ile); genlik=10, a sal frekans=16*pi ve faz fark =pi/4 olarak, param adl 3 elemandan olu an vektrde saklanmaktad r. Zaman ekseni olarak seilen t vektr ; 0 ila 1 saniye aras nda de i mektedir, art de eri olarak 0.005 sn al nmaktad r. Grlt i aretinin retilmesinde (her zamanki gibi) rand komutu kullan lmaktad r. >>rand('state',0) ('enter') >>t=[0:0.005:1.0]; ('enter') >>param=[10 16*pi pi/4]; ('enter') >>gurultu_sin =param(1)*(sin(param(2)*t+param(3)))+(rand(size(t)) -0.5); ('enter') Yukar daki sat rlar uyguland nda X ekseni olarak t vektr, Y ekseni olarak ise gurultu_sin de erleri kullan lacakt r. Daha nce de a kland gibi; cftool komutu uyguland nda a lan Curve fitting Tool penceresinde Data.. butonu yard m ile bu iki vektr X Data ve Y Data olarak atan rlar. Daha sonra Curve fitting Tool penceresinde Fitting.. butonuna 't k'lan ld nda a lan pencerede New Fit butonuna 't k'lan lmal d r. Bu i lem sonunda gerekli ayarlamalar yap ld nda ekil 13.58'de verilen grnt elde edilir. Bu pencerede Data set ifadesinin sa taraf ndaki bo lu a (retilen e ri sins formunda oldu u iin) sin1 yaz lm t r. Type of fit ifadesinin sa taraf nda ise Sum of Sin Functions seene i b rak lmal d r. Bu pencerede Fit options..tu una bas l rsa ekil 13.59'da verilen grnt, Apply yan ndaki kutucuk 't k'lan rsa ekil 13.60 elde edilir.

67

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.59

ekil 13.60

ekil 13.59'da StartPoint de erleri incelendi inde a1 (sins i aretinin genlik de eri hari ) di erlerinin param de erlerine yak n olmad grlecektir. imdi u soru sorulabilir: StartPoint de erleri, param de erlerine nas l yakla t r labilir?. Bu i lem 3 ad mda gerekle tirilebilir. Bu ad mlar s ra ile a a da gsterilmi tir: 1ekil 13.60'da Exclude.. butonuna 't k'lan lmal d r. Bu i lem yap ld nda ekil 13.61'de gsterilen pencere elde edilir. Bu pencerede Exclusion rule name ifadesinin sa taraf ndaki bo lu a (yaln zca 1 periyotluk data de erleri incelenece i iin) periyot1 yaz lm t r. Select data set ifadesinin sa taraf na ise oku kullanarak gurultu_sin vs t ifadesi getirilmelidir. ekil 13.61'de

ekil 13.61 ekil 13.62 Exclude graphically butonuna 't k'lan ld nda Select Points for Exclusion Rule penceresi a l r. Bu pencerede farenin sol tu u (bas l tutularak) yard m ile 1 periyotluk bir zaman (0.125 saniye) dilimi d nda kalan blge i aretlenir ve sol tu u b rak l rsa ekil 13.62'de verilen pencere elde edilir. Bu pencerede 'x' i aretli data de erleri, Y eksenini olu turan gurultu_sin adl vektrn d na kar lm t r. ekil 13.61'de Create exclusion rul e butonuna 't k'lan ld nda, ekil 13.62'de 'o ' i areti ile gsterilen data de erleri periyot1 adl dosya iine kaydedilmi olmaktad r. 2ekil 13.60'da Fitting.. butonuna 't k'lan ld nda a lan Fitting penceresinde Copy fit komutuna 't k'lan ld nda yeni bir Fitting penceresi ortaya kacakt r. Bu pencerede Fitname bo lu una sin2, Type of fit bo lu una Sum of Sin Functions yaz larak, Exclusion rule bo lu una ise ok yard m ile periyot1 ifadesi getirildi inde ekil 13.63 elde edilir. Bu pencerede Apply..butonuna

68

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar 't k'lan ld nda ise ekil 13.64'de verilen pencere elde edilir. ekil 13.64 incelendi inde genel olarak kabul edilebilir bir 'e ri uydurma yakla m 'na ula ld sylenebilir.

ekil 13.63

ekil 13.64

3- Son ad mda ise, 2. ad mda ula lan a1,a2 ve a3 katsay lar kullan larak ile 1. ad mdaki i lemler tekrar yap lacakt r (eliminasyon yok). Bunun iin ilk ad m olarak ekil 13.63'de Table of Fits iindeki sin1 ifadesi zerine fare ile 't k'lan lmal d r. Daha sonra Fit options..tu una 't k'lan lmal ve a lan pencere iindeki a1=10.444, a2=43.332 ve a3=3.646 katsay lar yerine 2. ad mdaki a1=9.948, a2=50.08 ve a3=0.7904 katsay lar yaz lmal d r ( ekil 13.65). Yeni ko ullarda ekil 13.63'de Fit options.. butonuna 't k'lan ld nda ekil 13.66'n n st penceresi elde edilir. Bu pencerede View/Residuals/Line plot seenekleri kullan ld nda ise ekil 13.66 elde edilir. Yeni ko ullarda Fitting penceresine ili kin yeni de erler ise ekil 13.67'de grlmektedir. ekil 13.58 ile ekil 13.67'deki istatistiksel de erler (SSE, R-square) de erleri kar la t r ld nda nemli bir iyile me sa land grlecektir. Yeni al ma durumunda, ekil 13.63'deki a1=9.948, a2=50.08 ve a3=0.7904 katsay lar n n, ekil 13.67'de; a1=9.996, a2=50.28 ve a3=0.7744 de erlerine dn t de gzden kamamal d r

ekil 13.65

ekil 13.66

69

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.67

ekil 13.68

A klama: Verilen bir data dosyas iinde yer alan vektrler iinde Inf veya NaN zellikli say lar var ise bu say lar vektrler iinden uzakla t rmak in a a daki komut sat rlar kullan labilir. rne in a adl bir vektr iinde hem Inf hem de NaN zellikli say lar olsun. Bu vektr iindeki Inf say lar tespit etmek iin isinf komutu, Nan say lar tespit etmek iin ise isnan komutu kullan l r. Bu say lar n bulundu u stun numaralar find komutu ile tespit edildikten sonra bu say lar bo kmeye atan rlar. A a daki komut sat rlar incelenmelidir. >>a=[-1 3i -56 inf 0 pi NaN 34]; >>indis1=find(isinf(a)); >>a(indis1)=[ ]; >>indis2=find(isnan(a)); >>a(indis2)=[ ]; >>a -1. 0 + 3.i -56. 0 3.1416 34. 13.6.1.2.8.2. Fit Options penceresi Fit Options penceresi, e ri uydurmada i lemindeki yntem ve parametrelerin tespit edilmesinde kullan l r. ekil 13.68'de grlen Fit Options penceresi iinde kullan lan seenekler, ekil 13.67'de Type of fit iinde yer alan fonksiyon ve seeneklere ba l olarak de i ir. rne in, Type of fit iinde yer alan Interpolant ve Smooting spline seeneklerinde, Fit Options seenekleri ortadan kalkar. ekil 13.68'de grlen Fit Options penceresi, Type of fit olarak Exponantial seene ine gre olu turulmu tur. Bu pencerede grlen terimler a a da a klanm t r: y Method E ri uydurmada kullan lan yntemdir. Type of fit iinde seilen e ri modeline gre, method otomatik olarak belirlenir. rne in lineer modeller iin LinearLeastSquares metod, nonlineer sistemler iin Noml inearLeastSquares metod kullan l r. y Robust ('enter') ('enter') ('enter') ('enter') ('enter')

70

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar Robust least squares e ri uydurma metodunun tercih edilip edilmeyece ine karar vermek iin kullan l r. Bu seenek iinde 4 alt seenek yer al r. - Off Bu seenek default (kendili inden ayarl ) d r. Bu seenek i aretli oldu unda Robust fitting i lemi yap lmaz. -On Robust method (bisquare weights) kullan l r. -LAR Least Absolute Residuals ile minimizasyon i lemi yap larak e ri uydurulur. -Bisquare Minimizasyon i lemi, summed square of the residuals (bisquare weighting) yntemi ile yap l r. o u durumda robust, e ri uydurmada en iyi seenektir. y Algorithm E ri uydurmada kullan lacak algoritma seeneklerini sunar. 3 adet algoritma ierir: -Trust-Region -Levenberg -Marquardt -Gauss-Newton ekil 13.68'de yer alan DiffMinChange ve DiffMaxChange seenekleri, sonlu fark parametrelerini ierir. DiffMinChange ; sonlu fark Jacobianlar iin katsay lardaki minimum de i im miktar (default de eri 10^-8 dir), DiffMaxChange ise sonlu fark Jacobianlar iin katsay lardaki maksimum de i im miktar d r (default de eri 0.1 dir). ekil 13.68'de yer alan MaxfunEvals , MaxIter,TolFun ve TolX seenekleri ise e ri uydurmada kullan lan yak nsama kriterlerini ierir. MaxfunEvals; maksimum say da model fonksiyon say s d r. Default de eri 600 dr. MaxIter; e ri uydurmada kullan lacak maksimum iterasyon say s d r. Default de eri 400 dr. TolFun (default de eri:10^-6) ve TolX (default de eri:10^-6) ise s ras ile fonksiyon ve katsay lar iin bitirme tolerans d r. ekil 13.68'de yer alan (en alt pencere) seenekler katsay parametrelerine ili kindir. Unknowns; uydurulan e riye ili kin katsay lard r. StartPoint; katsay ba lang de erleridir. Default de erleri seilen modele ba l d r.Lower; uydurulan e ri katsay lar n n alt s n r d r, Gaussians iin 0'dan kk olamaz. Upper; uydurulan e ri katsay lar n n st s n r d r. 13.6.1.2.8.3. Prediction Bounds ve Confidence Level

ekil 13.69

ekil 13.70

E ri uydurmada bulunan denklem katsay lar (coefficients ) belirli aral k ile birlikte verilir. rne in ekil 13.67'de a1 (=9.996) katsay s n n 9.941(min) ile 10.05(max) aras nda oldu u grlmektedir. Ayn pencerede confidence bounds de eri olarak %95 seildi i grlmektedir. Kullan c isterse confidence bounds de erini ekil 13.69'da gsterildi i gibi Curve Fitting Tool penceresini

71

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar kullanarak da seebilir. ekil 13.70'de ise confidence bounds de eri olarak %50 seilmi tir. Her iki ekilde de noktal izgiler, uydurulan e rinin alt ve st s n rlar n gstermektedir. Her iki ekilde de grld gibi confidence bounds de eri azald ka noktal izgiler as l e riye (dz izgili) yakla maktad r. confidence bounds de eri bydke a1'in alt ve st s n r de erleri aras ndaki fark artacakt r. confidence bounds de erinin ne anlama geldi ini a klamak iin yle bir rnek verilebilir: Mevcut x ve y ekseni data de erlerini kullanarak bir e ri uydurulmu olsun. Daha sonra (rne in) x=5 yeni bir x de erine kar gelen y de eri sorulsun. Bu i lemi yapabilmek iin daha nce elde edilen (uydurulan) e ri denkleminden faydalan laca a ikard r. E er e ri denklemini elde etmeden nce confidence bounds de eri olarak (rne in) %95 seilmi ise, x=5 de erine kar gelen y de eri, %95 olas l kla ekil 13.69'da gsterilen iki kesik e ri aras ndaki blge iinde kalacakt r. E er %50 seilirse x=5 de erine kar gelen y de eri %50 olas l kla ekil 13.70'de gsterilen iki kesik e ri aras ndaki blge iinde kalacakt r. Grld gibi confidence bounds de eri bydke (y de erinin iinde kalaca ) bant aral geni lemektedir (aranan y de eri daha geni s n rlar aras nda aranmaya ba lanmaktad r). Her iki ekilde de View mens iindeki prediction bounds seene inin i aretli oldu u unutulmamal d r. E er bu seenek i aretlenmez ise her iki ekilde yer alan kesik izgiler ortadan kalkar. ekil 13.67'de Results penceresine bakarak, stteki kesik izgili e rinin; y=9.941*x^2+50.26*x+0.7633, alttaki kesik izgili e rinin ise y=10.05*x^2+50.3*x+0.7855 denklemi ile gsterildi i sylenebilir. Dz izgiye (as l e ri) ili kin denklem ise y=9.996*x^2+50.28*x+0.7744 e itli i ile verilmi tir. 13.6.1.2.8.4. Residual hakk nda Residual (rezid) vektr, lm sonucu bulunan y vektr ile e ri uydurma sonunda elde edilen y vektr aras ndaki farka e ittir. Residual de i imini izmek iin Curve Fitting Tool penceresinde yer alan View/Residual mensne girilmelidir. Rezid de i im e risi iki ekilde olabilir. 1-rne in, data de erleri (lm de erleri) ekil 13.71'de gsterildi i gibi de i iyor ise, bu de erlere ili kin rezid e risi ekil 13.72'de gsterildi i formda olacakt r (bu tip e riler iyi bir e ri uydurma yap ld na i aret eder). Burada grld gibi rezid e risinin de i imi, y=0 e risinin etraf nda dola maktad r.

ekil 13.71

ekil 13.72 2-rne in, data de erleri (lm de erleri) ekil 13.73'de gsterildi i gibi de i iyor ise, bu de erlere ili kin rezid e risi ekil 13.74'de gsterildi i formda olacakt r (bu tip e riler kt bir e ri uydurma yap ld na i aret eder). Burada grld gibi rezid e risi ( ekil 13.72'nin aksine), y=0 e risinin etraf nda

72

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar dola mamaktad r. Byle bir rezid e risi ile kar la ld nda yap lacak ey; e ri modelinin, Fitting penceresindeki Type of Fit alt penceresi iinde yer alan di er e ri modellerinden birisi ile de i tirilmesidir.

ekil 13.73

ekil 13.74 13.6.1.2.8.5. Parametrik olmayan e ri uydurma imdiye kadar parametrik e ri uydurma yakla mlar tan t ld . Bazen kullan c lm sonucu elde edilen data de erleri ile uydurulan e ri aras ndaki uyumun ok daha dzgn olmas n arzu edebilir. Byle bir durumda cftool ortam kullan c ya Interpolant ve Smooting Spline seeneklerini sunar. Bu iki seenek Fitting penceresindeki Type of Fit alt penceresi iinde yer al r. Bu iki seenek kullan ld nda ekil 13.75'de grld gibi, e ri denklemi (katsay lar ) olmaz (Fitting penceresinin Result alt penceresinde uydurulan e riye ili kin yaln z, istatistiksel katsay de erleri bulunur). Kullan c bu iki modeli kull anarak e riye ula t nda, e ri zerine fare ile gelip sol tu a basarsa, a lan kk pencere iinde bu noktan n x ve y de erlerini grr ( ekil 13.76). Smooting Spline modelinde dzgn bir e ri uydurmak iin Smooting parameter (p) seene i kullan l r (rne in, ekil 13.75'de p=0.99 al nm t r). Interpolant seene i alt nda kullan c ya 4 farkl alt model sunulur: linear, nearest neighbor , cubic spline ve shape-preserving.

73

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 13.75

ekil 13.76

14.1.4. boyutlu integrasyon A a da verilen boyutlu integral; q=


z max y max x max

f (x , y, z )dxdydz

(14.8)

z min y min x min

MATLAB ortam nda (Simpson veya Lobatto yntemleri ile boyutlu integral alma i lemi iin) triplequad komutu ile hesaplan r. q=triplequad(fonksiyon,xmin,xmax,ymin,ymax,zmax,zmin) : fonksiyon yerine gelecek e ri denklemi de i kenli olan q=f(x,y,z) eklinde olmal d r. D integralin alt s n r zmin, st s n r zmax, ortadaki integralin alt s n r ; ymin, st s n r ise ymax al nmal d r. D taki integralin alt s n r xmin, st s n r xmax olmal d r. dblquad komutunu kullanmak iin ncelikle f(x,y,z) e risi tan mlanmal d r. >> q=triplequad('x.^2+y.^2+z.^2',0,5, -3,2,-1,4) q = 1875 Kullan c isterse yukar daki komut sat r iinde yer alan iki t rnak iindeki yere bir alt program ismi yazabilir. Daha sonra bu alt program dosyas iine integre edilecek fonksiyonu yazarak da ayn i lemi yapabilir. Problem 14.8 ekil 14.20de verilen taral alan gsteren OKB alan n hesaplayan ve her iki e riyi ayn eksen zerine izdiren MATLAB program n yaz n z. (Not: Hibir hesaplama el ile yap lmayacak, hepsi MATLAB ortam nda gerekle tirilecektir)

74

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

y y2 ! x2 B x y 1 ! 0.5x  1

1 A

-2

0 ekil 14.20

zm a=roots([1 -0.5 -1]) % y1 ve y2 e rilerinin kesi ti i noktalar aran yor b=a(2) % B noktas n n apsis de eri OKBb_yamugu= quad('0.5*x+1,0,b) ObB_alti=quad('x.^2',0,b) % yarim parabol un altindaki alan alan=OKBb_yamugu - ObB_alti % aran lan alan hesab x=-2:0.1:2; y=0.5*x+1; hold on % iki egri ayni eksen uzerine cizdiriliyor plot(x,y) y1=x.^2; plot(x,y1) Yukar da verilen program n al t r lmas sonunda elde edilen de erler a a da gsterilmi tir. Program sonunda elde edilen her iki e ri ise ekil 14.21de gsterilmi tir.

>>a = -0.7808 1.2808 b = 1.2808 OKBb_yamugu = 1.6909 ObB_alti = 0.7003 alan = 0.9905 >>

75

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 14.21 Problem 14.9

ekil 14.22'de verilen taral alan gsteren ABO alan n hesaplayan MATLAB program n yaz n z. (Not: Hibir hesaplama el ile yap lmayacak, hepsi MATLAB ortam nda gerekle tirilecektir) y
y2 ! x2

B A -2 b

1 K
0 ekil 14.22 x

y1 ! 0.5x  1

zm >>a=roots([1 -0.5 -1]) %y1 ve y2 e rilerinin kesi ti i noktalar aran yor >>b=a(1) % B noktas n n apsis de eri b= -0.78077640640442 >>BbO_alani=quad('0 .5*x+1-x.^2',b,0) >>AKO_alani=quad('0 .5*x+1',-2,0) % genin alan >>alan=AKO_alani - BbO_alani % aran lan alan hesab alan= 0.53029000000000 >>x=-5:0.1:5; >>y=0.5*x+1; >>hold on >>plot(x,y) >>y1=x.^2; >>plot(x,y1) Problem 14.10

76

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

y2 ! x2

1 A

B x

y1 ! 0.5x  1

-2

0 ekil 14.23

ekil 14.23'de verilen taral alan gsteren OKB alan n hesaplayan MATLAB program n yaz n z. (Not: Hibir hesaplama el ile yap lmayacak, hepsi MATLAB ortam nda gerekle tirilecektir) zm >> a=roots([1 -0.5 -1])% y1 ve y2 e rilerinin kesi ti i noktalar aran yor >> b=a(2) % B noktas n n apsis de eri >> OKBb_yamugu= quad('0.5*x+1,0,b) >> ObB_alti= quad('x.^2',0,b) % yarim parabolun altindaki alan >> alan=OKBb_yamugu - ObB_alti % aran lan alan hesab >> x=-2:0.1:2; >> y=0.5*x+1; >> hold on % iki egri ayni eksen uzerine cizdiriliyor >> plot(x,y) >> y1=x.^2; >>plot(x,y1) 15.6. Yksek mertebeden diferansiyel denklemlerin zm n. mertebeden bir diferansiyel denklem, (de i ken dn m yap larak) n adet birinci mertebeden diferansiyel denklem sistemine dn trlebilir. Bu yakla m MATLAB ortam nda ok kullan l r. n. mertebeden bir diferansiyel denklem; cn d n y( t ) dt n  c n -1 d n -1 y (t ) dt n -1  c n-2 d n - 2 y( t ) dt n -2  ......  c o y( t ) ! f ( t ) (15.15)

veya c n y ( n ) ( t)  c n -1 y (n -1) ( t )  c n -2 y ( n -2) ( t )  ......  c o y(t ) ! f (t ) olarak verilsin. (15.16) e itli i tekrar dzenlenirse;
c c c 1 f ( t) y ( n ) ( t ) ! ( n -1 y (n -1) ( t )  n - 2 y ( n -2) ( t )  ......  o y( t ))  cn cn cn cn

(15.16)

y ( n ) ( t ) ! a n -1 y ( n -1) (t )  a n -2 y ( n -2) ( t )  ......  a o y (t )  k * f (t ) elde edilir. De i ken dn m yap larak; x 1 ( t ) ! y( t )

(15.17)

77

U ur Arifo lu x 2 (t ) ! y (1) ( t ) . .
x n ( t ) ! y ( n -1) ( t )

MATLAB7.0 Simulink ve mhendislik uygulamalar

(15.18)

elde edilebilir. (15.18)de verilen e itliklerin her iki taraf tye gre tretilirse;
x n ( t ) ! y ( n ) ( t ) ! a n 1 y ( n -1) ( t )  a n 2 y ( n -2) ( t )  ......  a o y( t )  k * f ( t )


x 'n -1 ( t) ! y ( n -1) ( t ) . .
' x 1 ( t ) ! y ' (t )

(15.19)

x 1 ( t ) ! y( t ) elde edilir.Bylece (15.15)de verilen n. mertebeden bir adet diferansiyel denklem (15.19)da grld gibi birinci mertebeden n adet diferansiyel denkleme dn m tr. Problem 15.9
y ! y (1 - y 2 ) - y
 

a)

Yukar da verilen 2.mertebeden diferansiyel denklemi, birinci mertebeden 2 adet diferansiyel denkleme y( t ) ). dn trnz ( y


b) Elde edilen iki adet birinci mertebeden diferansiyel denklemi [0 20] aral nda, y (0) ! 0 ve y(0)=0.25 ilk ko ullar alt nda MATLAB ortam nda znz ve gerekli e rileri izdiriniz. zm a) x 1 ! y( t ) ; x2 ! y'

de i ken dn mleri yap l r ve elde edilen e itlikler her iki taraftan tye gre tretilirse;
' x1 ! y ' ;

x '2 ! y '' yerlerine

' elde edilir. x 1 ! y ' e itli i, x 1 ! y( t ) e itli i ve x 2 ! y ' e itli i y '' ! y ' (1 - y 2 ) y ifadesinde konulursa; 2 x '2 ! x 2 (1 - x 1 ) - x 1

(1)

' elde edilir. x 1 ! y ' ve x 2 ! y ' e itlikleri birlikte kullan l rsa; ' x1 ! x 2

(2)

bulunur. Bylece y '' ! y ' (1 - y 2 ) - y e itli i, iki adet birinci mertebeden diferansiyel denkleme dn m olmaktad r. b) ncelikle yukar da verilen (1) ve (2) numaral birinci mertebeden iki adet diferansiyel denklem bir alt program iine sokulmal d r. Bu amala kullan lacak function program n n ismi gcoz3.m olsun ve MATLAB editr ortam nda yaz ls n:

78

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 15.10 function turev = gcoz3(t,x) turev = [x(2);x(2) .*(1-x(1).^2)-x(1)]; % turev=[dx(1);dx(2)] Alt program a ran ana MATLAB program ise a a da verilmi , elde edilen e riler ise ekil 15.10da gsterilmi tir: [t ys]=ode23( 'gcoz3',0,20,[0.25 0]); subplot(211), plot(t,ys( :,1)); title ('y nin zamanla degisimi '),xlabel( 't'), grid; subplot(212), plot(t,ys( :,2)); title ('ynin birinci trevinin zamanla degisimi'), xlabel('t'), grid Problem 15.10 y '''  70 y ''  300 y '  1000 y ! 0 diferansiyel denklemini [0 5] aral nda y '' (0) ! y ' ( 0) ! 0 , y(0)=0.05 ilk ko ullar alt nda de i ken dn mn kullanarak MATLAB ortam nda say sal zmn bulunuz ve izdiriniz. zm
x 3 ! y '' x 3 (0) ! y '' ( 0) ! 0 ,

x2 ! y' x1 ! y

x 2 (0 ) ! y ' (0 ) ! 0 , x 1 (0) ! y(0) ! 0 .05

durum de i kenleri yard m ile; x '3 ! y '''


x '2 ! y ''
' x1 ! y '

x '3 ! -70x 3 - 300x 2 - 1000x 1


x '2 ! x 3
' x1 ! x 2

elde edilir. ncelikle yukar da verilen birinci mertebeden adet diferansiyel denklem bir alt program iine yaz lmal d r. Bu amala kullan lacak function program n n ismi gcoz4.m olsun ve MATLAB editr ortam nda yaz ls n:

79

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 15.11 function dx = gcoz4(t,x) dx=[x(2);x(3); -70*x(3)-300*x(2)-1000*x(1)] ; Yukar da verilen alt program a ran ana MATLAB program 15.11de gsterilmi tir: % dx=[dx(1);dx( 2);dx(3)] a a da verilmi , elde edilen e riler ise ekil

[t ys]=ode23( 'gcoz4',0,5,[0.05 0 0]); subplot(311), plot(t,ys( :,1)); title ('y nin zamanla degisimi' ),grid;subplot(312), plot(t,ys( :,2)); title ('y nin birinci turevinin zamanla degisimi'), grid ; subplot(313), plot(t,ys( :,3)); title ('y nin ikinci turevinin zamanla de i imi '), xlabel( 't'), grid 15.8. Do rusal diferansiyel denklemlerin do rusal benzetim fonksiyonlar ile zm Control system toolbox n yap s iinde yer alan lsim, impulse, step, initial gibi MATLAB komutlar kullan larak do rusal diferansiyel denklemlerin zm yap labilmektedir. Bu komutlar n kullan labilmesi iin verilen diferansiyel denklemin durum denklemi yada transfer fonksiyonu biiminde yaz lmas yeterlidir. Kontrol mhendisli i problemlerinin MATLAB ile zm ba l alt nda yukar da bahsedilen MATLAB komutlar daha teferruatl olarak anlat lacakt r. Burada yaln zca lsim komutu hakk nda bilgi verilecektir. E er diferansiyel denklem tak m (alt indisler matris boyutlar n gstermektedir): d (15.20) x ( t ) n*1 ! a n*n x ( t) n *1  b n*m u ( t ) m*1 dt y (t ) k*1 ! c k *n x (t ) n*1  d k*m u (t ) m*1 (15.21)

ekline getirilebilmi ise lsim komutunu kullanarak x(t)-durum de i ken de erlerini- ve y(t)- k de erlerinibulmak mmkndr. [y x] = lsim (a,b,c,d,u,t, x0)

Yukar da verilen MATLAB komutu iinde yer alan ve (15.20) ve (15.21) e itliklerinde kullan lan de i kenler a a da tan t lm t r. Yukar da verilen matris boyutlar na ili ki tan mlar a a da verilmi tir: n : durum de i kenlerinin say s m : giri de i kenlerinin say s k : k de i kenlerinin say s Yukar da verilen matrislerin tan mlar ise a a da verilmi tir:

80

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

y : k de erleri vektr x : durum de i keni vektr a : durum de i keni katsay lar matrisi b : giri fonksiyonu katsay lar matrisi c : durum de i keni katsay lar matrisi d : giri fonksiyonu katsay lar matrisi u : giri fonksiyonu vektr. r: u=cos(t). Bu matrisin sat r say s t zaman vektr eleman say s kadar olmal d r. Bu amala length komutu da kullan labilir. Bir adetten fazla giri i areti alan sistemlerde giri say s u matrisinin stun say s na, length ise u matrisinin sat r say s na e it olmal d r. t sresi 0 : t: t son formunda belirlenmelidir. rne in u(t) matrisi 1*1 boyutunda bir adet giri fonksiyonunu ieriyor ise her t an iin b*u(t) i lemi ayr ayr gerekle tirilir. x0 : durum de i kenlerinin ba lang de erlerini belirleyen stn vektrdr. Boyutu durum de i kenleri say s na e ittir. E er bu vektr elemanlar verilmemi ise MATLAB, x0 vektrn s f r olarak al r. E er x0 vektr belirtilmeksizin; [y x] =lsim (a,b,c,d,u,t)

komutu kullan l r ise lsim komutu y(t) de i imini izdirir. E er x durum de i kenlerinin de eri ara t r lm yor ise yukar daki komut ; y =lsim(a,b,c,d,u,t) eklinde de kullan labilir.

Problem 15.14
y '''  70 y ''  300 y '  1000 y ! 0

diferansiyel denklemini [0 5] aral nda y '' (0) ! y ' (0) ! 0 , y(0)=0.05 ilk ko ullar alt nda de i ken dn m ve lsim komutunu kullanarak MATLAB ortam nda say sal zmn bulunuz ve y(t) e risini iziniz. zm Problem 15.10da, yukar da verilen diferansiyel denklemin de i ken dn m yap lm mertebeden diferansiyel denklemler elde edilmi ti: x '3 ! -70x 3 - 300 x 2 - 1000x 1
x '2 = x 3
' x1 = x 2

ve a a da verilen 1.

y ! x1

x 1 (0) ! 0.05 ; x 2 (0) ! 0 , x 3 (0) ! 0 (ilk ko ullar) Yukar da verilen durum denklemleri matris formunda yaz l rsa; 1 0 x1 x1 0 d x2 ! 0 0 1 x 2 ; dt x 3 - 1000 - 300 - 70 x 3 x1 y ! ? 0 0A x 2 ; 1 x 3 x (0) ! ? .05 0 0A 0

bulunur. Yukar daki matris e itli inden elde edilen a,b,c,d matrisleri a a da gsterilmi tir:

81

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar 1 0 0 0 1 a! 0 0 1 ; b ! 0 ; c ! ? 0 0A; d=[ ] - 1000 - 300 - 70 0 Elde edilen durum denklemlerinin MATLAB-editr ortam nda lsim komutu ile zmn yapan sat rlar a a da verilmi tir: a=[0 1 0 ;0 0 1;-1000 -300 -70];b=[0; 0; 0]; c=[1 0 0] ;d = 0; x0 = [0.05 0 0]; t = 0:0.1:10; u = zeros(length(t),1) ; y = lsim(a,b,c,d,u,t,x0) ; plot(t,y(:,1)) ; % plot(t,y(t) de yaz labilirdi title('lsim komutu ile dif.denklem cozumu '), xlabel('t'), ylabel('y(t)'), grid; E er ynin her t an iin ald de erler merak edilirse, yukar daki program n en son sat r na y yazmak yeterlidir. Program n al t r lmas sonunda elde edilen izim ekil 15.13de gsterilmi tir.

ekil 15.13 Problem 15.15 Seri R,L,C devresi v( t ) ! 2 220 sin 2 t volt olan bir alternatif gerilim kayna Devreden akan i(t) ak m n n de i imini iziniz. i ' (0) ! 0 , i(0)=0 al n z. (R=1 ohm, L=1 henry , C=1 farad, f=5*10-3 hz) zm Seri R,L,C devresine Kirchhoff gerilim yasas uygulan r ise;
v( t ) ! 2 220 sin( 2 5 *10 -3 t ) ! L 1 di ( t ) i ( t )dt  Ri ( t )  C dt


taraf ndan beslenmektedir.

elde edilir. E itli i integralden kurtarmak iin her iki taraf n tye gre trevi al n r ise; 2 220 * 2 * * 5 *10 -3 * cos 2 5 *10 -3 t ! d 2 i( t) dt
2

di (t )  i( t ) dt

elde edilir. Yukar daki e itlik daha basit olarak ifade edilirse; 9.77 cos 2 5 *10 -3 t ! i ''  i '  i

82

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar elde edilir. kinci mertebeden diferansiyel denklem de i ken dn m yard m ile birinci mertebeden iki diferansiyel denkleme dn trlebilir:
i' ! x 2 ;

i ! x 1 ( k fonksiyonu); al n rsa;
' i '' ! x '2 ; i ' ! x 1 ; i ! x 1

elde edilir. Yukar da verilen diferansiyel denklem, bylece iki adet birinci mertebeden diferansiyel denkleme dn trlm olmaktad r:
x '2 !  x 2 - x 1  9.77 cos 2 5 *10 -3 t
' x1 ! x 2

Bulunan denklemler durum denklemleri ve transfer fonksiyonu cinsinden yaz l rsa; d x 1 0 1 x1 0 -3 !  cos 2 5 *10 t dt x 2 - 1 - 1 x 2 9.77 x y ! ? 0A 1 ; x 0 ! ?x 1 (0) x 2 (0)A! ? 1 0 x 2 0A % cos 2 5 *10 -3 t ; giri fonksiyonu (u(t))

elde edilir. Elde edilen bu matris denklemlerinin zld MATLAB program a a da verilmi tir. Program sonunda elde edilen ak m-zaman de i imi ise ekil 15.14de gsterilmi tir. a=[0 1;-1 -1]; b=[0 ; 9.77]; c=[1 0]; d=0; x0= [0 0] ; % akim degisimi 0 :150 saniye arasinda incelenmektedir t = 0:0.1:150; u = cos(2*pi*5*0 .001*t); x0 = [0 0] ; y = lsim(a, b, c, d, u, t, x0) ; plot(t,y); title('lsim komutu ile RLC devresi akimi cozumu '); xlabel('t');ylabel('i(t)');grid;

ekil 15.14 ekil 15.14' de grld gibi i(t) ak m geici bir de i imi takiben srekli sinzoidal duruma gemektedir.

83

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

15.9. Paral fonksiyon durumunda diferansiyel denklemin zm Baz durumlarda diferansiyel denklem sisteminin iinde yer alan u(t) fonksiyonu paral olabilir. Bu durumda u(t) fonksiyonu uygun aral klarda tan mlanarak diferansiyel denklemin zm yap lmal d r. A a daki problem incelenmelidir: Problem 15.16 y ' ' ( t ) + 3y ' (t ) + 2 y( t ) = u (t ) ; y ' (0) ! 0 , y(0)=0 0 , u (t ) ! 1, , 0 t 0

0 e t e1 t "1

Yukar da verilen diferansiyel denklemin zmn sa layan y(t) de i imini izen MATLAB program n yaz n z.

zm Verilen diferansiyel denklemde de i ken dn m yap l rsa; y(t)= x 1 ;


' y ' ( t) ! x 1 ( t ) ! x 2 (t ) ;

y '' ( t ) ! x '2 ( t ) ;

elde edilir. Bu e itlikler verilen diferansiyel denklemde yerine konulursa;


x '2 ( t )  3x 2 ( t )  2x 1 ( t ) ! u ( t )
' x 1 ( t ) ! x 2 (t )

iki adet birinci dereceden diferansiyel denklem elde edilir. ki adet diferansiyel denklem kullan larak sisteme ili kin durum denklemi; d dt x 1 0 1 x 1 0 !  u( t) ; x 2 - 2 - 3 x 2 1 x1 cikis(t)=[1 0] +0*u(t) x 2 % x1=y(t) k de i kenidir

olarak elde edilir. Yukar da verilen durum denklemlerini lsim komutu yard m ile zen ve y(t)= x 1 ( t ) de i imini izdiren MATLAB program a a da verilmi tir: a = [0 1; -2 -3];b = [0; 1];c = [1 0];d = 0; x0 = [0 0]; % ilk kosullar t = 0:0.01:10; % daha hassas cizim icin delta t =0.01 yapiliyor u=ones(1,length(t)); % t ile u(t) nin boyutu esit yap iliyor %parcali u(t) tanitiliyor for h=1:length(t); if t(h)<0; u(1,h) = 0;[1,length(t)]; end if 0<=t(h) & t(h)<=1; u(1,h)=1; end if t(h)>1, u(1,h)=0; end end %parcali u(t) tanitimi sona erdi [cikis x] = lsim(a,b,c,d,u,t,x0);

84

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar % x=[x1 x2] oldugu hatirlanmalidir x1=x(:,1); % x1(t)= y(t) oldugu hatirlanmalidir. x2=x(:,2); % x2(t)= y(t)nin trevi oldugu hatirlanmalidir % Aranan ozum x1(t) degisimidir. plot(t,x1) ; title('lsim komutu ile dif.denklem cozumu'); xlabel('t'); ylabel('y(t)'); grid; Yukar da verilen MATLAB program n n al t r lmas durumunda elde edilen y(t)= x 1 (t) de i imi ekil 15.15de gsterilmi tir.

ekil 15.15 Problem 15.19


3y ''' - 2 y ''  y ! h ( t ) y '' (0) ! 0 ; y ' (0) ! -1 ; y (0) ! 1 ; y=y(t); y ' ! dy / dt

h(t) 10 5 0 0.5 1 t (sn)

ekil 15.18 Yukar da verilen diferansiyel denklemi sa layan y(t) de erlerini bulan ve y(t) de i imini izdiren MATLAB program n yaz n z. h(t) de i imi ekil 15.18de gsterilmi tir. (Not: zmde lsim komutu kullan lacakt r) zm Verilen diferansiyel denklemde de i ken dn m uygulan rsa; 3y ''' - 2 y ''  y ! h ( t )
y '' (0) = -1 ; y ' (0) ! 1 ; y=y(t); y ' ! dy / dt

85

U ur Arifo lu 2 1 1 x '3 ! y ''' ! x 3 - x 1  h ( t ) 3 3 3 x '2 ! y '' ! x 3


' x1 ! y ' ! x 2

MATLAB7.0 Simulink ve mhendislik uygulamalar

x1 ! y elde edilir. Yukar da verilen 1. dereceden diferansiyel denklemler lsim komutunda kullan labilecek formda yaz l rsa; 1 0 x1 x1 0 0 d 1 x2 ! 0 0 1 x 2  0 h ( t ) dt 3 1 / 3 x 3 - 1 / 3 0 2 / 3 x 3 x1 1 y ! ? 0 0A x 2  0 * h ( t ) ; x(0)= ? -1 0A 1 x 3 elde edilir. Yukar daki ifadeleri gzeterek yaz lan MATLAB program a a da verilmi tir; a=[0 1 0; 0 0 1; -1/3 0 2/3];b=[0 ; 0; 1/3];c=[1 0 0];d=0 ; x0=[1 -1 0]; t=0:0.01:1; % parcali h(t) tanitiliyor uzun=length (t); for s=1:uzun if t(s)>=0 & t(s)<=0.5 h(1,s)= 10; else h(1,s)= 5; end end y=lsim(a,b,c,d,h,t,x0) plot(t,y); title(lsim komutu ile diferansiyel denklem czm); Yukar da verilen MATLAB program n n al t r lmas sonunda elde edilen izim ekil 15.19da gsterilmi tir.

h(t) 1

t 1 ekil 15.19 Problem 15.20 x '  3x  y ! h ( t ) 2

ekil 15.20

86

U ur Arifo lu y ' - 3x  w ! -2h (t )


'

MATLAB7.0 Simulink ve mhendislik uygulamalar

 3y - 2 ! 0

diferansiyel denklem sistemini x(0)=0, y(0)=-1, (0)=2 ilk ko ullar alt nda t p [0: 2] aral nda hassasiyetle zen ve x(t), y(t) ve (t) de i imini alt alta izdiren MATLAB program yaz n z. h(t) de i imi ekil 15.20de verilmi tir. zm
x ! x (1) y ! x ( 2) z ! x (3)
' x 1 ! -3x (1) - x (2)  h ( t)

x '2 ! 3x (1) - x (3) - 2h ( t ) x '3 ! -3x (2)  2

Yukar da verilen e itlikler a a daki program sat rlar ile zlebilir:


[t w]=ode23('gcozturev',[0 2], [0 -1 2]');

subplot(3,1,1), plot(t,w( :,1)), title('x(t) cizimi') subplot(3,1,2), plot(t,w( :,2)), title('y(t) cizimi') subplot(3,1,3), plot(t,w( :,3)), title('z(t) cizimi') % ode komutu geregi olarak % % % w(:,1)) vektoru w(:,2)) vektoru w(:,3)) vektoru x=x(1) vektorune esittir y=x(2) vektorune esittir z=x(3) vektorune esittir

A a da ise yukar daki ana programda kullan lan altprogram sat rlar verilmi tir:
function turev=gcozturev(t,x) % t vektorunu ode komutu icinden okur for a=1:length(t); if t(a)<=1; h(a)=1; ifadesi else % 0 ile 1 aras nda gecerli olan h(t)

% ode komutunda bu gsterim tercih edilir

87

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

h(a)=-t(a)+2; ifadesi end

% %

1 ile 2 aras nda gecerli h(t) (y=-x+2 denklemi)

turev = [-3*x(1)-2*x(2)+h(a); 3*x(1)-x(3)-2*h(a); -3*x(2)+2]; end


Yukar da verilen MATLAB program sat rlar n n uygulanmas ile elde edilen x(t),y(t),z(t) de i imleri ekil 15.21de gsterilmi tir.

ekil 15.21 Problem 15.21 Do ru gerilim kayna ndan beslenen seri R,L,C devresinde kaynak gerilimi; E=2 Volt, R=40 ohm, L=0.1 Henry, C ! 10 -7 Farad olarak verilmektedir. Kapasitenin t=0 an nda ular aras ndaki gerilim de eri v c (0) ! 0 Volt, devre ak m i(0)=0 Amper oldu una gre v c ( t ) ve i(t) de i imlerini t=[0;0.03] sn aral zm Seri R,L,C devresine Kirchoff gerilim yasas uygulan rsa; di (t ) E ! R * i( t)  L  v c ( t) dt elde edilir. Kapasitenin tan m ba nt s ; dv ( t ) i(t ) ! C c dt oldu una gre yukar da verilen iki adet diferansiyel denklem a a daki formda yaz labilir; 1 / C v c 0 u( t )  / i / v 1 v c = y ! cikis ! ? 0A c  0 * u ( t ) i x vektr iin; v x ! c i yaz labilir. Yukar da verilen diferansiyel denklemler a a daki program sat rlar ile zlp izdirile bilir:
   

nda izdiriniz.

d v c 0 ! dt i - 1 /

88

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

E=2;R=40;L=0.1;C=10^ -7; a = [0 1/C ; -1/L -R/L];b = [0; E/L], c = [1 0] d = 0; x0 = [0 0];t = 0:0.0001:0.01; u = ones(1,length(t)) [cikis x] = lsim(a,b,c,d,u,t,x0) figure(1) plot(t,x(:,1)),xlabel('t'), ylabel('Vc(t)'), grid; title('seri R L C devresinde kapasita uclari arasindaki... gerilim degisimi'); figure(2) plot(t,x(:,2)),xlabel(t), ylabel(i(t)), grid title(seri R L C devresinde akim degisimi), disp([' t vc i']); disp([t',x]) ; Yukar da verilen program n al t r lmas sonunda elde edilen gerilim ve ak m de erleri ekil 15.22 ve ekil 15.23de gsterilmi tir.

ekil 15.22 Problem 15.22 a) y ' ' ' ! 3y'4 y  10 cos 3t ;

ekil 15.23

dy( t ) ! y' olarak ifade edilmi tir] dt dt diferansiyel denklemini x 1 ( t) ! y( t ) kabul alt nda 3 adet 1. dereceden diferansiyel denkleme dn trerek [
3

d 3 y( t )

! y' ' ' ,

ode23 yard m ile znz ve y (t ) ve y ' ' ( t ) de i imlerini subplot komutu yard m ile izdiriniz. izimde stte y(t) olacak altta ise y' ' ( t ) izdirilecektir. t aral [0 ;2] olacakt r. y ' ' (0) ! 0 , y ' (0) ! 0 , y(0)=1 al n z. b) y ''' ! 3y '  4 y  h (t ) ; diferansiyel denklemini x 1 ( t) ! y( t ) kabul alt nda lsim komutu yard m ile zerek y( t ) ve y ' ' ( t ) de i imlerini subplot komutu yard m ile izdiriniz. h(t) de i imi ekil 15.24'de verilmi tir.izimde stte y(t) olacak altta ise 2. dereceden trevin ( y' ' ( t ) ) t'ye gre trevi izdirilecektir. t aral [0;2]olacakt r. y ' ' (0) ! 0 , y ' (0) ! 0 , y(0)=1 h(t)

0 ekil 15.24

t (sn)

89

U ur Arifo lu zm a) x 1 ( t) ! y( t ) ; x 2 (t ) ! y ' (t ) ; x 3 ( t ) ! y '' ( t)


x '3 ( t ) ! 3x 2 ( t )  4 x 1 ( t )  10 cos 3t

MATLAB7.0 Simulink ve mhendislik uygulamalar

x '2 (t ) ! x 3 (t )
' x 1 (t ) ! x 2 ( t)

ana program % ys;sat rlar t olan,sutunlar ise s ras ile y(t),y'(t),y''(t) % olan bir matristir. [t, ys]=ode23('yazalt12',[ 0 2],[1 0 0]); % x1( 0)=1,x2(0)=0,x3(0)=0 subplot(211), plot(t,ys(:,1)); title ('y nin zamanla degisimi'), grid; subplot(212), plot(t,ys(:,3)); title ('y nin ikin ci turevinin zamanla degisimi'), grid; alt program function dx=yazalt12(t,x) dx=[x(2);x(3); -4*x(1)+3*x(2) -10*cos(3*t)];

ekil 15.25 Yukar da verilen program n al t r lmas sonunda elde edilen e riler ekil 15.25'de gsterilmi tir. x 1 ( t ) 0 1 0 x 1 ( t ) 0 d x 2 ( t ) ! 0 0 1 x 2 ( t )  0 h ( t ) dt x 3 ( t )  4 3 0 x 3 ( t )  1 a=[0 1 0;0 0 1; -4 3 0]; b=[0;0;- 1]; c=[0 0 0]; d=0; x0=[1 0 0]; % ilk kosullar t=0:0.01:2; % daha hassas cizim icin delta t =0.01 yapiliyor u=ones(1,length(t)); % t ile u(t) nin boyutu esit yapiliyor % asagida parcali u(t) tanitiliyor for h=1:length(t); if t(h)<0; u(1,h) = 0; end

b)

90

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar if 0<=t(h) & t(h)<=1; u(1,h)=t(h); end if 1<t(h) & t(h)<=2; u(1,h)= -t(h)+2; end end %parcali u(t) tanitimi sona erdi [cikis x] = lsim(a,b,c,d,u,t,x0); % x=[x1 x2] oldugu hatirlanmalidir x1=x(:,1); % x1(t)= y(t) oldugu hatirlanmalidir. x2=x(:,2); % x2(t)= y(t)nin birinci trevi oldugu hatirlanmalidir x3=x(:,3); % x 3(t)= y(t)nin ikinci trevi oldugu hatirlanmalidir % Aranan ozum x1(t) ve x2(t) degisimidir. subplot(211),plot(t,x1); title('y(t) degisimi');xlabel('t');ylabel('y(t)');grid; subplot(212),plot(t,x3); title('y(t)nin ikinci tu revinin degisimi'); xlabel('t');ylabel('y''(t)');grid;

ekil 15.26 Yukar da verilen program n al t r lmas sonunda elde edilen e riler ekil 15.26'da gsterilmi tir. Problem 15.23 a) ekil 15.27'de verilen devrede A anahtar t=0 an nda kapat ld de i imlerini t'ye ba l olarak bulunuz na gre MATLAB kullanarak tm ak m

A klama: 2 adet KGY, 1 adet KAY e itli i kullan n z i1 ( t ! 0) ! 0, i 2 (t ! 0) ! 0, i 3 ( t ! 0) ! 0 al n z. Elde edilen e itliklerden baz lar trev iermiyor ise bu e itliklerin her iki taraf n n bir kez t'ye gre trevini al n z). (L1=2H,L2=3H) L1

A
i1 (t ) E=10 volt

i 3 (t)

i 2 (t)

R1 ! 4

L2

R2 ! 5

91

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar ekil 15.27

b) i1 ( t ), i 2 ( t ), i 3 ( t) ak mlar n alt alta subplot komutunu kullanarak t;[0 0.1] saniye aras nda izdiriniz. zm
! "

a) E= 1
"

di ( t ) di 1 ( t ) (1) KGY  2 2  i 2 ( t ) * 1 ! 10 dt dt di (t ) (2) KGY i 2 (t) * 1  2 2 ! i 3 (t) * 2 dt i1 ( t )  i 2 (t )  i 3 ( t ) ! 0 (her iki taraf n trevini alarak dif.denklem retelim)
! " !

(3)

KAY

di1 (t ) di 2 (t ) di 3 ( t )   !0 dt dt dt i1 ( t ) ! x ; i 2 ( t ) ! y ; i 3 ( t ) ! z al narak (de i ken dn m) >>S=dsolve('2*Dx+3*Dy+4*y=10','4*y+2*Dy -5*z=0','Dx -Dy-Dz=0','y(0)=0', .. 'x(0)=0','z(0)=0') ('enter') S = x: [1x1 sym] y: [1x1 sym] % sembolik gsterim z: [1x1 sym] >> S.x ('enter') % x=i1(t) adl yap n n iine girmek iin ans = 16*(-3*exp(1/8*( -33+769^(1/2))*t)*( -165/3076*769^(1/2) -5/4)-exp(1/8*(33+769^(1/2))*t)*( -165/3076*769^(1/2) -5/4)*769^(1/2) -3*exp(1/8*(33+769^( 1/2))*t)*(165/3076*769^(1/2) -5/4)+exp(1/8*(33+769^(1/2))*t)*(165/3076*769^(1/2) -5/4)*769^(1/2) -90)/(33+769^(1/2))/(33+769^(1/2)) >> S.y ('enter') % y=i2(t) adl yap n n iine girmek iin ans = exp(1/8*(-33+769^(1/2))*t)*( -165/3076*7 69^(1/2)-5/4)+exp(1/8*(33+769^(1/2))*t)*(165/3076*769^(1/2) -5/4)+5/2 >> S.z ('enter') % z=i3(t) adl yap n n iine girmek iin ans = -17/20*exp(1/8*( -33+769^(1/2))*t)*( -165/3076*769^(1/2) -5/4)-17/20*exp( 1/8*(33+769^(1/2))*t)*(165/3076* 769^(1/2)-5/4)+2+1/20*exp(1/8*( 33+769^(1/2))*t)*( -165/3076*769^(1/2) -5/4)*769^(1/2) -1/20*exp( 1/8*(33+769^(1/2))*t)*(165/3076*769^(1/2) -5/4)*769^(1/2) b) subplot(311),ezplot(S.x,[0,0.1]),grid ,title('i1(t)') subplot(312),ezplot( S.y,[0,0.1]),grid ,title('i2(t)') subplot(313),ezplot( S.z,[0,0.1]),grid ,title('i3(t)')

92

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 15.28 Yukar da verilen program n al t r lmas sonunda elde edilen e riler ekil 15.28'de gsterilmi tir. 16.1. Harf karakterlerinin dizili i

MATLAB say sal temeller zerine oturan bir program olmas na ra men (zellikle izimler zerine yaz lan text tr yaz lar vb. amalar iin) ihtiya duyuldu u zaman kullan lmak zere harf tr karakter dizilerine dnk bir alt yap ya da sahiptir.

MATLAB ortam nda her harf karakteri bir say ya kar MATLAB ortam nda i gal etti i boyutlar gsterilmi tir:

gelir. A a da verilen harflerden olu an bir dizinin

>> text = Bu bir karakter dizisidir (enter) text = Bu bir karakter dizisidir >> size(text) ans = 1 26 >> whos (enter) Name Size Bytes Class ans 1x2 16 d ouble array text 1x25 50 char array Grand total is 27 elements using 66 bytes 16.2. ASCII kodlar ASCII kodu kullan ld nda, her karakter iin disk alan nda iki byte (bayt) hacime ihtiya duyulur. Adan Zye kadar olan byk harfler iin kullan lan ASCII kodlar 65den 90a kadar yer al r. E er adan zye kk harfler kullan lacak ise bu dizili 97den 122ye kadar devam eder. rne in 63 say s Dye, 75 say s Kya

93

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar kar gelirken, 101 say s eye, 118 ise vye kar gelir. abs komutu (burada) karakter dizisine kar gelen ASCII komutlar n gsterir. A a daki rnek incelenmelidir: >> text = Bu bir karakter dizisidir (enter) text = Bu bir karakter dizisidir >> d = abs(text) (enter) Columns 1 through 13 66 117 32 98 105 114 32 107 97 114 97 107 116 Columns 14 through 25 101 114 32 100 105 122 105 115 105 100 105 114 Yukar daki rnek incelendi inde bo luk karakterinin 32 say s ile simgelendi i grlmektedir. E er ASCII kodlar ndan tekrar harflere dn istenir ise char komutu kullan lmal d r: >> char(d) (enter) ans = Bu bir karakter dizisidir E er adan zye tm harf karakterleri ekranda grntlenmek istenir ise a a daki program incelenmelidir: >> harfler = abs(a) :abs(z); >> disp (char(harfler)) abcdefghijklmnopqrstuvwxyz (enter) (enter)

Karakter dizisi iinden istenilen karakterleri semek mmkndr: >> text = Bu bir karakter dizisidir ; >> u = text(8 :15) u = karakter (enter) (enter)

Karakter dizileri matris format nda da yaz labilir. Burada dikkat edilmesi gereken nokta her bir sat r iindeki stun say lar n n ayn olmas d r: >> w = [Bir satirdan daha uzun karakter dizilerinde her bir satirdaki kolon sayisi matrislerde oldugu gibi - ayni olmal idir ] w = Bir satirdan daha uzun karakter dizilerinde her bir satirdaki kolon sayisi -matrislerde oldugu gibi - ayni olmalidir >> size(w) ans = 4 31

(enter)

(enter)

Yukar da verilen rnekte 4 adet sat r ve 21 adet stun bulunmaktad r. Her bir sat r yaz l rken e it say da kolon iermesine dikkat edilmi tir. Harfler ve aralar ndaki bo lu un toplam say s 31 olmad durumlarda (2 .,3., ve 4. sat rlarda oldu u gibi) sat r sonuna uygun say da bo luk ilave edilmi tir. Aksi halde hata komutu ile kar la l r. A a daki yaz l m harf ve rakam karakterlerinin birlikte kullan m na rnek olmas iin verilmi tir: >> bugun = Ekim; >> bugun = [bugun, 12] bugun = Ekim 12

94

U ur Arifo lu 16.3. Harf - rakam dn mleri

MATLAB7.0 Simulink ve mhendislik uygulamalar

A a da verilen MATLAB komutlar harf-rakam dn m amac ile kullan l rlar: char(x) : x adl bir rakam (yada rakamlar ieren bir diziyi) ASCII kodlar yard m ile harf (yada harflere) evirir. x karekteri 0 ile 65535 aras nda bir de er alabilir. (Yukar da bir rne i verilmi ti.) x matrisinin elemanlar n yuvarlar (en yak n tam say ya atar): >> x= [0.1 2;2.9 6.1]; >> int2str(x) ans = 0 2 3 6 x say de eri ile harflerin birlikte kullan m n mmkn k lan bir komuttur. Bu komut, izimlerde, title, xlabel, ylabel, text gibi komutlar n iinde yayg n bir kullan m alan bulur. A a daki rnek incelenmelidir: >>tucus = 2 .2774; (enter) >>xmesaf = 144 .6364; (enter) >>disp([ucus suresi :,num2str(tucus), s]) (enter) ucus suresi : 2.2774 s >>disp([ucus mesa fesi:,num2str(xmesaf), ft]) (enter) ucus mesafesi : 144.6364 ft Yukar da disp komutu iinde yer alan isim (harf) ile rakam birbirlerine zde le tirme i lemi disp komutunun ba ka trl kullan lar ile gerekle tirilemez. str2num(s) : s dizili i iinde yer alan harf+rakam dizisini say sal bir bykl e dn trr. Bu dizili (s) iinde say , ondal k belirten noktalama i areti, + veya i aretleri, e stel say belirteci, kompleks say belirten i harfi de olabilir: >> str2num(' -2e2+300i') (enter) ans = -2.0000e+002 +3.0000e+002i

int2str(x)

num2str(x)

16.4. Harf dizili komutlar blanks(n) : Bu komutun soluna yaz lan ifade ile sa na yaz lan ifade aras na n adet bo luk b rak l r; >>n =[gerilim degeri,blanks(3),3 Volt ] n = gerilim degeri 3 Volt Bo luklar s dizisinden uzakla t r r. s dizisindeki ifadeyi MATLAB komutu olarak uygular: >> s = '4*atan(1) '; >> eval(s) ans = 3.1416 % asagidaki p rogram 1den 3e kadar olan % say lar M1,M2,M3 degiskenlerine atar >>for n=1 :3; (enter) >>eval([M,int2str(n), = n]); (enter) >>end; (enter) M1 = 1

deblank(s) eval(s)

: :

95

U ur Arifo lu M2 = 2 M3 = 3 findstr(s1,s2) :

MATLAB7.0 Simulink ve mhendislik uygulamalar

s1 harf dizisinin iinden s2 harf dizisini bulur: >>s1 = iki kisi iki ayri eve girdi ; (enter) >>s2 = iki; (enter) >>findstr(s1,s2) (enter) ans = 1 10 Yukar daki program sonunda iki ifadesinin s1 dizisi iinde 1. ve 10. stunlarda oldu u anla lmaktad r.

ischar(s)

s dizisi harf karakterlerinden olu mu ise bu komutun sonunda 1, aksi halde 0 elde edilir. s dizisinin tm elemanlar n tek tek tarar ve eleman harf ise 1, rakam ise 0 de eri olu turur. s dizisinin iinde byk harf var ise bu harfi kk harfe dn trr. s1 ve s2 dizilerini kar la t r r, s1 ile s2 ile ayn ise 1, aksi halde 0 de erini retir. s1 dizisindeki ilk n adet karakter s2 dizisi ile ayn ise 1, aksi halde 0 de erini retir s dizisinin iinde kk harf var ise harfi byk harfe dn trr.

isletter(s)

lower(s) strcmp(s1,s2)

: :

strncmp(s1,s2,n)

upper(s)

16.5. Zaman hesaplamalar MATLAB ortam nda iinde bulunulan zaman farkl formatta tan mlanm t r; clock : Alt elemanl bir vektr ierir. lk eleman y l, ikinci eleman ay, nc eleman gn,drdnc eleman saat, be inci eleman dakika,alt nc eleman ise saniye gsterir. >>clock (enter) ans = 2003 2 25 15 12 46.9 Yukar daki sonuca gre iinde bulunulan zaman; 2003 y l n n 2.ay n n 25. gnnde saat 15i 12 dakika 46.9 saniye gemektedir. date : adet bilgiden olu ur. lk bilgi gn, ikinci bilgi ay, nc bilgi ise y l olmaktad r. >> date (enter) ans = 25-Feb-2003 Seri numaralar eklinde iinde bulunulan gn ve saat bilgilerini verir: >> now (enter) ans = 7.316377469854166e+005

now

96

U ur Arifo lu datestr(a,dateform) :

MATLAB7.0 Simulink ve mhendislik uygulamalar a ile bildirilen zaman bilgisi, dateform trlerinden bir tanesi ile gsterilir. A a da dateform parametresinin e itli trleri gsterilmi tir; >> datestr(now,0) (enter) ans = 25-Feb-2003 17:57:18 >> datestr(now,1) (enter) ans = 25-Feb-2003 >> datestr(now,2) (enter) ans = 02/25/03 rnek 01-Mar-1995 15:45:17 03/01/95 Mar M 3 03/01 1 Wed W 1995 95 Mar95 15:45:17 3:45:17 PM 15:45 3:45 PM Q1-96 Q1

dateform 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Gn format dd-mmm-yyyy HH:MM:SS mm/dd/yy mmm m mm mm/dd dd ddd d yyyy yy mmmyy HH:MM:SS HH:MM:SS PM HH:MM HH:MM PM QQ-YY QQ

datenum(y l,ay,gn) :

[d s]=weekday(a)

ki parantez iinde verilen tarih bilgilerini seri numaralara dn trr. >>datenum(2003,2,25,15,12,46.9) (enter) ans = 7.316376338761575e+005 a ile verilen tarihin haftan n hangi gn oldu unu belirtir. Sunday (Pazar gn)=1 ile gsterilir. Di er gnlerin numaras ise bu s ray takip eder, rne in, Saturday (Cumartesi)=7 olur: >>[d s] = weekday(9/09/99) (enter) d = 5 s = Thu a ile belirtilen tarihi ieren aya ili kin takvimi gsterir: >> calendar('05/02/1992 ') May 1992 S M Tu W Th F S 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 0 0 0 0

calendar(ay/gn/y l) :

16.6. Zaman sayac

97

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

MATLAB ortam nda bir i lemin ba lang ve biti sreleri aras ndaki zaman dilimi tic ve toc komutlar ile tesbit edilebilir. tic komutu zaman sayac n al t r r, toc komutu ise sayac durdurur.MATLAB editr ortam nda yaz lan program n ba lang ve biti sreleri aras ndaki fark 0.72 saniye oldu u grlmektedir. tic for t=1:5000 y(t)=sin(2*pi*t/10) ; end toc elapsed_time = 0.7200 E er cputime komutu ekrana yaz l rsa elde edilen say (saniye olarak), MATLAB program n n al maya ba lad zaman ile o ana kadar geen sre aras ndaki fark belirler. 16.7. Say sal taban dn mleri A a da verilen komutlar 10luk tabandaki say y di er say sal tabanlara dn trmekte kullan l r; dec2bin(d) : 10 taban nda verilen d say s n 2lik tabana evirir. d say s pozitif ve 2 52 say s ndan kk olmal d r: >>a = dec2bin(18) (enter) a = 10010 10 say s n n iki'lik dzendeki 4 bit kar l >>dec2bin(10,4) ans= 1010 3 say s n n iki'lik dzendeki 4 bit kar l >>dec2bin(3,4) ans= 0011 bin2dec(d) : a a daki komut ile bulunabilir: (enter)

a a daki komut ile bulunabilir: (enter)

2lik tabanda verilen d say s n 10luk tabana evirir. >>a = dec2bin(18) ; >>bin2dec(a) ans = 18

(enter) (enter)

dec2hex(d)

10luk tabanda verilen d say s n hex (16) taban na dn trr. d say s pozitif ve 2 52 say s ndan kk olmal d r: >> b = dec2hex(30) (enter) b = 1E hex taban nda verilen d say s n 10luk tabana dn trr. d say s pozitif ve 2 52 say s ndan kk olmal d r: >> b = dec2hex(30) (enter) b= 1E >> hex2dec(b) (enter) ans= 30

hex2dec(h)

dec2base(d,b)

10luk tabanda verilen d say s n b taban nda di er bir say ya dn trr. d say s pozitif ve 2 52 say s ndan kk, b taban ise 2 ile 32 say lar aras nda

98

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar olmal d r. >>c = dec2base(30,4) (enter) c = 132 : b taban nda verilen d say s n 10 taban nda di er bir say ya dn trr. d say s pozitif ve 2 52 say s ndan kk, b taban ise 2 ile 32 say lar aras nda olmal d r. >> c =dec2base(30,4) ; (enter) >> base2dec(c,4) (enter) ans = 30

base2dec(d,b)

16.8. Bit i lemleri MATLAB ortam nda iki say n n lojik (say sal) anlamda kar la t r lmas i leminde bitand, bitor, bitxor, bitcmp, bitset, bitget ,bitshift komutlar ndan yararlan l r. A a da bu komutlar n tan mlar verilmi tir; a tamsay s 0 ile bitmax=253 -1 aras nda de i ir. c= bitand(a,b) : a ve b say lar n ikili tabana evirerek and-ve- lojik komutu ile kar la t r l r. Elde edilen say 10luk tabanda cye atan r. >> a=4; (enter) >> b=8; (enter) >> c = bitand(a,b) (enter) ans = 0 Yukar da verilen i lemde 410 ! 100 2 ile 810 ! 1000 2 and komutu ile kar la t r l rsa 0100&1000 = 0000 2 ! 010 elde edilir. Programda elde edilen 0 de eri de bu sonula uyumludur. c= bitor(a,b) : a ve b say lar n ikili tabana evirerek or-veya- lojik komutu ile kar la t r l r. Elde edilen say onluk tabanda cye atan r. >> a=4; (enter) >> b=8; (enter) >> c= bitor(a,b) (enter) ans = 12 Yukar da verilen i lemde 410 ! 1002 ile 810 ! 1000 2 or komutu ile kar la t r l rsa 0100 | 1000 = 1100 2 ! 1210 elde edilir. Programda elde edilen 12 de eri de bu sonula uyumludur. c= bitxor(a,b) : a ve b say lar n ikili tabana evirerek xor-zelveya- lojik komutu ile kar la t r l r. Elde edilen say 10luk tabanda cye atan r. >> a=4; (enter) >> b=6; (enter) >> bitxor(a,b) (enter) ans = 2 Yukar da verilen i lemde 410 ! 100 2 ile 610 ! 110 2 xor komutu ile kar la t r l rsa 100 xor 110 = 010 2 ! 210 elde edilir. Programda elde edilen 2 de eri de bu sonula uyumludur. bitcmp(a,N) : a say s n n 2lik tabanda ilk N adet rakam n n lojik olumsuzunu

99

U ur Arifo lu

bitset(a,b,v)

MATLAB7.0 Simulink ve mhendislik uygulamalar hesaplayarak elde edilen say y onluk tabanda olan c say s na atar. >>c = bitcmp(4,3) (enter) c = 3 a say s n n 2lik tabandaki gsterimindeki b. biti v yapar. v say s 0 ya da 1 olabilir: >>a=6; (enter) >>b=4; (enter) >>c=bitset(6,4,1) (enter) c= 14 Yukar daki i lemde a=6 say s n n ikili tabanda kar l 0110 olur. Bu 4 adet bit iinden b.=4. bit olan 0 de eri v=1 yap l r. Bylece 0110 olan de er 1110 olur. Bu say ise 10luk tabanda 14 say s na e ittir. >> bitset(6,4,0) (enter) ans = 6

bitget(a,b) bitshift(a,N)

: :

a say s n n 2lik tabandaki gsterimindeki b bit de erini gsterir. a say s n 2^N ile arpar (N negatif olabilir). bir rnek a a da gsterilmi tir: (enter)

Yukar da verilen komutlar n i ie kullan ld >>dec2bin(bitor(10,3),4) ans= 1011

17.2. Bir say n n sembolik ekle dn trlmesi Command Window ortam nda tan ml bir say , 4 farkl formatta sembolik ifadeye dn trlebilir: y Sembolik kayan noktal (floating point) gsterim: >> a=3.2; (enter) >>sym (a,' f') (enter) ans = '1.999999999999a'*2^(1) y Sembolik kesirli gsterim: >>sym (a,' f') ans = 16/5 y Sembolik eps+kesirli gsterim: >>sym (a,'e') ans = 16/5+4*eps/5 (enter)

(enter)

y Sembolik anlaml say gsterimi: >>sym (a,' d') (enter) ans = 3.2000000000000001776356839400250 Gsterilecek say n n ierdi i rakam say s (default olarak) 32 dir. Kullan c bu say y isterse kendisi

100

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar a a daki rnekte gsterildi i gibi belirleyebilir: >>digits(5) >>sym (a,' d') (enter) ans = 3.2000

17.9. Sembolik olarak Jacobian matrisin elde edilmesi f (x , y, z ) ! x * cos( y ) * sin( 2 * z )  x ^ 2 g( x , y, z) ! x ^3 * sin( 2 * y)  z ^3 h (x , y, z ) ! x ^3  y ^ 4  x * z olarak verilen 3 adet lineer olmayan denklem sistemine ili kin Jacobian matrisi sembolik ara kutusu yard m ile hesaplanmak istenirse (de i ken olarak x,y ve z al nacakt r) a a daki komut sat rlar kullan labilir. >>syms x y z (enter) >>f=x*cos(y)*sin(2*z)+x^2 ; (enter) >>g=x^3*sin(2*y)+z^3; (enter) >>h=x^3-y^4+x*z; (enter) >>J=jacobian([f;g;h],[x y z]) (enter) J = [ cos(y)*sin(2*z)+2*x, -x*sin(y)*sin(2*z), 2*x*cos(y)*co s(2*z)] [ 3*x^2*sin(2*y), 2*x^3*cos(2*y), 3*z^2] [ 3*x^2+z, -4*y^3, x] Yukar daki matrisin determinant hesaplanmak istenirse; >> det(J);
yazmak yeterlidir.

% sonu ok uzun oldu u iin buraya yazd r lmam t r

17.10. Sembolik ortamda limit i lemleri MATLAB ortam nda lim xp0 f (x ) i lemi; >>limit(f) komutu kullan larak; lim xpa f (x ) i lemi; >>limit(f,x,a) % veya limit(f,a)
x pa 

(enter)

(enter)

komutu kullan larak; lim

f ( x ) i lemi (soldan limit); (enter)


( x ) i lemi (sa dan limit);
#

>>limit(f,x,a,'left') komutu kullan larak; lim


x pa 

>>limit(f,x,a,'right')

(enter)

komutu kullan larak hesaplan r. Bilindi i gibi f(x) fonksiyonunun trevi f ' ( x ) ;

101

U ur Arifo lu ( x  h)  ( x) f ' (x ) ! lim h p 0 h


$ $

MATLAB7.0 Simulink ve mhendislik uygulamalar

e itli i ile hesaplan r. rnek olarak f(x)=cos(x) al n rsa, f ' ( x ) =sin(x) olur. Bu sonu sembolik ara kutusunda limit komutu ile kontrol edilebilir: >> syms h n x >> limit((cos(x+h) -cos(x))/h,h,0) ans = -sin(x) x Grld gibi ayn sonu elde edilmi tir. Di er bir rnek olarak, f(x)= (1  ) n fonksiyonunun n p g iin n limiti aran rsa; >> syms n x (enter) >> limit((1+x/n)^n,n,inf) (enter) ans = exp(x) x i lemi yap ls n; (soldan limit i lemi) elde edilir. rnek olarak, lim x p0  x >> syms x >> limit(x/abs(x),x,0,'left') % soldan limit al n yor ans = -1 x E er, lim i lemi yap l rsa; (sa dan limit i lemi) x p0  x >> limit(x/abs(x),x,0,'right') % sa dan limit al n yor ans = 1 (enter) (enter) (enter) (enter)

(enter)

elde edilir. Yukar da verilen fonksiyonun ayn noktada sa dan ve soldan limitleri farkl oldu undan iki tarafl limitin de olmamas gerekir: >> limit(x/abs(x),x,0) ans = NaN (enter)

Grld gibi limit de eri (Not a Number) NaN olmakta, di er bir ifade ile limit tan ms zd r. Yukar da verilen rneklerde f fonksiyonu hep limit komutu iinde tan t ld . stenirse daha nce de tan t labilir. A a daki rnek incelenmelidir: >> syms x >> f= x/abs(x); >> limit(f,x,0,'left') ans = -1 17.15. Sembolik i lemlerin Laplace dn mne uygulanmas s= W  jw (enter) (enter) (enter)

102

U ur Arifo lu olmak zere,


g 0

MATLAB7.0 Simulink ve mhendislik uygulamalar

f ( t )e

 st

dt

(17.1)

ifadesi f(t) fonksiyonunun Laplace dn m olarak adland r l r ve F(s)= f ( t)e st dt


0 g

(17.2)

eklinde gsterilir. F(s) Laplace fonksiyonunun ters Laplace fonksiyonu ise; f (t ) ! 1 W o  jg st F(s)e ds j2T Wo  jg
w
g aral

(17.3)

ifadesi ile bulunur. Yukar da j=  1 , W o ; reel say , w iin ise g e itliklerinin bir ba ka gsterimleri ise a a da verilmi tir: F(s)=[f(t)] - Laplace dn m f(t)= 1 [F(s)] - Ters Laplace dn m

tan ml d r. (17.2) ve (17.3)

(17.4) (17.5)

Yukar da verilen Laplace dn m iin MATLAB ortam nda laplace komutu, ters Laplace dn m iin ise ilaplace komutu kullan l r. A a da laplace komutunun e itli kullan mlar gsterilmi tir: laplace : Sembolik i lemlerde Laplace dn mnde kullan l r. A a da bu komutun e itli kullan l lar gsterilmi tir: Sembolik f(t) fonksiyonunun Laplace transformunu bulur. f fonksiyonu (default olarak) t'ye ba l d r. Dn m sonunda (default olarak) s ile de i en bir fonksiyon elde edilir. Di er bir ifade ile f=f(t) fonksiyonuna laplace komutu kullan larak dn m uyguland nda, F=F(s) elde edilir. F fonksiyonu f fonksiyonunun Laplace dn mdr:

F=laplace(f)

F(s) ! {f(t)} = f ( t )e st dt


0

(17.5a)

F=laplace(f,v)

(17.5a) e itli inde (default de er olan) s yerine t koyarak f fonksiyonunun Laplace dn mn bulur: F(t ) ! {f(x)} = f ( x )e  tx dx
0 g

F=laplace(f,w,z):

(17.5a) e itli inde (default de er olan) s yerine z ve (default de er olan) t yerine w koyarak f fonksiyonunun Laplace dn mn bulur:
0
&

F(z ) ! {f(u)} f ( )e z d
% &

A a daki problemde baz f(t) fonksiyonlar n n Laplace dn mleri gsterilmi tir:

Problem 17.3 a) f(t)= t 4 olmak zere F(s) ! {f(t)} ifadesini bulunuz. ( F(s) ! t 4 e st dt =?)
0 g

103

U ur Arifo lu b) g(v)=
1 v

MATLAB7.0 Simulink ve mhendislik uygulamalar


g 0 g 0

olmak zere F( w ) ! {g(v)} ifadesini bulunuz. ( F(w ) !

1 v

e  vt dv =?)

c) f(t)= e at olmak zere F(x) ! {f(t)} ifadesini bulunuz. ( F(x ) ! e at e  tx dt =?) e itliklerinin Laplace transformlar n bulunuz.

zm a)>> syms t >> f=t^4; >> laplace(t^ 4) ans = 24/s^5 b)>> syms v; >> g=1/sqrt(v) ; >> laplace(g) ans = (pi/s)^(1/2) c) >> syms a t >> f=exp(-a*t); >> laplace(g) ans = 1/(s+a) (enter) (enter) (enter)

(enter) (enter) (enter)

(enter) (enter) (enter)

f(t) fonksiyonunun trevinin Laplace transformu a a da gsterilmi tir:; df (t ) F(s)= =sF(s)-f(0) dt d 2f (t) 2 ' F(s)= = s F(s)-sf(0)- f (0) dt 2 ilaplace : Sembolik i lemlerde ters Laplace dn mnde kullan l r. A a da bu komutun e itli kullan l lar gsterilmi tir: Sembolik F(s) fonksiyonunun ters Laplace transformunu (f(t)) bulur. F fonksiyonu (default olarak) s'e ba l d r. Dn m sonunda (default olarak) t ile de i en bir f fonksiyonu elde edilir. Di er bir ifade ile F=F(s) fonksiyonuna ilaplace komutu kullan larak dn m uyguland nda f=f(f) elde edilir. f fonksiyonu F fonksiyonunun ters Laplace dn mdr: 1 c  ig st f (t ) ! 1 {F(s)}= (17.5b) F(s)e ds 2 i c  ig (17.5b) e itli inde (default de er olan) t yerine y koyarak F fonksiyonunun ters Laplace dn mn bulur: 1 c ig sy f ( y) ! 1 {F(y)}= (17.5c) F( y)e ds 2 i c ig (17.5b) e itli inde (default de er olan) t yerine x ve (default de er olan) s yerine y koyarak F fonksiyonunun ters Laplace dn mn bulur:
( '

f=ilaplace(F)

f=ilaplace(F,y)

f=ilaplace(F,y,x):

104

U ur Arifo lu
)

MATLAB7.0 Simulink ve mhendislik uygulamalar 1 c ig xy f (x ) ! 1 {F(y)}= F( y)e dy 2 i c ig (17.5d)

A a daki problemde baz F(s) fonksiyonlar n n ters Laplace dn mleri gsterilmi tir: Problem 17.4
1 s
2

b) F(v)= c) F(u)=

1 (v  a ) 2
1
2 2

olmak zere f ( x) ! 1 {F(v))} ifadesini bulunuz. ( 1 {F(v)}= olmak zere f (x ) ! 1 {F(u)} ifadesini bulunuz. ( 1 {F(u)}=

u a e itliklerinin ters Laplace transformlar n bulunuz.

zm a)>> syms s >> f=1/s^2; >> ilaplace(f) ans = t b)>> syms v a; >> f=1/(v-a)^2; >> ilaplace(f) ans = x*exp(a*x) c) >> syms x u >> syms a real >> f=1/(u^2-a^2); >> simplify(i laplace(f,x)) ans = sinh(x*abs(a))/abs(a) (enter) (enter) (enter)

(enter) (enter) (enter)

(enter) (enter) (enter) (enter)

Problem 17.5
2 y ''  3y '  4 y ! 3t  2 cos t

diferansiyel denklemini, y(0)=1 ve y ' (0) ! 1 ilk ko ullar alt nda Laplace transformunu kullanarak bulunuz.

zm ncelikle verilen e itli in sol taraf Laplace transformu yard m ile F(s) fonksiyonuna dn trlsn:
2s 2 (s )  2sy ( 0)  y ' ( 0)  3[s (s )  y( 0)]  4 (s ) ! [3t-2cost]
1 1 1

105

a) F(s)=

olmak zere f (t ) ! 1 {F(s)} ifadesini bulunuz. ( 1 {F(s)}=

1 c  ig st F(s)e ds =?) 2 i c ig 1 c  ig xv F( v)e dv =?) 2Ti c ig 1 c  ig xv F(u )e dv =?) 2Ti c ig

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

Y (s)[2s 2  3s  4] ! 3y(0)  2sy(0)  y ' (0)  [3t - 2cost] Yukar da grlen [3t-2cost] ifadesinin Laplace transformunun elde edili i a a da gsterilmi tir: >> syms s t >> laplace(3*t -2*cos(t)) ans = 3/s^2-2*s/(s^2+1) Elde edilen bu sonu yukar daki e itlikte yerine konulursa; (enter) (enter)

Y (s)[2s 2  3s  4] !

3
2

2s
2

s s 1 3 1 2s  4  2s (s) ! 2  2 2 s 1 2s  3s  4 s
2

 3y(0)  2sy(0)  y ' (0) !

3 s
2

2s s 1
2

 4  2s

elde edilir. (s) fonksiyonuna ters Laplace dn m uygulan r ise; >> syms s >> ilaplace((1/(2*s^2 -3*s+4))*(3/s^2 -2*s/(s^2+1) -4+2*s)) ans = 3/4*t+9/16+155/208*exp(3/4*t)*cos(1/4*23^(1/2)*t) 1889/4784*exp(3/4*t)*23^(1/2)*sin(1/4*23^(1/2)*t) 4/13*cos(t)+6/13*sin( t) (enter) (enter)

elde edilir. Yukar daki sonu a a daki ekilde de yaz labilir: y (t ) ! 0.75t  0.5625  0.745e 0.75t cos(1.2t )  1.812e 0.75t * sin(1.2 t )  0.3 cos t  0.46 sin t MATLAB ortam nda Laplace dn mlerinin uyguland alanlardan bir tanesi de elektrik devre zmleridir. rnek olarak verilen bir elektrik devresine ili kin s-domeni e itlikleri a a da gsterildi i gibi olsun:  s 2s I1 (s) 1 / s 2s 1  s I (s) ! 1 2 Yukar da verilen denklemde I1 (s) ve I 2 (s) ak mlar n n t-domenindeki kar l klar bulunmak istenirse; >>syms s >>A= [-s 2*s; 2*s 1-s] >>B= [1/s ;1] >>C= inv(A)*B >> ilaplace(C) ans = [ -t+4-10/3*exp(-1/3*t)] [ -5/3*exp(-1/3*t)+2] (enter) (enter) (enter) (enter) (enter)

106

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar elde edilir. Bu sonulara gre a a daki ak m e itlikleri yaz labilir: I1 ( t ) !  t  4  10  t / 3 5 e ; I 2 (t) !  e t / 3  2 3 3

17.16. Sembolik i lemlerin Z dn mne uygulanmas Z dn m, ayr k sistemlerdeki fark e itliklerinde, Laplace dn mne benzer bir rol oynar. f n fonksiyonunun Z dn m; F( z ) ! f n z  n
n !0 g

(17.6)

olarak ifade edilir. Yukar daki ifadenin bir di er gsterimi; F(z) ! Z[f n ] olarak verilir. Ters Z dn m ise F(z) e itli inden yola karak f n fonksiyonunun bulunmas f n ! Z 1 [F(z )] (17.8) (17.7)

i lemidir. MATLAB ortam nda Z dn mnde ztrans komutu, ters Z dn mnde ise iztrans komutu kullan l r. Laplace dn mnde oldu u gibi Z dn mnn de ok nemli zellikleri vard r. Bunlar n iinde en nemli iki e itlik a a da verilmi tir: [f n  k ] ! z k F(z )  z k 1f i (soldan kayd rma e itli i) [ f n  k ] ! z k F ( z )  z i f i  k
i !0 i !0 k 1 k

(17.9) (17.10)

A a da ztrans komutunun e itli kullan l biimleri gsterilmi tir: ztrans F=ztrans(f) : Sembolik i lemlerde Z dn mnde kullan l r. A a da bu komutun e itli kullan l lar gsterilmi tir: Sembolik f(t) fonksiyonunun Z transformunu bulur. f fonksiyonu (default olarak) n'e ba l d r. Dn m sonunda (default olarak) z ile de i en bir fonksiyon elde edilir. Di er bir ifade ile f=f(n) fonksiyonuna laplace komutu kullan larak dn m uyguland nda, F=F(z) elde edilir. F fonksiyonu f fonksiyonunun Z dn mdr: g f (n ) F(z) ! > {f(n)} = (17.10a) n n !0 z (17.10a) e itli inde (default de er olan) z yerine w koyarak f fonksiyonunun Laplace dn mn bulur: g f (n ) F(w ) ! > {f(n)} = n n !0 w (17.10a) e itli inde (default de er olan) n yerine k ve (default de er olan) z yerine w koyarak f fonksiyonunun Laplace dn mn bulur:

3 3 3

(sa dan kayd rma e itli i)

dn m a a da verilen rnekte oldu u gibi fark e itliklerinin zmnde kullan l r:

F=ztrans(f,w)

F=ztrans(f,k,w):

107

U ur Arifo lu F(w ) ! > {f(n)} =


g n !0

MATLAB7.0 Simulink ve mhendislik uygulamalar f (k ) wk

A a daki problemde baz f(n) fonksiyonlar n n Z dn mleri gsterilmi tir:

Problem 17.6 a) f(n)= n 4 olmak zere F(z) ! Z{f(n)} ifadesini bulunuz. ( F(z) ! > {f(n)} =
g

=?) zn f (u ) b) f(u)= a u olmak zere F(w ) ! Z{f(u)} ifadesini bulunuz. ( F(w ) ! > {f(u)} = =?) u n !0 w g f (n ) =?) c) f(n)=sin(a*n) olmak zere F(z ) ! Z{f(n)} ifadesini bulunuz. ( F(z) ! > {f(n)} = n n !0 z zm
n !0 g

f (n )

a) >> syms n >> f=n^4; >> y=ztrans(f) y= z*(z^3+11*z^2+11*z+1)/(z -1)^5 b) >> syms a u >> f=a^u; >> y=ztrans(f) >>simplify(y) y= -z/(-z+a) c) >> syms a n >> f=sin(a*n); >> y=ztrans(f) y= z*sin(a)/(z^2 -2*z*cos(a)+1) iztrans :

(enter) (enter) (enter)

(enter) (enter) (enter) (enter)

(enter) (enter) (enter)

Sembolik i lemlerde ters Z dn mnde kullan l r. A a da bu komutun e itli kullan l lar gsterilmi tir: Sembolik F(z) fonksiyonunun ters Z transformunu bulur. F fonksiyonu (default olarak) z'ye ba l d r. Dn m sonunda (default olarak) n ile de i en bir fonksiyon elde edilir. Di er bir ifade ile F=F(z) fonksiyonuna iztrans komutu kullan larak dn m uyguland nda, f=f(n) elde edilir. f fonksiyonu F fonksiyonunun ters Z dn mdr: 1 n 1 f (n ) ! > 1 {F(z)} = (17.10b) F( z)z dz ; n=1,2,.. 2 i z! (17.10b) e itli inde (default de er olan) n yerine k koyarak f fonksiyonunun ters Z dn mn bulur: (17.10b) e itli inde (default de er olan) n yerine k ve (default de er olan) z yerine w koyarak F fonksiyonunun ters Z dn mn bulur:
5 4

f=iztrans(F)

f=iztrans(F,k)

f=iztrans(F,k,w):

A a daki problemde baz F(z) fonksiyonlar n n ters Z dn mleri gsterilmi tir:

108

U ur Arifo lu Problem 17. 7 a) F(z) ! b) F(u ) ! 2z ( z  2)


2 2

MATLAB7.0 Simulink ve mhendislik uygulamalar

u (u  1)

u  2u  1 z c) F(z) ! olmak zere f (n ) ! > 1 {F(z)} ifadesini bulunuz. z2

olmak zere f (k ) = > 1 {F(u)} ifadesini bulunuz.

zm a) >> syms z >> f=2*z/(z-2)^2; >> y=iztrans(f) y= 2^n*n b) >> syms n >> f=n*(n+1)/(n^2+2*n+1); >> y=iztrans(f) y= (-1)^k c) >> syms z a >> f=z/(z-a) >> y=iztrans(f) y= a^n Problem 17. 8 ; nu0 4n fark e itli ini sa layan y n ifadesini, y 1 ! 1 ; y 2 ! 0 ilk ko ullar alt nda bulunuz. zm Verilen e itli in her iki taraf na Z dn m uygulan r ise; 1 6 (z )  s z 1 ( z)  y 1  z  2 (z)  z 1 y 1  y 2 ! 4 n
8

(enter) (enter) (enter)

(enter) (enter) (enter)

(enter) (enter) (enter)

6 y n  5 y n 1  y n  2 !

elde edilir. E itli in sa taraf ndaki >> syms z n >> ztrans (1/4^n) ans = 4*z/(4*z-1)

dn m MATLAB yard m ile bulunabilir: (enter) (enter)

Elde edilen sonu son e itlikte yerine konulursa; 6 (z)  s z 1 (z)  y 1  z  2 (z )  z 1 y 1  y  2 !


@ @ @

a_

a 4z4z 1
109

a_

olmak zere f (n ) ! > 1 {F(z)} ifadesini bulunuz. ( > 1 {F(z)} =

1 2 i

z!

F( z)z

n 1

dz =?)

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar elde edilir. E itlikte ilk ko ullar yerlerine konularak ifade dzenlenirse; 1 ( z) ! 1 6  5z  z  2 4 z 1 4z  1  z  5

elde edilir. Son e itli e iztrans komutu uygulanarak aran lan y n ayr k de eri bulunabilir: >> syms z (enter) >>iztrans ((4*z/(4*z -1)-z^-1+5)/(6-5*z^-2)) (enter) ans = 1/2*(1/4)^n+5/2*(1/2)^n -2*(1/3)^n Elde edilen sonuca gre; yn ! 11 51 1  2  2 4 22 3
n n n

bulunur. En ba ta verilen ilk ko ullar n bulunan ifadeyi sa lay p sa lamad 17.17. Sembolik i lemlerin Fourier dn mne uygulanmas [0 T] aral f (x ) ! a0 2

Periyodik bir fonksiyon periyot iinde srekli veya paral srekli olabilir, n=1,2,3,.., g olmak zere sonsuz say da cos(2 Tnx / T ) ve sin(2 Tnx / T ) fonksiyonlar n n do rusal bile imi olarak yaz labilir. Yukar da verilen ifadede; ao ! 2 T f ( x )dx T o 2 T 2Tnx a n ! o f ( x ) cos dx T T 2 T 2Tnx dx o f ( x ) sin T T (17.12) (17.13) (17.14)

bn !

e itlikleri geerlidir. Fourier serileri sonlu s n rlar olan periyotlarda tekrarlanan fonksiyonlar iindir. Bir fonksiyon periyodik de ilse ve ayn zamanda btn uzayda tan ml ise Fourier serisi anlams zd r. Bu durumlarda Fourier serilerinin genel biimi olarak kabul edilebilecek olan Fourier dn m ele al nmal d r. Fourier dn m Fourier serisinden tretilir. Ancak dn m sonunda elde edilen art k bir serinin terim katsay lar de il, bir fonksiyondur. Fourier dn m zaman (t) uzay ndan frekans (w) uzay na dn m sa lar. Ters Fourier dn m ise w uzay ndan t uzay na dn m sa lar. Bu olaya teknolojiden bir rnek verilebilir: Bir otomobil reticisi otomobilin yolda sars lmadan gitmesini temin etmek iin amortisr olarak bilinen ok tutucular kullan r. Arata kullan lacak ok tutucular n zelli ini iyi tespit etmek iin arata e itli testler uygular. retici deneme arac na takt amortisrleri kt yol ko ullar nda test eder ve arac n titre imini bir alet ile kaydeder. Elde edilen kay t e itli frekanslarda titre im yapan grlt sinyalidir. Bu sinyalin Fourier dn m al n rsa, retici arac n hangi frekanslarda iddetli, hangilerinde ise zay f titre im yapt n grr. Amortisr iddetli frekanslardaki titre imi yutacak ekilde yeniden dzenleyerek dizayn eder. Btn uzayda tan ml bir f(t) fonksiyonunun w uzay na Fourier dn m;
F( w ) ! 1 2T
g f ( t )e
g jwt

kontrol edilebilir.

nda T periyoduyla tekrarlanan bir f(x) fonksiyonu a a daki sonsuz seriyle ifade edilebilir;  a n cos(
n !1 g g 2Tnx 2Tnx ) )  b n sin( T T n !1

(17.11)

dt

(17.15)

110

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ifadesi ile verilir. (17.15) ile verilen dn mn tersi, yani w uzay ndan t uzay na gei i veren ters Fourier dn m;
f (t) ! 1 2T
g F( w )e
g jwt

dw

(17.16)

ifadesi ile hesaplan r. (17.15) ve (17.16) e itlikleri; F( w ) ! F{f(t)} f (t ) ! F


1

(17.17) (17.18)

{F(w)}

ifadeleri ile de gsterilebilir. Buraya kadar anlat lan Fourier serisi ve dn m, matematik i lemlerde, e itli zmlerde analitik olarak kullan lmaktad r. Fakat bilimsel ve teknolojik uygulamalarda elde edilen lm de erleri bir fonksiyon de il, belirli bir eleman say s olan say sal bir dizidir. Dolay s ile bu tr say sal verilerin dn mlerinin de say sal olarak yap lmas gerekir. Say sal Fourier dn m (Discrete Fourier TransformDFT) analitik dn mlerin tm zelliklerini sa lar. E er bir lme ili kin N adet data de eri mevcut ise (rne in bir elektriksel i aretin e itli zamanlardaki de i imi llm ise- k=1,2,3,.... adet lm sonucu f k ! f1 , f 2 , f 3 ,... dizisi olu turulmu ise) bu dizinin say sal Fourier dn m Fh , Fourier seri ve Fourier dn m formllerinden hareketle; Fh ! 1 N 1  j2Tkh / N fke N k !0 h=0,1,2,3,.....N-1 (17.19)

olarak tan mlan r. Ters say sal Fourier dn m de yine ayn biimde; f k ! f h e  j2 Tkh / N
h !0 N 1

h=0,1,2,3,.....N-1

(17.20)

olur. DFT iin data say s nda bir s n rlama yoktur. Mikroi lemci h zlar artt ka DFT algoritmas byk say daki data de erlerini de erlendirme a s ndan cazipli ini koruyabilir. Ancak d k h zdaki i lemciler iin yksek say da datay i leme sokmak, DFT algoritmas iin olduka zamana ihtiya duyulaca ndan pek tercih edilmez. lm say s n n ok say da oldu u i lemlerde h zl Fourier dn m (Fast Fourier Transform-FFT) tercih edilmelidir. FFT algoritmas n n uygulanabilmesi iin data say s n n 2 n olmas gerekir. Bu zellik FFTnin DFTye gre bir dezavantaj d r, zira DFT de data say s nda bir k s tlama bulunmamaktad r. E er FFT de data say s nda eksiklik olursa ve datalar 0 a do ru yak ns yor ise ilk yol eksik datalar 0 ile doldurmakt r. Byle bir durum sz konusu de il ise datalar iinden uygun grlenleri d ar atarak data say s n 2 n e ekmektir. Di er bir yakla m ise interpolasyon yaparak yeni datalar retmektir. MATLAB ortam nda Fourier yntemine ili kin e itli komutlar bulunmaktad r. bunlardan ilki fft komutudur: Y=fft(y): H zl Fourier dn mnde (Fast Fourier Transform) kullan lan MATLAB komutudur. y vektrnn ayr k Fourier dn mn (DFT-Discrete Fourier Transform) bulur. Bu i lem, h zl Fourier dn m (FFT) algoritmas kullan larak gerekle tirilir. Y de erinin, aran lan harmonik genliklerinin k/2 kat oldu u unutulmamal d r. fft komutu kullan ld nda, rnekleme say s n n yar s kadar (k/2) harmonik ve bunlar n genlikleri incelenir. rnek olarak k=16 adet rnekleme yap lm ise bu komut kullan ld nda do ru bile en dahil k/2=8 adet (pozitif bile en) harmonik ile ilgili bilgi al n r. Di er kalan 16k/2=8 bile en ise negatif bile en de erleridir. 1. bile en do ru ak m bile enini, 2.,3.,4.,5.,6.,7., bile enler pozitif bile enleri verir. 8. harmonik bile eni ise Nyquist frekans bile enidir. Nyquist frekans n takip eden bile enler ise (9-15) negatif bile enlerdir. 9. bile en de eri 7. bile enin e leni ine (konjugesine) e ittir. 10. bile en 6. bile enin, 11. bile en 5. bile enin, 12. bile en 4. bile enin, 13. bile en 3. bile enin, 14. bile en 2. bile enin, 15. bile en 1. bile enin e leni idir (bak. ekil 17.6).

111

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

Yukar da da bahsedildi i gibi h zl Fourier dn m uygulamalar nda harmonik analizi yap lacak fonksiyonun (y) eleman say s (ne), 2 n zelli ini sa lamal d r. k adet eleman ieren bir y fonksiyonuna fft komutu uyguland nda ancak k/2 kadar harmonik ve bunlar n genlikleri hakk nda bilgi sahibi olunabilir (do ru bile en de eri bu harmonik say s na dahildir). Problem 17.9 Periyodu T=9.6 sn olan y(t) fonksiyonu iinden, [0;T] aral nda, e it zaman aral klar ile 16 adet rnek (lme yntemi ile) al nmaktad r. Elde edilen rnek (ayr k) de erler a a da verilmi tir. y=[ 0 4.7163 6.5026 5.6751 3.2878 0.5738 -1.5028 -2.4723 -2.3602 -1.5293 -0.4619 0.4301 0.9153 0.9619 0.6876 0.2770 -0.0979];

y ayr k vektrne fft komutu kullan larak harmonik analizini yap n z ve grafik ortamda gsteriniz. zm ekil 17.4'de y(t) de i imi gsterilmi tir. gsterilmi tir. Zamana ili kin ba lang , art ekil 17.4'de y(t) de i imi, rneklenmi y ve t de erleri ve biti de erleri t=0:0.6:9.6 saniye olarak verilmektedir.

rneklenmi y vektrnn eleman say lar 2 n ! 4 =16 art n sa lamaktad r. ekil 17.4'e dikkatli bak ld nda y vektrnn y o ile y n 1 aras nda de erler ald grlecektir ( y n ! y16 eleman bulunmamaktad r- ekil 17.5). Di er bir ifade ile rnekleme say s k=0,., n-1 olmakta , k=n olmamaktad r (bak. (17.19) e itli i ve ekil 17.4). Yukar da, fft komutu kullan larak ancak k/2 say da harmonik hakk nda bilgi sahibi olunabilece i belirtilmi ti. Bu bilgiye gre ula labilecek harmonik say s (m); verilen y vektr iin k/2=16/2=m=8 olmaktad r. Yatay eksen olarak t (zaman) domeninden f (frekans) domenine geildi inde frekans art ;
( f ! 1 / T ! 1 / 9.6 ! 0.10416 Hz ;

( (t ! 0.6 sn oldu u unutulmamal d r)

olacakt r. fft komutu kullan larak incelenebilecek en byk harmonik frekans (Nyquist frekans );

f maks ! (k / 2) * (f ! 8 * 0.10416 ! 0.83 Hz

ekil 17.4

ekil 17.5

olacakt r. ekil 17.6'da i aret frekans ile Nyquist frekans aras ndaki ili ki gsterilmi tir. Burada grld rne in, 3. harmonik genli i ile 14. harmonik genli i, ve 7. harmonik genli i ile 9. harmonik genli i birbirlerine e ittir. Ayn ekilde Nyquist frekanslar n n tek katlar kendi aralar nda ve ift katlar da kendi aralar nda e it harmonik genlik de erlerine sahiptir.

112

U ur Arifo lu fft( y) 7* (f 9* (f

MATLAB7.0 Simulink ve mhendislik uygulamalar

0 3* (f

f maks 8* (f

2f maks 14* (f

3f maks

4 f maks

5 f maks

6 f maks

ekil 17.6 Yukar da, 'Y de erinin, aran lan harmonik genliklerinin k/2 kat oldu u unutulmamal d r' ifadesi kullan ld . Bundan hareketle; >>Y=fft(y) komutu uyguland nda (aran lan gerek harmonik genlik de erlerine ula mak iin) Y harmonik genlik de elerini k/2 say s na blmek gerekmektedir. A a da verilen programda bu i lem; >>Yss(1:nt/2)=(2/nt)*Y(1:nt/2); sat r nda yap lmaktad r. Verilen programda; >>[fss' Yss'] ; sat r nda gerek frekans ve gerek harmonik genlik de erlerine ula lmaktad r. ekil 17.5'de verilen rnekleme artlar nda y vektrnn harmonik analizini yapan MATLAB program a a da gsterilmi tir. nt=16; % rnekleme say s p 2 n art n sa lamal T=9.6; % periyod p (nt+1)*dt=T dt=T/nt; % rnekleme aral p (t ! 0.6 sn df=1/T; % frekans art p (f ! 1 / T ! 1 / 9.6 ! 0.10416 Hz fmax=(nt/2)*df; %Nyquist frekans p f maks ! (k / 2) * (f ! 8 * 0.10416 ! 0.83 Hz t=0:dt:(nt -1)*dt; %t=0:0.6:9; f=0:df:(nt-1)*df; % f=0:0.10146:fmax=0.83 %y harmonik analizi yap lacak y(t)fonksiyonun rneklenmi data de erleri y=[0 4.7163 6.5026 5.6751 3.2878 0.5738 -1.5028 -2.4723 -2.3602... -1.5293 -0.4619 0.4301 0.9153 0.9619 0.6876 0.2770 ]; Y=fft(y) % y vektrne fft komutu uygulan yor figure(1) %Y (y'nin ayr k Fourier dn m) zaman ekseninde gsteriliyor subplot(221),bar(t,abs(Y)),xlabel('zaman (sn)') ,ylabel('genlik(Y)'); subplot(222),bar(t,real(Y)),xlabel('zaman (sn)') ,ylabel('reel(Y)'); subplot(223),bar(t,imag(Y)),xlabel('zaman (sn)') ,ylabel('imajiner(Y)'); fss=0:df:(nt/2 -1)*df; Yss=zeros(1,nt/2); Yss(1:nt/2)=(2/nt)*Y(1:nt/2);% Y degeri nt/2'ye blnyor( an+jbn)degerleri [fss' Yss'] % aran lan harmonik ve gerek genlik de erleri % figure(2) % gerek harmonik genlikleri frekans domeninde gsteriliyor subplot(221), bar(fss,abs(Yss)); % harmonik genliginin cubuk formunda cizimi xlabel('frekans (Hz)'),ylabel('genlik(Yss)'); subplot(222); bar(fss, real(Yss)); % an katsayisinin cu buk formunda cizimi

113

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar xlabel('frekans (Hz)'),ylabel('reel(Yss)'); subplot(223); bar(fss, imag(Yss)); % bn katsayisinin cubuk formunda cizimi xlabel('frekans (Hz)'), ylabel('imajiner(Yss)'); Yukar da verilen program n al t r lmas sonunda Command Window ortam nda elde edilen harmonik say s ve gerek genlik de erleri a a da gsterilmi tir: >> ans = 0 15.7010 % do ru ak m bile eni 0.6000 19.2996 +11.5735i % 1. harmonik nt/2 kat 1.2000 -11.2650 +13.8929i % 2. harmonik nt/2 kat 1.8000 -5.8754 + 2.3748i % 3. harmonik nt/2 kat 2.4000 -3.3826 + 0.8128i % 4. harmonik nt/2 kat 3.0000 -2.3512 + 0.3682i % 5. harmonik nt/2 kat 3.6000 -1.8616 + 0.1811i % 6. harmonik nt/2 kat 4.2000 -1.6322 + 0.0769i % 7. harmonik nt/2 kat 4.8000 -1.5642 % fmax (Nyquist) frekans ndaki genlik (nt/2 kat ) 5.4000 -1.6322 - 0.0769i % 7. harmonik e leni i nt/2 kat 6.0000 -1.8616 - 0.1811i % 6. harmonik e leni i nt/2 kat 6.6000 -2.3512 - 0.3682i % 5. harmonik e leni i nt/2 kat 7.2000 -3.3826 - 0.8128i % 4. harmonik e leni i nt/2 kat 7.8000 -5.8754 - 2.3748i % 3. harmonik e leni i nt/2 kat 8.4000 -11.2650 -13.8929i % 2. harmonik e leni i nt/2 kat 9.0000 19. 2996 -11.5735i % 1. harmonik e leni i nt/2 kat o t de erleri >> ans = % gerek genlik de erleri) 0 1.9626 % do ru ak m bile eni= y ort 0.1042 2.4124 + 1.4467i % 1. harmonik genli i 0.2083 -1.4081 + 1.7366i % 2. harmonik genli i 0.3125 -0.7344 + 0.2969i % 3. harmonik genli i 0.4167 -0.4228 + 0.1016i % 4. harmonik genli i 0.5208 -0.2939 + 0.0460i % 5. harmonik genli i 0.6250 -0.2327 + 0.0226i % 6. harmonik genli i 0.7292 -0.2040 + 0.0096i % 7. harmonik genli i o frekans de erleri

114

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 17.7

ekil 17.8 Yukar da verilen progam n al t r lmas sonunda elde edilen t-Y(t) ve fss-Yss de i imleri ekil 17.7 ve ekil 17.8'de gsterilmi tir. ekil 17.7 ve ekil 17.8'de Data Cursor ikonu yard m ile baz harmonik gnlik de erleri ekil zerinde gsterilmi tir. a a da verilen problemde ise de i im fonksiyonu verilen bir y(t) e risinin harmonik analizinin yap l gsterilmi tir.

Problem 17.10 y(t)= 0.5+2sin(2* T *3.125*t)+cos(2* T *9.25*t) fonksiyonu ile de i en ve periyodu T=3.2 sn olan bir i aretin fft komutu yard m ile harmonik analizi yap n. y(t) fonksiyonundan periyod boyunca e it zaman aral klar nda nt=64 adet rnek al nmaktad r.

115

U ur Arifo lu zm

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 17.9 y(t) de i imi ekil 17.9'da grlmektedir. Verilen problemi zen MATLAB program a a da gsterilmi tir: nt=64; T=3.2; dt=T/nt ; df=1/T; fmax=nt/(2*T); t=0:dt:(nt -1)*dt; f=0:df:(nt -1)*df; y= 0.5+2*sin(2*pi*3.125*t)+cos(2*pi*9.25*t);% egri denklemi Y=fft(y); figure(1) % y(t) egrisinin de i imi izdiriliyor plot(t,y) fss=0:df:(nt/2 -1)*df; Yss=zeros(1,nt/2); Yss(1:nt/2)=(2/nt)*Y(1:nt/2); % an+jbn degerleri [fss' Yss'] figure(2) % y(t)nin frekans domeninde harmonik genlikleri izdiriliyor subplot(221), bar(fss,abs(Yss)); xlabel('frekans (Hz)'),ylabel('genlik(Yss)'); subplot(222);bar(fss,real(Yss));xlabel('frekans (Hz)'),ylabel('reel(Yss )') subplot(223);bar(fss,imag(Yss));xlabel('frekans(Hz)'), ylabel('imajiner(Yss)'); Yukar da verilen program n al t r lmas sonunda Command de erleri ve harmonik genlik de erleri a a da gasterilmi tir: >> 0 1.0272 % 0.3125 0.0272 - 0.0014i % 0.6250 0.0272 - 0.0028i % 0.9375 0.0272 - 0.0043i % 1.2500 0.0271 - 0.0057i % 1.5625 0.0271 - 0.0072i % 1.8750 0.0271 - 0.0087i % 2.1875 0.0270 - 0.0103i % 2.5000 0.0270 - 0.0119i % 2.8125 0.0269 - 0.0136i % 3.1250 0.0269 + 1.9846i % 3.4375 0.0268 - 0.0173i % Window ortam nda elde edilen harmonik frekans do ru bile en: y ort 1.h 2.h 3.h 4.h 5.h 6.h 7.h 8.h 9.h 10.h 11.h

116

U ur Arifo lu 3.7500 4.0625 4.3750 4.6875 5.0000 5.3125 5.6250 5.9375 6.2500 6.5625 6.8750 7.1875 7.5000 7.8125 8.1250 8.4375 8.7500 9.0625 9.3750 9.6875

0.0267 0.0266 0.0264 0.0263 0.0261 0.0258 0.0255 0.0251 0.0246 0.0240 0.0231 0.0219 0.0202 0.0175 0.0130 0.0046 -0.0159 -0.1107 0.2830 0.1222

MATLAB7.0 Simulink ve mhendislik uygulamalar - 0.0193i % 12.h - 0.0214i % 13.h - 0.0237i % 14.h - 0.0263i % 15.h - 0.0291i % 16.h - 0.0322i % 17.h - 0.0357i % 18.h - 0.0397i % 19.h - 0.0443i % 20.h - 0.0498i % 21.h - 0.0564i % 22.h - 0.0646i % 23.h - 0.0753i % 24.h - 0.0899i % 25.h - 0.1115i % 26.h - 0.1473i % 27.h - 0.2231i % 28.h - 0.5318i % 29.h + 0.6553i % 30.h + 0.1214i % 31.h ekil 17.10'da

Yukar da verilen program n al t r lmass sonunda elde edilen harmonik de erleri ise gsterilmi tir.

ekil 17.10 fft2 : ki boyutlu h zl Fourier dn mnde kullan l r. : X vektrnn ters ayr k Fourier dn m (h zl fourier dn m algoritmas n kullanarak) hesaplar. E er X bir matris ise her bir kolonun ters ayr k fourier dn mn bulur. X vektrnn n noktal ters ayr k Fourier dn m (h zl fourier dn m algoritmas n kullanarak) hesaplar. Boyut (dim) boyunca, X vektrnn n noktal ters ayr k Fourier dn m (h zl fourier dn m algoritmas n kullanarak) hesaplar. Aktif olan boyut(dim)boyunca e lenik simetrik X matrisinin

y = ifft(X)

y = ifft(X,n) y = ifft(X,n,dim) y = ifft(X,[],dim)

: : :

y = ifft(..., 'symmetric') :

117

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar ters ayr k dn mnde kullan l r. zellikle yuvarlama hatalar dolay s ile tam anlam ile e lenik simetrik olamayan X matrislerinde tercih edilir. Aktif olan boyut(dim)boyunca e lenik simetrik olmayan X matrisinin ters ayr k dn mnde kullan l r.

y = ifft(..., 'nonsymmetric') :

ifft2 (X) :

X vektr (ya da matrisinin) iki boyutlu Ters h zl Fourier dn m bulur.

fourier

Sembolik i lemlerde Fourier dn mnde kullan l r. A a da bu komutun e itli kullan l lar gsterilmi tir: Sembolik f(x) fonksiyonunun Fourier transformunu bulur. f fonksiyonu (default olarak) x'e ba l d r. Dn m sonunda (default olarak) w ile de i en bir fonksiyon elde edilir. Di er bir ifade ile f=f(x) fonksiyonuna fourier komutu kullan larak dn m uyguland nda, F=F(w) elde edilir. F fonksiyonu f fonksiyonunun fourier dn mdr:
g
B

F=fourier(f)

F(w ) ! F{f(x)} = f ( x )e i F=fourier(f ,v) :

dx

(17.21)

(17.21) e itli inde (default de er olan) w yerine v koyarak f fonksiyonunun fourier dn mn bulur: F(v) ! F{f(x)} = f (x )e ivx dx
g g

F=fourier(f ,u,v):

(17.21) e itli inde (default de er olan) w yerine v ve (default de er olan) x yerine u koyarak f fonksiyonunun fourier dn mn bulur: F(v) ! F{f(u)} f (u )e ivu du
g g

A a daki problemde e itli fourier dn m rnekleri verilmi tir: Problem Lineer olmayan bir yke ili kin ani ak m ve ani gerilim de i imleri a a da verilmi tir. Bu ykn ebekeden ekti i (harmonikli) toplam aktif ve toplam reaktif g de erlerini hesaplayan bir MATLAB program yaz n z. zm
akim =[0 2.4695 4.7981 6.8567 8.5387 9.7686 10.5078 10.7580 10.5595 9.9877 9.1455 8.1535 7.1393 6.2254 5.5180 5.0974 5.0109 5.2680 5.8401 6.6627 7.6413 8.6603 9.5932 10.3144 10.7109 10.6924 10.2004 9.2135 7.7503 5.8684 3.6598 1.2437 -1.2437 -3.6598 -5.8684 -7.7503 -9.2135 -10.2004 -10.6924 -10.7109 -10.3144 -9.593 -8.6603 -7.6413 -6.6627 -5.8401 -5.2680 -5.0109 -5.0974 -5.5180 -6.2254 -7.1393 -8.1535 -9.1455 -9.9877 -10.5595 -10.7580 -10.5078 -9.7686 -8.5387 -6.8567 -4.798 -2.4695 -0.0000]; gerilim =[ 53.5500 60.0747 63.6723 63.9568 60.9137 54.8064 46.1458 35.6458 24.1611 12.6114 1.9019 -7.1572 -13.9199 -17.9614 -19.1129 -17.4759 -13.4101 -7.5000 -0.500 6.7331 13.3217 18.4449 21.4148 21.7404 19.1725 13.7288 5.6943 -4.4024 -15.833 -27.7368 -39.1877 -49.2830 -57.2183 -62.3594 -64.2974 -62.8848 -58.2484 -50.7779 -41.0917 -29.9819 -18.3455 -7.1043 2.8742 10.8545 16.2951 18.8965 18.6249 15.7138 10.6410 4.0838 -3.1428 -10.1618 -16.1135 -20.2351 -21.9299 -20.8235 -16.7985 -10.0077 -0.8623 10.0028 21.7835 33.5767 44.4582 53.5650];

nt=64; T=0.02; dt=T/nt ; df=1/T; fmax=nt/ (2*T) t=0:dt:(nt -1)*dt; f=0:df:(nt -1)*df; Y1=fft(akim);

118

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar figure(1) % i(t) egrisinin de i imi izdiriliyor plot(t,akim) fss=0:df:(nt/2 -1)*df; Yss1=zeros(1,nt/2); tss=0:dt:(nt/2 -1)*dt; Yss1(1:nt/2)=(2/nt)*Y1(1:nt/2); % an+jbn degerleri [fss' Yss1']; akimgenlik=abs(Yss1); akimaci=angle(Yss1); % gerilim hesabi basladi Y2=fft(gerilim); figure(2) % v(t) egrisinin de i imi izdiriliyor plot(t,gerilim) fss=0:df:(nt/2 -1)*df; Yss2=zeros(1,nt/2); tss=0:dt:(nt/2 -1)*dt; Yss2(1:nt/2)=(2/nt)*Y2(1:nt/2); % an+jbn degerleri [fss' Yss2']; gerilimgenlik=abs(Yss2); gerilimaci=angle(Yss2); toplamQ=0; for k=1:nt/2;toplamQ=toplamQ+akimgenlik(k)*gerilimgenlik(k)*0.5*sin (gerilimaci(k) -akimaci(k)) ; end toplamQ toplamP=0; for k=1:nt/2;toplamP=toplamP+akimgenlik(k)*gerilimgenlik(k)*0.5*cos (gerilimaci(k) -akimaci(k)); end toplamP Program hakk nda (a klamalar ilave et)

A klama: E er i aret (rne in i(t)) 0:T aral vektr iinde, nda, Ts (rnekleme zaman ) aral kla rneklenmi ve genlik de erleri (i(t)) bir

Y=[ Y1 , Y2 , Y3 ,....., Ym ]; m=rnekleme say s

olarak kaydedilmi ise ve bu rnekleme aral klar na kar gelen (t) zaman (ya da wt ekseni) elemanlar ; t=[ t 1 , t 2 , t 3 ,...., t m ] veya wt=[ (wt)1 , ( wt) 2 , ( wt) 3 ,...., (wt) m ] ise, fourier katsay lar ; an ! 1 m Yi sin( n * ( wt ) i ) ; n: incelenen harmonik say s m i !1 1 m bn ! Yi cos( n * ( wt ) i ) m i !1

119

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar e itlikleri kullan larak hesaplanabilir (ayr k zaman analizinde). Yukar da kullan lan t ve wt vektrleri aras nda; wt=2*pi*t/T ili kisi vard r. ifourier : Sembolik i lemlerde ters Fourier dn mnde kullan l r. A a da bu komutun e itli kullan l lar gsterilmi tir: Sembolik F(w) fonksiyonunun ters Fourier transformunu (f(x)) bulur. F fonksiyonu (default olarak) w'ya ba l d r. Dn m sonunda (default olarak) x ile de i en bir f fonksiyonu elde edilir. Di er bir ifade ile F=F(w) fonksiyonuna ifourier komutu kullan larak dn m uyguland nda f=f(x) elde edilir. f fonksiyonu F fonksiyonunun ters fourier dn mdr: 1 g iwx f (x ) ! F 1 {F(w)}= (17.22) F( w )e dw 2T  g (17.22) e itli inde (default de er olan) x yerine u koyarak F fonksiyonunun ters fourier dn mn bulur: 1 g iwu f (u ) ! F 1 {F(w)}= (17.23) F( w )e dw 2T  g (17.22) e itli inde (default de er olan) w yerine v ve (default de er olan) x yerine u koyarak F fonksiyonunun ters fourier dn mn bulur: 1 g ivu f (u ) ! F 1 {F(v)}= (17.24) F(v )e dv 2T  g

f=ifourier(F)

f=ifourier(F,u)

f=ifourier(F,v,u):

A a daki problemde e itli ters fourier dn m rnekleri verilmi tir:

Problem 17.12 a) f(w)= e w b) g(x)= e


2

/( 4*a 2 )

olmak zere, F 1 {F(w)}= f ( w )eixw dw


g g

x

olmak zere, F 1 {G(w)}= g( x )e itx dx


g

c) f(w)= 2e

w

 1 olmak zere, F
w 2 v

1

{F(w)}= f (w )eitw dw
g

d) f ( w , v) ! e

g sin v ; w reel bir say olmak zere, F 1 {F(w)}= f (w , v )e ivt dv v g

fonksiyonlar n n sembolik gsterimde ters Fourier dn mlerini bulunuz. zm a) >> syms w a real; >> f =exp(-w^2/(4*a^2)) ; >> F =ifourier(f) ; >> F = simple(F) ans= a*exp(-x^2*a^2)/pi^(1/2) b) >> syms x; >> g = exp(-abs(x)); >> ifourier(g) (enter) (enter) (enter) (enter)

(enter) (enter) (enter)

120

U ur Arifo lu ans= 1/(1+t^2)/pi c) >> syms w; >> f =2*exp(-abs(w))-1 ; >> simple(ifourier(f,t)) ans= -(-2+pi*Dirac(t))/(1+t^2)/pi

MATLAB7.0 Simulink ve mhendislik uygulamalar

(enter) (enter) (enter)

d) >> syms v w real; (enter) >> f = exp(-w^2*abs(v))*sin(v)/v (enter) >> ifourier(f,v,f) (enter) ans= -1/2*(-atan((t+1)/w^2)+atan(( -1+t)/w^2))/pi 17.19. MATLAB ortam nda seri a l m MATLAB ortam nda f(x) fonksiyonunun Taylor a l m iin taylor komutu kullan l r; taylor (f) : f(x) fonksiyonunu 5. dereceden Maclaurin polinomuna gre seriye aar.

>> syms x (enter) >> taylor(cos(exp(x)) (enter) ans = cos(1)-sin(1)*x+( -1/2*cos(1) -1/2*sin(1))*x^2 1/2*cos(1)*x^3+(5/24*sin(1) 1/4*cos(1))*x^4+(23/120*sin(1) -1/24*cos(1))*x^5 taylor(f,n): f(x) fonksiyonunu (n-1). dereceden Maclaurin polinomuna gre seriye aar. (enter) (enter) (enter)

>> syms x >> taylor(exp(x),4) ans = 1+x+1/2*x^2+1/6*x^3 >>pretty(ans) % grsel a l m elde etmek iin 2 3 1 + x + 1/2 x + 1/6 x

taylor (f, n, u) : f(x,u) fonksiyonunu uya gre (n-1). dereceden Maclaurin polinomuna gre kadar seriye aar. >> syms u v (enter) >> taylor(cos(u+v),u,4) (enter) ans = cos(v)-sin(v)*u-1/2*cos(v)*u^2+1/6*sin(v)*u^3 A a daki di er rnekler incelenmelidir: >> syms x >> f=1/(5+4*c os(x)); >> T=taylor(f,8) T = 1/9+2/81*x^2+5/1458*x^4+49/131220*x^6 >>pretty(T) 2 4 49 6 1/9 + 2/81 x + 5/1458 x + ------ x 131220 (enter) (enter) (enter)

121

U ur Arifo lu >> syms x >> g=exp(x*sin(x)) >> t=taylor(g,12,2); >> ezplot(t,[1,3])

MATLAB7.0 Simulink ve mhendislik uygulamalar (enter) (enter) (enter) (enter)

Yukar da g adl fonksiyonun Taylor serinin ilk 12 (s f r olmayan) eleman x=2 civar nda retilmekte ve izdirilmektedir. Elde edilen e ri ekil 17.11'de gsterilmi tir.

ekil 17.11

ekil 17.12

17.20. Basit fonksiyonlar n asimtot, maksimum, minimum ve bklme noktalar n n bulunmas f (x ) ! 3x 2  6 x  1 x2  x 3

fonksiyonu sembolik olarak MATLAB'e tan t ls n: >> >> >> >> >> syms x pay= 3*x^2+6*x -1; payda= x^2+x -3; f=pay/payda; ezplot(f) % f izdiriliyor (enter) (enter) (enter) (enter)

f fonksiyonunun de i imi ekil 17.12'de gsterilmi tir. E er f fonksiyonunun yatay asimtotu bulunmak istenirse pozitif sonsuzda limiti al nmal d r: >> limit(f,inf) ans = 3 % 3 de yatay asimtot vard r (enter)

E er f fonksiyonunun dikey asimtotu bulunmak istenirse payday 0 yapan kkler bulunmal d r:: >>roots=solve(payda) kokler = -1/2+1/2*13^(1/2) (enter)

122

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar -1/2-1/2*13^(1/2) >> kok1=double(roots(1)) % 1. kk say ya evriliyor (enter) kok1 = 1.3028 >> kok2=double(roots(2)) % 2. kk say ya evriliyor (enter) kok2 = -2.3028 >>ezplot(f); (enter) >>hold on % f e risi tutulup zerine yatay ve d ey asimtotlar izdirilecek % yatay asimtot izdiriliyor >>plot([-6 6],[3 3]) % [3 3] ile yatay y=3 e risi izdiriliyor (3 yatay asimtot idi) % d ey asimtot izdiriliyor >>plot(kok1*[1 1],[ -4 9]) % [1 1] ile kok1 de erinde d ey asimtor izdiriliyor ) >>plot(kok2*[1 1],[ -4 9]) % [1 1] ile kok1 de erinde d ey asimtor izdiriliyor ) >>title('yatay ve dusey asimtotlar'),hold off Yukar daki program sat rlar n n uygulanmas sonunda elde edilen e ri,yatay ve d ey asimtotlar ekil 17.13'de gsterilmi tir (yatay eksen s n r [-6 6], d ey eksen s n r [-4 9] al nm t r).

ekil 17.13

ekil 17.14

ekil 17.3'e bak ld nda x=2 ile x=3 aras nda bir yerde lokal maksimum, x=-4 ile x=-2 aras nda da lokal minimum oldu u grlmektedir. Maksimum ve minimum noktalar bulmak iin f fonksiyonunun birinci dereceden trevini almak gerekir: >> f1=diff(f) f1 = (6*x+6)/(x^2+ x-3)-(3*x^2+6*x -1)/(x^2+x-3)^2*(2*x+1) >> f1=simplify(f1) % f1 basitle tiriliyor f1 = -(3*x^2+16*x+17)/(x^2+x -3)^2 >> pretty(f1) % kokler daha iyi grlmek isteniyor 2 3 x + 16 x + 17 - ---------------- 2 2 (x + x - 3) >>krit_nokt=solve(f1) % f1 in kritik noktalar bulunuyor krit_nokt = -8/3-1/3*13^(1/2) % lokal minimum -8/3+1/3*13^(1/2) % lokal maksimum (enter)

(enter)

(enter)

(enter)

123

U ur Arifo lu >>krkok1=double(krit_nokt(1)) krkok1 = -3.8685 >>krkok2=double(krit_nokt(2)) krkok2 = -1.4648

MATLAB7.0 Simulink ve mhendislik uygulamalar % lokal minimum say ya evriliyor (enter) % lokal maksimum say ya evriliyor (enter)

f fonksiyonunun bklme noktas n bulmak iin ikinci trevini s f r yapan kkler bulunmal d r: >> f2=diff(diff(f)); % veya diff(f,2) komutu kullan labilir >> bukulme_nok= solve(f2); >> bukkok=double( bukulme_nok ) bukkok = -5.2635 -1.3682 - 0.8511i -1.3682 + 0.8511i (enter) (enter) (enter)

Yukar da elde edilen 3 kkten 2. ve 3. kkler kompleks oldu u iin ( ekil 17.13'de her iki eksen de reel) bu problemde de erlendirmeye al nmayacakt r. Yaln zca bukkok(1)ile ilgilenilecektir.A a daki komut sat rlar ile maksimum,minimum ve bklme noktalar ekil zerinde gsterilmektedir: >>ezplot(f) >>hold on >>plot(krkok1,double(subs(f,krkok1)),'o') >>text(-4.5,3.2,'lokal minimum') >>plot(krkok2,double(subs(f,krkok2)),'o') >>text(-2.5,2,'lokal maksimum') >>plot(bukkok(1),double(subs(f,bukkok(1))),'*') >>text(-6,2,'bukulme noktasi') >>hold off (enter) (enter) (enter) (enter) (enter) (enter) (enter) (enter) (enter)

Yukar daki program sat rlar n n al t r lmas sonunda ekil 17.14'de verilen grnt elde edilir. 17.21. MATLAB ortam nda serilerin toplanmas Sembolik ifadeler ieren matematiksel toplama i lemlerinde symsum komutu kullan l r. symsum(f,a,b) : y
5 1

f adl sembolik fonksiyonun [a b] aral

nda matematiksel toplam n gerekle tirir.

f = n 2 i lemi MATLAB ortam nda yap ls n: >>syms n >>symsum(n*n,1,5) ans = 55 (enter) (enter)

f=
1

0.1n 1 i lemi MATLAB ortam nda yap ls n: (n  1)! (enter) (enter) (enter)

>>syms n >>symsum((0 .1)^(n-1)/gamma(n),1,5) ans = 265241/240000 >>double(ans)

124

U ur Arifo lu ans = 1.1052 y f = k 3 i lemi MATLAB ortam nda yap ls n:


1 n

MATLAB7.0 Simulink ve mhendislik uygulamalar

>> syms n k >> symsum(k^3,1,n) ans = 1/4*(n+1)^4 -1/2*(n+1)^3+1/4*(n+1 )^2 >> factor(ans) % sadele tirme yap l yor ans = 1/4*n^2*(n+1)^2 1 1 f = 1   .... i lemi MATLAB ortam nda yap ls n; 2 2 32 >> syms r >> symsum(1/r^2,1,inf) ans = 1/6*pi^2 >>double(ans) ans = 1.6449 f = 1  x  x 2  .... i lemi MATLAB ortam nda yap ls n: ( x 1 ) >> syms x k >> symsum(x^k,k,0,inf) ans= -1/(x-1)

(enter) (enter) (enter)

(enter) (enter) (enter)

(enter) (enter)

MATLAB ortam nda tan mlanm matematiksel fonksiyonlar bulunmaktad r. Bunlardan baz lar ve MATLAB komut kar l klar a a da verilmi tir: y ' + ,gamma' fonksiyonu: 1 1 1 ^ ( k ) ! 1    ...   ... 2! 3! r! A a daki MATLAB sat r k= g iin gamma fonksiyonunu hesaplar: >> syms r >> symsum((1/gamma(r),1,inf) ans = exp(1) >> double(ans) ans = 2.7183 y J ,bessel fonksiyonu: R!0
R!n R

(enter) (enter) (enter)

J 0 (x ) ! J n (x ) ! J R ( x) !
g g

(1) k x 2 k ! 0 ( k! ) 2
g

2k

(1) k x k ! 0 k! ( n  k )! 2

2k  n

(1) k x k! +(k  R  1)! 2 k !0

2 k R

A a daki MATLAB sat r R ! 0 ve k=2 iin bessel fonksiyonunu hesaplar:

125

U ur Arifo lu >> syms r >> besseli (0, 2) ans = 2.2796

MATLAB7.0 Simulink ve mhendislik uygulamalar (enter) (enter)

A a daki MATLAB sat r R ! n ve k=2 iin bessel fonksiyonunu hesaplar: >> besseli(n,2) (enter) ans = besseli(n,2) >> double(ans) (enter) ans = 1.5906 A a daki MATLAB sat rlar bessel fonksiyonunun integralini ( J 1 (x )dx !  J 0 ( x ) ) hesaplar: >> syms x (enter) >>int(besselj(1,x)) % veya int(besselj(1,x) ,x) ans = -besselj(0,x) Di er bir 'bessel' integrali a a da verilmi tir: >> syms z >> a=int(besselj(1,z)^2,0,1) a= 1/12*hypergeom([3/2, 3/2],[2, 5/2, 3], -1) >> double(a) ans = 0.0717 (enter) (enter) (enter)

(enter)

Hat rlatma: MATLAB ortam nda U(t) birim basamak fonksiyonunu tan mlamak iin Symbolic Heaviside komutu tan mlanm t r. rne in birim basamak fonksiyonu iin; 1 , x  x o " 0 u (x  x o ) ! 0 , x  x o 0 >>vpa(Heaviside(2)) ans= 1. ( enter)

Toolbox iinde

elde edilir. rne in, 4 ile 8 aras nda U(t) birim basamak fonksiyonunun integrali al nmak istenirse; >int(Heaviside(x), -4,8) ans= 8 ( enter)

elde edilir. Di er bir rnekte ise a a da verilen f(x) fonksiyonunun Fourier transformu bulunmak istensin. f(x) yap s paral olarak U(t) yap s na uydu u iin tm x de erleri iin f(x)=U(t)* e 2 x yaz labilir: 2 x , x u 0 e f ( x) ! 0, x 0 >>syms x >>fourier(Heaviside(x)*exp( -2*x)) ( enter) ( enter)

126

U ur Arifo lu ans = 1/(2+i*w)

MATLAB7.0 Simulink ve mhendislik uygulamalar

Hat rlatma: MATLAB ortam nda H( x ) ; dirac delta (ya da impulse) fonksiyonunu tan mlamak iin Symbolic Toolbox iinde Dirac komutu tan mlanm t r. Bilindi i gibi dirac fonksiyonu iin; H( x  x o ) ! 0 ;
g g g

x { xo

f ( x )H( x  x o )dx ! f ( x o )

yaz labilir. E er xin tm de erleri iin f(x)=1 ise yukar daki integral;
g

H( x  x o )dx ! 1
g

olacakt r.

g

H( x  x o )dx ! 1 integrali MATLAB ortam nda yap l rsa; ( enter) ( enter)

>>syms x >>int(Dirac(x), -inf, inf ) ans= 1.

elde edilir. Birim basamak fonksiyonunun trevi MATLAB ortam nda al n rsa; >>diff(Heaviside(x)) ans= Dirac(x) ( enter)

bulunur. Birim basamak fonksiyonunun Fourier transformu MATLAB ortam nda yle yaz labilir: >>fourier(sym(Heaviside(x))) ans = pi*Dirac(w) -i/w ( enter)

Hat rlatma: MATLAB ortam nda signum(x) i aret fonksiyonunu tan mlamak iin Symbolic Toolbox iinde signum komutu tan mlanm t r. Bilindi i gibi sgn(x) fonksiyonu iin; 1, x " 0 sgn( x ) ! 0, x ! 0 1, x 0  yaz labilir. >>vpa(signum(4)) ans= 1. >> syms x >>int(signum(x) ) ans = signum(x)*x >>int(signum(x), -5, 12 ) ans = 7 >> syms x >>int(Heaviside(x),0,t )
D C

( enter) ( enter) ( enter) ( enter) ( enter) ( enter)

127

U ur Arifo lu Heaviside(t)*t 17.23. Fonksiyon hesap makinas Command Window ortam nda; >> funtool

MATLAB7.0 Simulink ve mhendislik uygulamalar

( enter)

i lemi yap ld nda kullan c n n kar s na ekil 17.17'de grlen 'fonksiyon hesap makinas ' kar. Bu pencerede f, g, x, a adlar nda 4 adet ekran ve 28 adet buton bulunur. 4 sat r halinde yerle tirilen butonlar n ilk sat r nda kontrol butonlar yer al r.Bu butonlar yard m ile f fonksiyonuna ili kin e itli dn mler yap l r. kinci sat rda yer alan tu lar kullan larak, a sabiti ile f fonksiyonu aras nda e itli i lemler gerekle tirilir. nc sat rda yer alan tu lar kullan larak f ve g fonksiyonu aras nda dn m i lemleri yap l r. 'Fonksiyon hesap makinas ' n n ekran ve butonlar n grevleri a a da gsterilmi tir:

ekil 17.17 f g x a df/dx int f simple f num f den f 1/f finv f+a f-a f*a f/a f fonksiyonu (klavye yard m ile) bu ekrana yaz l r. g fonksiyonu (klavye yard m ile) bu ekrana yaz l r. f ve g de i imlerinin de i im aral (klavye yard m ile) girilir. f fonksiyonunu de i tirmek iin kullan lacak sabit de er (klavye ile) buraya yaz l r. f ekran na yaz lan fonksiyonunun trevin al r. f ekran na yaz lan fonksiyonunun integralini al r (hesaplanan fonksiyonun kapal formda gsterimi yoksa hata verebilir). f ekran na yaz lan fonksiyonu (mmknse) basitle tirir. f in pay fonksiyonunu gsterir. f in payda fonksiyonunu gsterir. f fonksiyonunun pay ve paydas n n yerini de i tirir f fonksiyonunun tersini bulur (hesaplanan fonksiyonun kapal formda gsterimi yoksa hata verebilir). f fonksiyonuna a say s n ekler. f fonksiyonundan a say s n kar r. f fonksiyonu ile a say s n arpar. f fonksiyonunu a say s na bler.

: : : : : : : : : : : : : : :

128

U ur Arifo lu MATLAB7.0 Simulink ve mhendislik uygulamalar f^a : f fonksiyonunun a.kuvvetini hesaplar. f(x+a) : f fonksiyonunda x yerine x+a koyar. f(x*a) : f fonksiyonunda x yerine x*a koyar. f+g : f fonksiyonu ile g fonksiyonunu toplar ve sonucu f ekran na yazar. f-g : f fonksiyonundan g fonksiyonunu kar r ve sonucu f ekran na yazar. f*g : f fonksiyonu ile g fonksiyonunu arpar ve sonucu f ekran na yazar. f/g : f fonksiyonunu g fonksiyonuna bler ve sonucu f ekran na yazar. g=f : f fonksiyonunu g ekran na yazar. swap : f fonksiyonunu g ekran na, g fonksiyonunu f ekran na yazar. Insert : f ekran na yaz lan en son fonksiyonu, fonksiyon listesinin en sonuna ilave eder (kullan c n n f ekran na yazd her fonksiyon arka planda saklan r.Bundan ama yaz lan fonksiyonlar n daha sonra tekrar a r lma ihtimalidir) Cycle : f ekran nda yaz lan fonksiyon ile (daha nce kullan c taraf ndan bu ekrana yaz lan ve fonksiyon listesine kaydedilen) fonksiyon listesindeki bir sonraki fonksiyonu yer de i tirir. Delete : Fonksiyon listesinde yer alan tm fonksiyonlar siler. Reset : 4 adet ekran grntsn default ayarlara geri getirir. Help : funtool ile ilgili help ortam n a r r. Demo : Fonksiyon hesap makinas nda gerekle en grntleri 4 adet ekranda k sa aral klarla gsterir. Close : funtool komutu ile a lan pencereyi kapat r. 17.24. zel fonksiyonlar listesi MATLAB arka plan nda sakl baz zel fonksiyonlar bulunmaktad r. Bu fonksiyonlara ula mak iin; >> mfunlist ('enter')

komutu uygulanmal d r. A a da bu fonksiyonlarla ilgili a klamalar verilmi tir: Fonksiyon ismi Bernoulli say lar ve polinomlar Fonksiyonun tan m e
t xt

MATLAB komutu bernoulli(n) bernoulli(n,t) BesselJ(v,x) BesselY(v,x) BesselI(v,x) BesselK(v,x)

Ko ullar nu0 0 t 2 T

e 1

! B n ( x)
n !0

n 1

n!

Bessel fonksiyonlar

Beta fonksiyonu

BesselI, BesselJ ( birinci dereceden Bessel fonksiyonlar ) BesselK,BesselY ( ikinci dereceden Bessel fonksiyonlar ) + ( x ).+ ( y) B( x , y ) ! + ( x , y) m m! ! n n! (m!n! ) +(m  1) ! +(n 41)+(m  n  1) Birinci,ikinci ve nc dereceden Legendre'nin tm eliptik integraller Birinci,ikinci ve nc dereceden tamamlay c modll, birle ik tm eliptik integraller

v; reel say

Beta(x,y)

Binom katsay lar

Binomial(m,n)

Tm eliptik integraller

EllipticK(k) EllipticE(k) EllipticPi(a,k) EllipticCK(k) EllipticCE(k) EllipticCPi(a,k)

Tamamlay c (complementary) modll tm eliptik

a; reel say a g k; reel say 0 k 1 a; reel say g a g k; reel say


g

129

U ur Arifo lu integraller erfc(z ) ! Tamamlay c hata fonksiyonlar ve bunlar n iteratif integralleri 2 T


g z

MATLAB7.0 Simulink ve mhendislik uygulamalar 0 k 1 e 2 T


t 2

dt ! 1  erf (z )
2

erfc(1, z) !
g z

e z

erfc(z) erfc(n,z)

n>0

erfc(n , z ) ! erfc(n  1, z )dt Dawson integrali Digamma fonksiyonu Dilogaritmik integral Hata fonksiyonu Euler say ve polinomlar F(x ) ! e  x e  t dt
0
2 x 2

dawson(x) Psi(x) dilog(x) erf(z) euler(n) euler(n,z) nu0 t T / 2 x>1

= ( x) !

d dt

ln(+ (x )) !
x

+ ' (x ) +( x )

f (x) ! erf (z ) !

ln( t) dt 1 1 t 2
z

dt T0 (Euler say lar iin fonksiyon


E

t2

retir)

g 1 ! ch ( t ) n !0

tn n!

Ei(n, z) ! Eksponansiyel integraller Fresnel'in sin ve cos integralleri Ei(x) !

g e  zt 1 x

tn

dt Ei(n,z) Ei(x) nu0 Reel z>0

et  dt g t

x T ( x ) ! cos( t 2 )dt 2 0

T ( x ) ! sin( t 2 )dt 2 0
g 0

Gamma fonksiyonu Harmonik fonksiyonu

+(z ) ! t z 1 e  t dt h (n ) ! 1 ! = (n  1)  k k !1
z sinh( t ) 0 n

hi (z) !

Hiperbolik sin ve cos integralleri

cosh( t )  1 dt hi(z ) ! K  ln(z)  t 0


g i !1 m k !0

Genelle tirilmi hipergeometrik fonksiyonlar

+( n i  k ) k z +( n i ) F( n , d , z ) ! + (d i  k ) k! i !1 + (d i ) (j ve m; s ras ile n ve d iindeki terim say s d r) Legendre'nin birinci, ikinci ve nc dereceden tamamlanmam eliptik

Tamamlanmam eliptik integraller

GF

H Q

FresnelC(x) FresnelS(x)

GAMMA(z) harmonic(n) n>0

t
z

dt Shi(z) Chi(z)

hypergeom(n,d,x) n=[n1,n2,..] d=[d1,d2,..]

n1,n2,.. reel say lard r. d1,d2,.. reel ve negatif olmayan say lard r. 0 x g a; reel say g a g

EllipticF(x,k) EllipticE(x,k)

130

U ur Arifo lu integralleri

MATLAB7.0 Simulink ve mhendislik uygulamalar ElipticPi(x,a,k) k; reel say 0 k 1

Tamamlanmam gamma fonksiyonu Gamma fonksiyonunun logaritmas Logaritmik integral Poligamma fonksiyonu Kayd r lm sin integrali

+(E, z) ! e  t t a 1dt
z

GAMMA(z1,z2) lnGAMMA(z) x>1

ln +( z) ! ln(+(z))
Li( x ) !
x dt ! i(ln x ) 0 ln t
R

Li(x)

dn = ( z) dz = (z ) : Digamma fonksiyonu = ( n ) ( z) ! si (z ) ! i(z ) 


U

MATLAB arka plan nda ortogonal polinomlara ili kin haz r komutlar da yer al r. Bu tr polinomlara ula mak iin kullan c n n Extended Symbolic Math Toolbox 'a sahip olmas gerekir. Bu ara kutusu bilgisayarda ykl ise; >>maple('with','orthopoly') ('enter')

komutu kullan larak bu fonksiyonlara ula labilir. A a da ortogonal polinomlara ili kin bilgiler yer almaktad r. Komutlar iinde yer alan (tm ko ullarda) n; negatif olmayan tam say , x ise reel bir say d r. Polinomlar Gegenbauer Hermite Laguerre Genelle tirilmi Laguerre Legendre Jacobi Birinci ve ikinci dereceden Chebyshev MATLAB komutu G(n,a,x) H(n,x) L(n,x) L(n,a,x) P(n,x) P(n,a,b,x) a ve b, oranl olmayan bir ifade ya da -1 den byk oranl say lard r a, oranl olmayan bir ifade ya da -1 den byk oranl bir say d r Ko ullar a, oranl olmayan bir ifade ya da -1/2 den byk oranl bir say d r

17.25. Di er sembolik ara kutusu komutlar A a da di er baz sembolik ara kutusu komutlar ve uygulamalar gsterilmi tir: P=poly2sym(A) : Katsay lar A vektr ile verilen polinomo sembolik olarak yazar. Default olarak x kullan r. Katsay lar A vektr ile verilen polinomo s harfini kullanarak olu turur. (enter) (enter)

P=poly2sym(A,s) : >>A=[2 5 -3 1]; >>P=poly(A) P = 2*x^3+5*x^2 -3*x+1

TS

Psi(n,z) Ssi(z)

nu0

T 2

T(n,x) U(n,x)

131

U ur Arifo lu >>syms s; >>P=poly(A,s) P = 2*s^3+5*s^2 -3*s+1 P=sym2poly(s) :

MATLAB7.0 Simulink ve mhendislik uygulamalar (enter) (enter)

S adl sembolik polinomun katsay lar n P adl vektre atar.

>>syms x u v; >>sym2poly(x^3 - 2*x - 5) return 1 0 -2 -5 ccode(f) : f ifadesinin C programlama dili kod kar l n yazar.

>> syms x; (enter) >> f=log(1+x); (enter) >> ccode(taylor(f)) (enter) ans= t0 = x-x*x/2.0+x*x*x/3.0 -x*x*x*x/4.0+x*x*x*x*x/5.0; ezcontour(f) : f sembolik fonksiyonunun x=[-2 T 2 T ] ve y=[-2 T 2 T ] aral nda izer

ezcontour(f,[xmin xmax],[ymin ymax]):

x ve y gibi iki de i kenli f sembolik fonksiyonunun e ykselti e rilerini x=[xmin xmax] ve y=[ymin ymax] aral nda izer.

>> syms x y; (enter) >> f=3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3... - y.^5).*exp( -x.^2-y.^2)- 1/3*exp(-(x+1).^2 - y.^2); (enter) >> ezcontour(f,[ -3,3],[-3 3]) % izim gsterilmemi tir (enter) ezmeshc(f,[xmin,xmax,ymin ymax]): x ve y gibi iki de i kenli f sembolik fonksiyonunu ve e ykselti e rilerini x=[xmin xmax] ve y=[ymin ymax] aral nda izer.

rnek olarak; z=f(x,y)= y/( 1  x 2  y 2 ) e risi , -5<x<5 ve -8<y<8 aral nda izdirilsin: >> syms x y; >> ezmeshc(y/(1+x^2+y^2),[ -5,5,-8,8]); % izim gsterilmemi tir ezplot3(x,y,z,[tmin,tmax]):

(enter) (enter)

x(t), y(t) ve z(t) f sembolik fonksiyonlar n kullanarak [tmin tmax] aral nda 3 boyutlu parametrik e ri izer. nda izdiren komut sat r verilmi tir: (enter) (enter)

A a da; x=sin(t),y=cos(t) ve z=t parametrik e risini ,t=[0,6*pi] aral >> syms t; >> ezplot3('sin(t)','cos(t)','t',[0,6*pi]) ;

% izim gsterilmemi tir

ezpolar(f,[a,b]):

f( U ) polar sembolik fonksiyonunu [a b]= [ U min U max] aral nda izer. Default U aral [0 2 T ] dir. Bu aral k iin [ a b] yazmaya gerek yoktur. (enter) (enter)

>> syms t; >> ezpolar(1+cos(t),[ -pi pi]); % izim gsterilmemi tir J=jordan(A):

A matrisinin Jordan kanonik (normal) formunu bulur. Burada A matrisi sembolik ya da say sal olabilir.

132

U ur Arifo lu [V,J]=jordan(A):

MATLAB7.0 Simulink ve mhendislik uygulamalar Bu komut ile hem J (kanonik form) hem de benzerlik dn m matrisi olan V hesaplan r. Vnin kolonlar genelle tirilmi eigen vektrleridir. (V/A*V=J) (enter) (enter)

>>A = [1 -3 -2; -1 1 -1; 2 4 5] ; >>[V,J] = jordan(A) return A = 1 -3 -2 -1 1 -1 2 4 5 V = -1 -1 1 0 -1 0 1 2 0 J = 3 0 0 0 2 1 0 0 2 [Y]=lambertw(x)

Bu komut, Lambertin w fonksiyonunu x iin hesaplar. x say sal olabilece i gibi sembolik de olabilir.

Lambert,in w s , we w ! x e itli ini zer. Burada w; xin bir fonksiyonudur. >>lambertw([0 -exp(-1); pi 1]); ans = 0 -1.0000 + 0.0000i 1.0737 0.5671 >>syms x y ; >>lambertw([0 x;1 y]) return [ 0, lambertw(x)] [ lambertw(1), lambertw(y)] Z=null(A) A matrisinin bo uzay n olu turur. (enter) (enter) (enter)

(enter) (enter)

>> A=[2 5 9 5; -3 1 8 -2;7 9 0 8]; >> B=null(A) B = -0.8171 0.1849 -0.2028 0.5070 [Pay Payda]=numden(A):

A ifadesinin pay n Paya, paydas n Paydaya atar. A; say olabilece i gibi sembolik bir ifade de olabilir. (enter) (enter)

>>A=3/5; >>[Pay Payda]=numden(sym(A)) Pay = 3 Payda = 5 >>B=x/y+y/x; >>[Pay Payda]=n umden(sym(B) ) Pay = x^2+y^2 Payda =

(enter) (enter)

133

U ur Arifo lu y*x rank(A):

MATLAB7.0 Simulink ve mhendislik uygulamalar

A matrisinin rank n hesaplar. A matrisi say lardan olu abilece i gibi sembolik ifadelerden de olu abilir. (enter) (enter) (enter)

>> syms x y; >> A=[x 2*x >> rank A ans= 3 Y=zeta(w):

3*y;x y

2*x;3*y

2*y

3*x];

w elemanlar nda zeta fonksiyonunu hesaplar. w say sal bir matris olabilece i gibi sembolik bir matris de olabilir.

Zeta fonksiyonu a a da verilmi tir:


^!
g

1 k
w

! 1

1 2
w

1 3
w

 ... 

1 rw

 ...

k !1

Y=zeta(w,n):

Zeta(w) fonksiyonunun n. dereceden trevini hesaplar. (enter) (enter)

>>zeta(1.5) ans = 2.6124 >>syms x y; zeta([x 2;4 x+y]) ans = [ zeta(x), 1/6*pi^2] [ 1/90*pi^4, zeta(x+y)] 17.26. Taylor serisi hesap makinas Kullan c MATLAB Command Window ortam nda; >>taylortool komutunu uygulad (enter)

nda kar s na ekil 17.18de verilen grnt kar.

134

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

ekil 17.17 ekil 17.17de gsterilen Taylor serisi hesap makines ekran nda, f(x) iadesinin sa taraf na yaz lan fonksiyonun, N ifadesinin sa taraf na yaz lan say derecesinden Taylor serisine a lm hali TN (x ) in sa taraf ndaki bo lu a yaz l r. Fonksiyon x=a noktas ivar nda seriye a l r. ekil 17.17de f (x ) ! e x*sin( x ) fonksiyonu a=0 civarnda 8. dereceden Taylor serinine a lm t r. Elde edilen fonksiyon ise TN (x ) ifadesinin sa taraf nda gsterilmi ve grafik ekran nda ise izdirilmi tir. x aral ise [-2* T ; 2* T ] dir.

135

U ur Arifo lu

MATLAB7.0 Simulink ve mhendislik uygulamalar

136

You might also like