Professional Documents
Culture Documents
nalDKMEN
GIRI
MATLAB yksek seviyeli bir teknik programlama dili olmasnn yannda algoritma gelitirme,
verilerin grselletirilmesi,veri analizi ve saysal hesaplamalar iin etkileimli bir yazlm
platformu sunar. MATLAB ile teknik hesaplama problemlerini, C, C++ ve Fortran gibi
geleneksel programlama dillerinden daha hzl bir ekilde zebilirsiniz. MATLAB yazlmnn
birok alanda uygulamalar vardr. erdii toolbox ad verilen aralar araclyla saysal
iaret ileme, kontrol tasarm, test ve lm, finansal modelleme ve analiz, haberleme gibi
birok alanda kullanlabilmektedir. MATLAB programlama paketi MATHWORKS firmas
(http://www.mathworks.com) tarafndan gelitirilmi ve gnmzde 14.03 srm kullanma
sunulmutur.
Ana zellikleri
Teknik hesaplamalar iin yksek seviyeli bir dil,
Kodlarn ,dosyalarn ve verilerin dzenlenmesi iin bir gelitirme ortam,
teratif tasarm ve problem zme yntemleri iin interaktif aralar,
Lineer cebir, istatistik, Fourier Analizi, Filtreleme, Optimizasyon, Saysal trev ve integral
iin matematik fonksiyonlar,
Verilerin grselletirilmesi iin 2 ve 3 boyutlu grafik aralar,
Grafik arayzler tasarlamak iin aralar,
MATLABin kullanm olmayan bir mhendislik alan hemen hemen yok gibidir.
Ara Kutular
MATLAB n kullanlrl ve ok ynll, uygulamalara zg eitli ara-kutular eklemekle
gelitirilebilir. Ara kutular, eitli bilimsel alan ve konularda yazlan MATLAB fonksiyon
dosyalarndan oluurlar. Aada ksaca aklanan, deiik bilim dallar ile ilgili olarak
yazlm hazr ara-kutular yer almaktadr.
Signal Processing Toolbox (Sinyal leme Ara kutusu ): 1-boyutlu ve 2-boyutlu saysal
sinyal ileme (zaman serilerinin analizi gibi ) ile ilgili fonksiyonlardan olumaktadr. Ayrca,
saysal filtreler iin gelitirilen analiz ve tasarm fonksiyonlar ile g spektrumu analizine
ilikin fonksiyonlar da iermektedir.
Control Systems Toolbox (Kontrol Sistemleri Ara kutusu ): Durum uzay (state space)
tekniklerini kullanarak kontrol mhendislii ve sistemler teorisi ile ilgili fonksiyonlardan
olumaktadr.
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
System Idendification Toolbox (Sistem Tanmlama Ara kutusu ): Parametrik
modelleme ve sistem tanmlama ile ilgili fonksiyonlardan olumaktadr.
Neural Network Toolbox (Yapay Sinir Alar Ara kutusu ): Yapay sinir alar iin
tasarm ve benzetim (simlasyon ) fonksiyonlarndan olumaktadr. Bu fonksiyonlar birka
kategoriye ayrlrlar. Bunlar;
1 ) A benzetimi iin transfer fonksiyonlarnn belirtilmesi,
2 ) A parametrelerini gncelletirmek iin kurallarn belirtilmesi,
3 ) Veriler zerinde an ilem yapabilmesi iin fonksiyonlarn belirtilmesi. Baz fonksiyonlar,
lineer ve nonlineer alarn dorudan tasarm iin kullanlabilirler.
Spline Toolbox (Oluum Ara kutusu ): Oluumlar ile ilgili M-dosyalarndan olumaktadr.
Oluum ara kutusu fonksiyonel modellemede kullanlmaktadr. Erilerin modellenmesi,
verilere gre eri uydurulmas, fonksiyonel denklemlerin zlmesi vb. iin olduka
kullanldr.
Robust-Control Toolbox (Robot Kontrol Ara kutusu ): Robot kontrol sistemleri tasarm
ile ilgili fonksiyonlardan olumaktadr.
m-Analysis and Synthesis Toolbox (p.Analiz ve Sentez Ara kutusu ): m -Analiz ve
sentez tekniklerinin kullanlarak robot ve lineer kontrol sistemlerinin incelenmesi ve
tasarlanmas iin yazlm fonksiyonlardan olumaktadr.
MATLAB LE ALIMAK
MATLAB gznzde canlandrmann en kolay yolu, onu tm niteliklerle donatlm bir
hesap makinesi gibi dnmektir. Basit bir hesap makinesinin yapt toplama, karma,
arpma ve blmeden ibaret drt ilemi kolaylkla yapar. Bunlara ilaveten teknik bir hesap
makinesinde bulunan karmak saylar, karekk, ve st alma ve sins, kosins ve tanjant
gibi geometrik ilemlerde kolaylkla yrtlr. Bunun dnda, programlanabilir bir hesap
makinesinde olduu gibi veri saklama ve geri ykleme gibi ilemler ile nemli bir sorunun
hesaplamasn otomatik hale getirmek iin komut satrlarn oluturabilir, icra edebilir veya
saklayabiliriz. Ayrca ok gl bir hesap makinesinde olduu gibi ok eitli yollardan veri
grafiklerinin oluturulmas,matris aritmetiinin icras, polinomlarn incelenmesi, fonksiyonlarn
integre edilmesi, denklemlerin sembolik olarak kullanlmas v.b. ilemlerin yaplmasn
olanakl klar.
Gerekte, MATLAB ok daha fazla zelliklere sahip olup, herhangi bir hesap makinesinden
daha ok ynldr. MATLAB matematik hesaplamalar yapmaya yarayan bir aratr.
FORTRAN, BASIC, PASCAL, C gibi bilgisayar programlama dillere gre kullanm daha
kolay ve daha gelikin niteliklere sahip bir programlama dilidir. Gl grafik yetenekleri
sayesinde verilerin grntlenmesi ve canlandrlmas iin zengin bir ortam salar. MATLAB,
zgn problemlerin zmne grsel yaklam sunan grafik kullanc ara birimleri (GUIS )
oluturulmasna olanak salayan bir uygulama gelitirme platformudur. Btn bunlara
ilaveten MATLAB Toolbox`lar ad altnda zgn uygulama alanlar iin problem zc ara
takmlar sunar. rnein MATLAB renci basks Control Sistem Toolbox, Signal
2
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
Processing Toolbox ve Symbolic Math Toolbox gibi nemli toolbox iermektedir. Ayrca
zgn problemle uraanlar kendi Toolbox`larn da oluturabilirler.
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
komutunu kulann.
Bu komut kullanmda olan MAT dosyasn alt dizininde veya MATLAB dosyanzda
MATLAB.mat diye yapar veya stne yazar. Sonra MATLAB.mat da yer alan alma alann
yeniden arma ihtiyac duyduunuzda
>> load
komutunu girmelisiniz.
MATLAB.mat haricinde baka bir isim ile de deikenleri saklayabilirsiniz. rnein;
>>save dosyam
Bunun yannda
>> load dosyam
komutu ile de saklam olduunuz deikenleri geri arabilirsiniz.
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
Open M-File: Bir dosya seebileiniz pencere ekrana getirerek dosya ad girilmesini veya
gereken dosyann seilmesini ister ve ardndan seilen yada ismi yazlan dosya metin
dzenleyici program altrlarak alr.
Open Selected: Komut penceresinde seilerek belirtilen bir M-dosyasn varsaylan
dzenleyiciyi altrarak aar.
Save Workspace As...: alma alann kaydetmek iin bir iletiim kutusu grntlenir, yeni
bir dosya ad girmeniz gerekmektedir.
Run M-File: Dosya Yneticisinin altr... komutuna benzer. Bir M-dosyas ad girmeniz
veya semeniz iin bir iletiim kutusu grntlenir ve belirtilen M-dosyasn altrr.
Look for Selected: MATLABin lookfor komutunu altrr. MATLABin arama yolunda
bulunan tm M-dosyalarnn iindeki yardm metinlerinin ilk aklama satrlarn tarayarak
komut penceresi iinde seilen katar aratrr ve sonucu ekranda grntler.
Print...: Komut Penceresinde seilen metni o an ykl bulunan bir yazcya dker. Eer
seilen metin yoksa, tm MATLAB oturumu boyunca girilen metni yazdrr.
Printer Setup...: O andaki yazc ayarlarn ve seeneklerini (renk tonu gibi ) deitirmek iin
bir iletiim kutusunu grntler.
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
Enable/Disable Background Process: Artalan ilemlerinin olup olmamas arasnda geii
salar.
Font...: Yaz fontlar iletiim kutusunu aarak buradan komut penceresinde kullanlan font
ve artalan rengini seebiliriz.
MATLAB Deikenleri:
MATLAB da, herhangi bir tip tanmlamas veya boyut ifadesine gerek yoktur. MATLAB, yeni
bir deiken ismi ile karlatnda, otomatik olarak ans isminde bir deiken oluturur ve
uygun bir bellek miktar ayrr. Eer deiken zaten varsa, MATLAB gerekli bir bellek
ayrdnda ierii deiir. rnein,
ogrenci_say=51
ogrenci_say diye isimlendirilen 1x1 matrisi olutur ve 51i ykler.
Deiken isimleri; bir harfden veya alt izgiden oluur.MATLAB, sadece deiken isminin ilk
31 karakterini kullanr. MATLAB, byk ve kk harfe duyarldr, byk harf ile kk harfi
ayrdeder. A ve a deikenleri ayn deildir.
Saylar: MATLABda saylar yaygn olarak kullanlan onluk tabanda ifade edilirler. Bunun
yansra onluk tabanda stel olarak veya i veya j olarak kompleks say biimlerinde de ifade
edilebilirler. rnek olarak,
3, -99, 0.0001
9.6397238, 1.60210e-20, 6.02252e+23
1i, 3.141592j
saylar gsterilebilir.
Saylarn duyarlln belirtmek iin kullanlan eps says onluk tabanda 16 basamakl olarak
gsterilmektedir.
Operatrler(saysal ilemciler ):
Matematiksel ifadeleri oluturmak iin operatrler ve nceden tanmlanm sembolleri
kullanabilirsiniz. Operatrler zetle unlardr:
ki skaler say arasndaki aritmetiksel ilemler Bir deyim aada olduu gibi deer atanarak
belli bir deer iinde saklanabilir.
x=a + b
Bu ifadede a ve b nin topland ve x deikeni iinde sakland belirtilmektedir. Bu atama
ilemini; a iindeki bir deerin b iindeki bir deerle toplanarak bu toplamn x deikenine
atanaca eklinde yorumlamak mmkndr.
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
Eer atama ilemi bu ekilde yorumlanacak olursa, aada verilen bir MATLAB bildirimi de
geerli olur.
say = say + 1;
Ak bir ekilde bu bildirim geerli bir cebirsel bildirim olamaz, fakat MATLAB iindeki 1 in
say iindeki bir deere ilave edileceini ve sonucun tekrar say iinde saklanacan belirtir.
Sonuta say iindeki deerin her seferinde 1 artacann belirtilmesine denktir.
Belli bir deiken tanmlamadan girilen deyimlerin icrasnda ans isimli bir deiken iinde
otomatik olarak saklanr. Her defasnda ans iindeki deer bir ncekinin yerini alr. Burada
ans ngilizce cevap anlamna gelen answer kelimesinin ksaltlm eklidir.
Matrislerle yaplan ilemlerde blme ilemi iin iki farkl sembol kullanlmaktadr. Bunun
yannda eer saylar skaler ise iki blme ileminin sonucu da ayn deeri gsterecektir.
rnein 3/2 ile 2\3 ifadelerinin sonular ayn olup 1.5 dir.
Aritmetiksel lemlerde ncelik Durumu: Tek bir aritmetiksel durum iinde birden fazla durum
bir arada bulunabildiine gre hangi ilemin ncelik hakkna sahip olunduunun bilinmesi
yerinde olacaktr.
Disp FONKSYONU
MATLAB da bir matematiksel ifadeyi argman olarak alp, bu ifadenin sonucunu ekrana
aktaran bir fonksiyon mevcuttur bu da disp fonksiyonudur. Ancak disp fonksiyonunu
kullanmakszn sadece ifadeyi yazarsak ta sonucu grebiliriz.
2+8
ans = 10
disp(2+8 )
10
, SEMBOL
Dizi ya da matris elemanlar arasna ayra olarak yerletirilir. Bu sembol yerine boluk
sembol kullanlmas da ayn etkiyi salar.
[5,7]
ans = 5 7
disp( [ 3 , 4 ] )
3 4
disp( [3 4] )
34
Karakter tr veriler ' sembolleri iine alnr. disp fonksiyonu ile aadaki gibi
grntlenirse bitiik olarak ekrana aktarlrlar.
7
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
disp([3 4])
34
disp(['a' 'c'])
ac
; SEMBOL
; Sembol, aralarnda yerletirildii iki skaleri iki farkl satra yazar.
disp([4;8])
4
8
; sembol ayrca ilerde grlecei gibi matrislerde satr ayrac olarak kullanlr.
: SEMBOL
: Sembol balang ve son deerleri belirten bir say dizisini 1er artmlarla retilir.
Balang ve son deerler yannda bir de artm deerleri nc parametre olarak verilirse
bu durumda da belirten artm kullanarak bir say dizisi retir(rnein for dngsnde olduu
gibi). parametre kullanlrsa ilk parametre balang, ikinci parametre artm ve nc
parametre ise son deerdir.
1:6
ans = 1 2 3 4 5 6
disp(2:5)
2345
ve ayn zamanda
2:3:18
ans =
2 5 8 11 14 17
0.4:0.7:10
ans =
Columns 1 through 7
0.4000 1.1000 1.8000 2.5000 3.2000 3.9000 4.6000
Columns 8 through 14
5.3000 6.0000 6.7000 7.4000 8.1000 8.8000 9.5000
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
+ ve sembolleri iki vektr arasnda da kullanlabilir; a ve b er elemanl iki vektr olsun:
a=[2 1 -1]
a=
2 1 -1
b=[4 -2 3]
b = 4 -2 3
a+b
ans = 6 -1 2
a-b
ans = -2 3 -4
yukardaki rneklerde grld gibi, toplama ve karma ilemlerinde bilinen vektr toplam
ve fark ilemi gerekletirilecektir.
ARPMA VE BLME
Eit uzunlukta iki vektr iin * ve / operatrleri kullanlrken dikkatli olunmaldr.
a=[4 5]
a=45
b=[3 -2]
b = 3 -2
c=a*b
??? Error using ==> *
Inner matrix dimensions must agree.
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
Yukarda grld gibi iki vektr arasnda ^ ilemi tanmszdr. .^ sembol geerlidir ve
birinci vektrn bileenleri taban ve ikinci vektrn bileenlerini de st kabul ederek st alma
ilemi sonucu ayn boyutta yeni bir vektr oluturacaktr. Aada rnei inceleyelim.
h=a.^b
h = 64.0000 0.0400
ARPMA VE BLME
Bir skaler bir vektr operatr ile ilem sokulursa sonuta bileenleri skaler ile vektrn
bileenlerinin ayr ayr arplmas ile oluan yeni bir vektr elde edilir.
3*[2 -1]
ans = 6 -3
10
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
3/[2 -1>
??? Error using ==> /
Matrix dimensions must agree.
Ters blme ( \ ) sembol kullanlrsa vektrn bileenlerinin skaler ile blnmesinden elde
edilen iki say yeni bir vektr oluturacaktr.
2\[4 8]
ans = 2 4
Oysa bir vektrn bir skalere blnmesi tanmldr ve bileenleri vektrn bileenlerinin
skalere blnmesinden elde edilen yeni bir vektr elde edilecektir.
[4 -8]/2
ans = 2 -4
11
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
M-dosyalarnn Oluturulmas, Metin Editrne Giri: M-dosyalarn bir metin olarak
kullanarak oluturulabilecek sradan metin dosyalardr. M-dosyalar bu editrde
hazrlanabilecei gibi herhangi bir baka metin (text ) editrnde de hazrlanabilir.
Dzyaz M-Dosyalar
Bir dizi komutlardan ibaret dzyaz dosyalar, MATLAB iinde arldnda dosya iinde
bulunan komutlar otomatik olarak altrlr. Bylece her seferinde klavyeden komutlar
tekrar tekrar girmeye gerek kalmaz. Bir dzyaz dosyas iinde yer alan deyimler MATLAB
alma ortamnda yer alan verileri iletir ve sonulandrr. Dzyaz dosyalar, MATLAB
ortamnda etkileimli biimde allmayacak uzun komutlar dizisi gerektiren analizlerin
icras, problemlerin zm veya tasarm yaplmasnda kullanl olmaktadr.
rnein aada verilen MATLAB komutlar dizisi hata_example1.m ad verilen bir
dosyada oluturulup saklanabilir.
MATLAB ortamnda hata_example1 yazmak (.m uzants yazlmaz) sureti ile program
altrlabilir. Yalnz bunun iin program iinde yer alan x ve dx parametre deerlerinin
program altrlmadan nce atanm olmas gerekir. Bu, ya hata_example1 komutu
yazlmadan nce klavyeden yukarda belirtilen parametre deerlerini girmek sureti ile ya da
hazrlanm bir veri dosyasn yklemek sureti ile atanabilir.
%
% PROGRAM hata_example1.m
% JFM224 Saysal Analiz ve Programlama III Dersi uygulama
% Konu: Hata Analizi
%
%
% Program f(x)=exp(x) fonksiyon deerini verilen bir x ve dx deeri
% ve adm aral iin Taylor serisinin ilk bir, iki ve terimi
% kullanarak yaklak deeri, bal ve yaklam hatalarn hesaplar.
%
% Yazan : Dr.Unal Dikmen
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
function = hata_example1(x,dx)
fclose('all'); clc
format long
f = 'exp(dx)';
x = 0.0;
dx = 0.5 ;
% exp(x) fonksiyonun x=0.5 iin gercek deeri
g = eval(f,dx) ;
% Taylor aclm:
%
2
3
n
% f(x+dx)=f(x)+dxf'(x)+( dx/2!)f''(x)+dx/6)f'''(x)...+...(dx/n!)fn(x)
%
% Seri almnda ilk terim iin fonksiyonun yaklak deerleri
f1t = 'exp(x)' ;
f2t = 'exp(x) + 0.5*exp(x)';
f3t = 'exp(x) + 0.5*exp(x) + (0.125)*exp(x)' ;
ft1 = eval(f1t,x);
ft2 = eval(f2t,x);
ft3 = eval(f3t,x);
%yuzde olarak bagl hatalar
re1 = 100.*(g-ft1)/g ;
12
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
re2 = 100.*(g-ft2)/g ;
re3 = 100.*(g-ft3)/g ;
% yuzde olarak yaklam hatalar
ye21 = 100.*(ft2-ft1)/ft2 ;
ye32 = 100.*(ft3-ft2)/ft3 ;
% sonuclarn ekrana aktarlmas
clc
disp(' Fonksiyon = exp(x) ')
disp(sprintf(' x=0.5 iin gerek deeri = %15.12f\n',g));
disp(sprintf(' Taylor serisinin ilk terim yaklak degeri =
disp(sprintf(' Taylor serisinin iki terim yaklak degeri =
disp(sprintf(' Taylor serisinin terim yaklak degeri =
%
disp('Bal Hatalar :')
disp(' ')
disp(sprintf(' 1 terim yaklamndaki bal hata yzdesi =
disp(sprintf(' 2 terim yaklamndaki bal hata yzdesi =
disp(sprintf(' 3 terim yaklamndaki bal hata yzdesi =
%
disp('Yaklam Hatalar:')
disp(' ')
disp(sprintf(' iki terim hesaplamada yaklam hata yzdesi=
disp(sprintf(' terim hesaplamada yaklam hata yzdesi =
%5.4f',ft1));
%5.4f',ft2));
%5.4f\n',ft3));
%4.2f',re1));
%4.2f',re2));
%4.2f\n',re3));
%4.2f',ye21));
%4.2f',ye32));
13
JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN
bu ekilde yazlp yine ortalama.m olarak saklanan (dosya ad ile fonksiyon ad ayn
olmaldr) yeni fonksiyon dosyasnn kullanm herhangi MATLAB dosyasnn kullanmndan
farkl deildir.
Bir fonksiyon dosyasnn belli bal blmleri ve zellikleri rnek ortalama.m fonksiyon
dosyas zerinden aadaki ekilde aklayabiliriz.
Birinci satr fonksiyon tanm satr olup, fonksiyon adn, giri ve k argmanlarnn
saysn ve srasn tanmlar. Bu satr bulunmad zaman, dosya dzyaz dosyas gibi ilem
grr.
% iareti ile balayan satrlar yardm aklama satrlardr. Bu satrlarn birincisi 1.yardm
(help1) satrdr. lookfor fonksiyonu veya tm klasr yolu zerinden yardm talebi olduunda
bir fonksiyon iin MATLAB bu satr grntler. Bundan sonraki satrlar yardm metnidir. Belli
fonksiyon hakknda yardm istendiinde MATLAB yardm satr ile birlikte tm yardm metnini
grntler. Bu satrlara yazlanlar MATLAB tarafndan icra edilmez.
Fonksiyon gvdesi, % iareti ifade eden satrlardan sonraki satrlardr. Fonksiyonun bu
ksm hesaplamalar yerine kod ierir ve herhangi k argmanlar iin deerleri saptar.
Fonksiyon dosyas iinde yer alan m, n ve y gibi deikenler ortalama dosyasnn
almas srasnda kendi iinde geerli olup daha sonra alma ortamnda grntlenemez
ve kullanlamaz.
Fonksiyon dosyalar hakknda daha ayrntl bilgi alma ve eitli MATLAB fonksiyon
dosyalarn incelemek iin MATLAB ortamnda edit fonksiyon ad yazlarak biimleri
grntlenebilir. Baz komutlarn isimleri ve aklamalar izelge 1 de verilmitir.
izelge 1. komutlar
Komut
help
who
whos
what
size
lenght
clear
quit
save
lev
MATLAB'n operatr ve fonksiyonlarn tanmlar
Deikelerin isimlerini listeler
Deikenlerin simlerini ve boyularn listeler
Diskinizdeki M-dosyalarn listeler
Argmanlarn boyutlarn verir
Argmanlarn maksimum boyutlarn verir
alma ortamndaki tm deikenleri temizler
MATLAB ortamn sona erdirir
MATLAB ama ortamnda bir MAT-dosyasn saklar
14
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
MATLABdaOPERATRLER
AveBskalerveyamatrisintoplanmasnda:A+Bveyaplus(A,B)
AveBskalerveyamatrisinkartlmasnda:ABveyaminus(A,B)
AveBskalerveyamatrisinarplmasnda:A*Bveyamtimes(A,B)
AveBskalerveyamatrisinelemandzeyindearplmasnda:A.*Bveyatimes(A,B)
AveBskalerveyamatrisinsadanblnmesi:A/Bveyamrdivide(A,B)
AveBskalerveyamatrisinelemandzeyindesadanblnmesi:A./Bveyardivide(A,B)
AveBskalerveyamatrisinsoldanblnmesi:A\Bveyamldivide(A,B)
AveBskalerveyamatrisinelemandzeyindesoldanblnmesi:A.\Bveyaldivide(A,B)
Matrisingc:A^bveyampower(A,b)
Matrisinelemandzeyindegc:A.^bveyapower(A,b)
Adizeyininkarmakdevrii:Aveyatranspose(A)
Adizeyininkarmak(komplex)devrii:A'veyactranspose(A)
MATLAB'TABAZITEMELKOMUTLAR
lsveyadr:allandizindekidosyaisimlerinigrntler
whoveyawhos:oanbellektekideikenlerigrntler
pwd:allandizinyolunuekranaverir.
clear:belleitemziler
clc:ekrantemizler(commandwindow'u)
size(A):Adizeyininboyutunuverir.
length(a):avektrnnuzunlugunuverir.
max(a):avektrierisindekimaksimumdeeribulur.abirdizeyise
herbirstnunmaksimumdeerinibulur.
min(a):avektrierisindekimimumumdeeribulur.abirdizeyise
herbirstnunmimumumdeerinibulur.
norm(A):Adizeyininnormunuverir.
[d,ind]find(A>k):Adizeyiierisindekdeerindenbykelemanlarbulur.
d:kdanbykdeerleritutarveindkomutuhangisatr
vestn'daoldugunugsterenindisitutar.
diag(A):Amatrisinindiagonalelemanlarnverir.
trace(A):Adizeyininiziniverir.
inv(A):Adizeyinintersinialr.
[UDV]=svd(A):AdizeyiniSVD(SingularValueDecomposition)ynteminegrezer
cross(A,B):AveBgibiikimatrisiarpar
dot(A,B):AveBgibiikimatrisiskalerarpar
disp('string'):yazlanstringifadeyiekrandagrntler
Linspace(a,b,N):avebarasndaNadeteitaralklnoktaierenvektrretir.
logspace(a,b,N):avebarasndaNadeteitaralkllogaritmiknoktaierenvektrretir.
%%%%%%%%%%%%%%%%%%%%
plot(x,y,'b','LineWidth',2):x,yveriiftiniploteder.'b'plotunsreklicizgive
mavirenkliolmasnsyler.'LineWidth'isecizgikalnlgngsterir
15
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
MATLABTAMATRSLEMLER
MaTLAB programlama dili farkl yapda matris ve vektr oluturmak iin eitli hazr
fonksiyonlar kulland gibi kullanc da kendisine zg matris ve vektrleri kolaylkla
oluturabilir.ncelikleMATLABnhazrmatrisvevektroluturmafonksiyonlarnaksaca
bakacakolursak;
x=pascal(n)veyax=pascal(n,opt)
komut [nxn] boyutlu pozitif tam tanml bir simetrik matris oluturur. opt seenei
verilmeyebilir(budurumda0deeridefaultolarakvardr)
pascal(n,1):PascalmatrisininaltgenCholeskykatsaylarnierir.,ascal(n,2):pascal(n,1)
indndrlmhalidir.
rnek:
x=pascal(3)
x=
111
123
136
x=pascal(3,1)
x=
100
110
121
x=pascal(3,2)
x=
111
210
100
x=magic(n)
Komut [nxn] boyutlu 1 den n2 ye kadar deerlerden eit satr, eit stn ve diagonal
elemalarntoplamndanoluansimetrikolmayanbirkarematrisoluturur.
rnek:
x=magic(3)
x=
816
357
492
eye(n)veyaeye(n,m)
Komut(nxn)veya(n,m)boyutlubirimmatrisoluturur.
16
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
rnek:
x=eye(2,3)
x=
100
010
zeros(n,m)
Komut(nxm)boyutlusfrmatrisioluturur.
rnek:
x=zeros(2,3)
x=
000
000
rand(n)veyarand(n,m)
Komutnxnveyanxmboyutlarndaniformmatrisretir.
rnek:
x=rand(3)
x=
0.95010.48600.4565
0.23110.89130.0185
0.60680.76210.8214
y=rand(3,2)
y=
0.44470.9218
0.61540.7382
0.79190.1763
randn(n)veyarandn(n,m)
komutnormaldalmlnxnveyanxmboyutlumatrislerretir.
rnek:
x=randn(3)
x=
0.43260.28771.1892
1.66561.14650.0376
0.12531.19090.3273
17
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
y=randn(3,2)
y=
0.17460.5883
0.18672.1832
0.72580.1364
sprand(n)
Komutniformseyrek(sparse)yapdanxnboyutlumatrisoluturur.
rnek:
x=sprand(3)
x=
(1,1)0.4186
sprandn(n,m,density)
komutnxmboyutundanormaldalmasahipseyrekyapdamatrisoluturur.
rnek:
x=sprandn(3,3,2)
x=
(1,1)1.6236
(2,1)0.8580
(3,1)1.5937
(1,2)0.6918
(3,2)1.4410
(2,3)1.2540
(3,3)0.5711
sprandsym(n,density)
komut,nxnboyutundaseyreksimetrikrandommatrisretir.
rnek:
sprandsym(3,1)
ans=
(2,1)1.1908
(3,1)2.0022
(1,2)1.1908
(3,2)2.1742
(1,3)2.0022
(2,3)2.1742
Matrislerdetoplamavekarma
18
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
rnek:
a=pascal(3);
a=
111
123
136
b=magic(3);
b=
816
357
492
x=a+b
x=
927
4710
5128
y=xa
y=
816
357
492
MATLABtakolonilemleri
Kolonoperatrolarak:kullanlr.
rnein
X=1:10
X
12345678910
veya
X=0:pi/4:pi
X=
00.78541.57082.35623.1416
19
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
gibi kolon operatr ile matris ve vektrlerin istediimiz kolon veya satrlar zerinde
ilemleryapabiliriz.rneinAgibibirmatriszerinde,
A(1:k,j)
ilemiileAmatrisininj.cistnzerinde1denkncsatrlarnalabiliriz.rnekolarak,
a=
0.69020.34870.0742
0.68970.96340.1656
0.44500.12590.3717
>>a(1:2,3)
ans=
0.0742
0.1656
rneinAmatrisinin2.stnunu4ilearpmakve5eblmekistersek,
a=rand(3)
a=
0.81680.73390.9250
0.01850.47760.6458
0.53570.18750.8134
>>a(:,2)=4.*a(:,2)./5
a=
0.81680.58710.9250
0.01850.38210.6458
0.53570.15000.8134
veyaAdizeyinin3stunundan2.stununukartmakistersek
a=rand(3)
a=
0.87080.94050.6957
0.48170.29450.0910
0.10390.28420.9548
>>a(:,3)=a(:,3)a(:,2)
a=
0.87080.94050.2447
0.48170.29450.2035
0.10390.28420.6706
yadaAdizeyinin2.satrn1.satrilearpmakistersek,
20
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
a=rand(3)
a=
0.11290.05850.0565
0.49490.11580.4606
0.05880.11540.9807
>>a(2,:)=a(2,:).*a(1,:)
a=
0.11290.05850.0565
0.05590.00680.0260
0.05880.11540.9807
Amatrisininsonstnunukullanmakiin
a=rand(3)
a=
0.98510.27500.4407
0.11450.05560.3954
0.42020.81720.4408
>>a(:,end)
ans=
0.4407
0.3954
0.4408
Amatrisininsonsatrnkullanmakiin
a=rand(3)
a=
0.11880.06030.9717
0.64020.73860.6048
0.81380.02430.6677
>>a(end,:)
ans=
0.81380.02430.6677
Buvebunlarabenzermatriszerindehertrlilemde:operatrnkullanabiliriz.
MatrisinTranspoze(devrii),vektrelarpmveskalerarpm
21
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
BirAdizeyinintranspozesi(devrii)operatrileverilir.
rnek:
A=rand(3)
A=
0.16920.55040.3248
0.15580.00670.9042
0.73330.50680.1569
AnntranspozesiA'
=A
ans=
0.16920.15580.7333
0.55040.00670.5068
0.32480.90420.1569
Aynsatrvestnboyundakiikimatrisinvkterarpm,
x=[3;1;4];
y=[201];
z=x*y
z=
603
201
804
Skalerarpm
z=y*x
z=
2
Elemandzeyindeikiaynboyutlumatrisiarpmakiin.*operatrkullanlr.
a=randn(3)
a=
0.21930.05920.5077
0.92191.01061.6924
2.17070.61450.5913
b=randn(3)
22
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
b=
0.64360.01950.3179
0.38030.04821.0950
1.00910.00001.8740
c=a.*b
c=
0.14120.00120.1614
0.35060.04871.8532
2.19050.00001.1081
MATLABtamatrisvevektrilemlerindekullanlanbazfonksiyonlar:
norm(a):
birmatrisinveyavektrnnormunu(max(svd(X))verir.
a=rand(3)
a=
0.43990.03190.0310
0.94730.97570.4143
0.20670.80490.0762
>>c=norm(a)
c=
1.6296
svd(A)
komutAdizeyizerindetekildeerayrmynteminiuygular
[u,s,v]=svd(a)
a=rand(3)
a=
0.19530.99440.7043
0.66530.66140.3014
0.73670.33370.3126
>>[u,s,v]=svd(a)
u=
0.68530.69750.2091
23
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
0.56970.33480.7505
0.45350.63350.6268
s=
1.677700
00.64120
000.1414
v=
0.50490.86290.0232
0.72100.40680.5609
0.47460.29990.8275
MATLABprogramlamadilindematrislerinsatrveyastnlararasndakiilemlerdeyine:
operatrkullanlr.
rnek:
Amatrisi6x6lkbirmatrisise
1. Amatrisinin3.Satrile5.Satrnyerdeitirelim.
Tmp=A(3,:);
A(3,:)=A(5,:);
A(5,:)=Tmp;
Yadaaynilemibakabirifadeile
A=[A(1,:);A(2,:);A(5,:);A(4,:);A(3,:)];
ledeyapabiliriz.
2. Akarematrisinin1.Stnile3.Stnunuyerdeitirelim.
Tmp=A(:,3);
A(:,3)=A(:,1);
A(:,1)=Tmp;
Yadaaynilemibakabirifadeile
A=[A(:,3);A(2,:);A(:,1);A(4,:);A(5,:)];
iledeyapabiliriz.
24
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
3. Amatrisinin2.satrnn2.cielemanndansonrakielemanlar(2,3,4,5,6.celemanlar)
ileAmatrisinin4.Stunun2.cielemanndansonrakielemanlarn(2,3,4,5,6.c
elemanlar)yerdeitirirsek,
Tmp=A(2,2:6);
A(2,2:6)=A(2:6,4);
A(2:6,4)=Tmp;
GenelolarakNxNboyutlubirAmatriszerindeelemanterdzendeilemyapacagimiz
zaman,
A(:,a)ileastununu(tmsatrn)naaitelemanlar
A(a,:)ileasatrnn(tmsutunlarn)naaitelemanlarn
A(a:b,:)ifadesiiletmailebsatrlarnierentmsutunelemanlarn
A(:,a:b)iledeailebstunlararasndakitmsatrelemanlar
zerindeilemyapyoroluruz.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A=[32;21]
[V,D]=eig(A)%Amatrisininzdegervezvektrlerinibulur
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ax=bdenklemsistemininCholeskyyntemiylezm
a=[113;213;221]%Katsaydizeyi
b=[11;8;1]%bilinenvektr
[L,U]=lu(a);%altvestgendizeyler
z=inv(L)*b;
x=inv(U)*z;%aranansonuzmvektr
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ax=bdenklemsistemininEHELON(birimmatriseindirgeme)yntemiylezm
c=[ab]
d=rref(c);
x=d(:end);%buradaendiledmatrisininsonkolonugrntlenir.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
MATLABTAYNELEMELYNTEMLERLEDENKLEMTAKIMLARININZM
25
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
1. JacobiYntemi
2. GaussSeidelYntemi
1. JacobiyntemiMatlabKodu:
functionx=jacobi(A,b,N)
%Jacobi(A,b,N)sistemizm
%
%Akatsaydizeyi
%bsakolonvektr
%Nyinelemesays
%
%baslangvektrsfralnmtr.
%JacobidnmdizeyiA=inv(D)*(L+U)
%c=inv(D)*b.
%
n=size(A,1);
L=zeros(n);
U=zeros(n);
tol=1e05;
k=1;
x(:,1)=zeros(n,1);
%baslangcvektr
%AdizeyiniL,UveDdizeylerinebol
fori=1:n
ifA(i,i)==0
disp('sifirkosegenelemanilekarlald')
return
else
D(i,i)=A(i,i);
end;
end;
fori=2:n
forj=1:i1
L(i,j)=A(i,j);
end;
end;
fori=1:n1
forj=i+1:n
U(i,j)=A(i,j);
end;
end;
T=inv(D)*(L+U);
c=inv(D)*b;
whilek<=N
26
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
x(:,k+1)=T*x(:,k)+c;
if(norm(x(:,k+1)x(:,k))<tol)
disp('islemtamam')
x=x'
return
end;
k=k+1;
end;
if(norm(x(:,k)x(:,k1))>tol)|(k>N)
disp('yinelemetamamlandifakatistenenhatadzeyineulalamad:')
x=x';
end;
rnek:
>>a=
4011
0401
1040
1104
>>b=
1
2
3
4
>>jacobi(a,b,10)
>>
ans=
0000
0.25000.50000.75001.0000
0.18750.25000.68750.8125
0.12500.29690.79690.9844
0.19530.25390.78130.9570
0.18460.26070.79880.9854
0.19600.25370.79610.9810
0.19430.25480.79900.9856
0.19620.25360.79860.9849
0.19590.25380.79900.9856
0.19620.25360.79900.9855
2. GaussSeidelMatlabkodu:
functionx=gauss_seidel(A,b,N)
27
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
%Gauss_seidel(A,b,N)zm
%Akatsaydizeyi
%bsagvektr
%Nyinelemesays
%
%Tg=inv(DL)*U
%cg=inv(DL)*b.
%
n=size(A,1);
L=zeros(n);
U=zeros(n);
tol=1e05;
k=1;
x=zeros(n,1);
%balangvektr
%L,UandDdizeyleri
%
fori=1:n
ifA(i,i)==0
disp('sifirdiagonaleleman')
return
else
D(i,i)=A(i,i);
end
end
fori=2:n
forj=1:i1
L(i,j)=A(i,j);
end
end
fori=1:n1
forj=i+1:n
U(i,j)=A(i,j);
end
end
T=inv(DL)*U;
c=inv(DL)*b;
whilek<N
x(:,k+1)=T*x(:,k)+c;
ifnorm(x(:,k+1)x(:,k))<tol
disp('ilemtamam')
x=x'
return
end
k=k+1;
end
28
JFM224SAYISALANALZVEPROGRAMLAMAIIIDr.nalDKMEN
ifnorm(x(:,k)x(:,k1))>tol|k>N
disp('yinelemetamamlandifakatistenenhatadzeyineulalamad:')
x=x';
end;
rnek:
>>a=
211
231
325
>>b=
4
6
10
>>gauss_seidel(a,b,10)
ans=
000
2.00000.66670.5333
1.40000.88890.8044
1.15330.96300.9228
1.05710.98770.9707
1.02080.99590.9891
1.00750.99860.9961
1.00270.99950.9986
1.00090.99980.9995
1.00030.99990.9998
29