You are on page 1of 29

JFM224SaysalAnalizveProgramlamaIIIDr.

nalDKMEN

UYGULAMA : MATLAB PROGRAMLAMA DLNE GR

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.

MATLAB ALIMA ALANI


MATLAB alma alan, MATLAB komut penceresinden(command window) kullanlabilecek
deikenler (dizimler olarak bilinen ) takmn ierir. who veya whos komutlarn kullanarak o
andaki alma alan iindekiler grntlenebilir. who komutu sadece deikenlerin isimlerini
ksa bir liste halinde verirken, buna karlk whos komutu ayrca boyutu ve veri tr bilgileri
de ierir.
alma alan ayrca komut penceresinde yer alan aralar zerindeki alma alan
taraycs (Workspace Brower ) penceresini aarak da grntlenebilir. Tm bilgilerin
grntlendii bu pencerenin aralar zerinde kp biimde bir ekil vardr. Bu ekil zerinde
tklandnda tarayc pencere alr. alma alannda yer alan tm deikenleri silmek iin
clear
komutu kullanlr.
MATLAB komut penceresi
MATLAB aldnda karmza gelen pencere MATLABn komut penceresidir. Komut
penceresi kullanc ile MATLAB komut yorumlaycs arasnda iletiimi salayan bir ara
yzdr. Yorumlayc hazr hale geldiinde >> iletisi karmza gelir. Bu ileti MATLABa komut
ya da komut dizileri girilebileceini gsterir.
Genel Komutlar
Demo komutu(demo ): Eer MATLAB ilk defa kullanlyor ya da belli komutlarn almasn
merak ediliyorsa demo komutu ile demostrasyon listesini grntlenebilir. Listeden
yapacanz bir seimle setiimiz ilevin icraatlarn adm adm izleme imkan bulabilirsiniz.
Saklama ve geri arma komutlar (save-load ):
Bilgisayarnzda MATLAB ile alrken bilgisayarnz kapatmay arzulayabilirsiniz. Daha
sonra geri dnerek kaldnz yerden devam etmek isteyebilirsiniz. te bunu baarmak iin
kullanyor olduunuz btn deikenleri yeniden ayarlamadan bilgisayarnz kapatmadan
nce
>>save
3

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.

alma alanndaki verilerin kaydedilmesi ve yklenmesi, save ve load komutlar:


MATLAB`n save ve load komutlar bir oturumun her hangi bir annda MATLAB alma alan
ieriklerinin kaydedilmesi ve bu oturum srasnda veya daha sonraki bir oturumda kaydedilen
bu verilerin tekrar alma alanna yklenmesini salar. save ve load komutlar ayn
zamanda yaz (text ) tr veri dosyalarnn da alma ortamna ithal edilmesini salar.
save komutu alma alan ieriini bir ikili kod da (binary ) MAT-dosyas olarak kaydeder.
Bu dosya daha sonra load komutu ile geri arlabilir.

MATLAB Komut Penceresi Menleri:


Bir ok programda olduu gibi MATLABda da komut penceresi menleri byk kolaylklar
salar. Buna gre MATLABdaki menler ve ilevleri u ekildedir.
File (Dosya ) Mens: File mens dosya veya dosyalarn oluturulmas ve yazdrma
ileminin ayarlamalarnn olduu komutlar ierir.
New: Bu komut u seenekleri ierir:
M-File: yeni M-dosyas oluturmak iin bo bir pencere aar.
Figure: yeni bir ekil penceresi oluturur.
Model: yeni bir SIMULINK penceresi oluturur.

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.

Exit MATLAB: MATLAB oturumunu kapatr.


Edit (Dzen ) Mens:
Edit (Dzen ) mens komutlar kullancya dzenleme fonksiyonlarn uygulamak iin byk
kolaylklar salarlar.
Cut: Komut Penceresinde seilen metni keser ve ortamda saklar.
Copy: Komut Penceresinde seilen metni kopyalar ve ortamda saklar.
Paste: O andaki pano ieriini komut satrna yaptrr.
Clear Session: Komut penceresinin ieriini siler. Bu komut, clc komutu ile ayn grevi icra
eder.
Options (Seenekler ) Mens:
Bu men; MATLABda pencere seeneklerini ayarlamak, varsaylan dzenleme programn
semek ve MATLABin format ve echo komutlarnn ilevlerini deitirmek iin kullanlr.
Numeric Format: Ekran kt biimlerini deitirmek iin bu komutu kullanabilirsiniz. Bu
komut u seeneklerden olumaktadr.
Turn Echo On/Off (Yansma Ak/Kapal ): Yansma durumu iin ak ve kapal arasnda
gei yapar. Echo on ise verilen bir komutun sonucunun ekranda grntlenmesini salar.

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

AYNI UZUNLUKLARDAK VEKTRLER ZERNDE LEMLER


TOPLAMA VE IKARMA
8

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.

Burada MATLAB iin * sembol matris arpm semboldr ve a ve b arplabilecek tipte


matrisler olmadklar iin yukardaki hata mesajn alnmaktadr.
.* sembol, elemanlar, iki vektrn karlkl elemanlarn arpmndan oluan ayn uzunlukta
yeni bir vektr retecektir. Yani dizey veya vektrlerin eleman eleman arpmnda kullanlr.
c=a.*b
c = 12 -10

Benzer biimde ./ ve .\ operatrleri de geerlidir. Aada rneklerde inceleyelim:


a=[4 5]
a=45
b=[3 -2]
b = 3 -2
d=a./b
d = 1.3333 -2.5000
e=a.\b
e = 0.7500 -0.4000

JFM224SaysalAnalizveProgramlamaIIIDr.nalDKMEN

ET UZUNLUKTA K VEKTR ARASINDA ^ OPERATR


a=[4 5]
a=45
b=[3 -2]
b = 3 -2
h=a^b
??? Error using ==> ^
Matrix dimensions must agree.

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

BR VEKTR VE SKALER ARASINDAK LEMLER


TOPLAMA VE IKARMA LEMLER:
Aada rneklerde grld gibi, bir skaler ile bir vektr operatr ile ileme sokulursa,
skaler vektrn her iki bileeni ile de toplanr.
4+[2 -2]
ans = 6 2

- operatr iin de ayn ey sz konusudur.


7-[2 -1]
ans = 5 8

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

Bir skalerin bir vektre blm ise tanmszdr ( / sembol ile ):

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

MATLAB TA PROGRAM HAZIRLANMASI


M-dosya Programcl
MATLAB da algoritmalar bilinen programlar hazrlamak ve altrmak ok kolaydr. Ayrca
FORTRAN, BASIC, C/C++ ve PASCAL gibi programlama dillerinde hazrlanm programlar
MATLAB iin uyarlamak mmkndr. Bu durumda ounlukla ayn program iin daha az
sayda satr kullanmak yeterlidir. MATLAB n hazr M-dosya paketlerini kullanmak suretiyle
programlamay ok ksa tutmak mmkndr.
M-dosyalar
MATLAB dil kodu ieren dosyalara M-dosyas (M-files) ad verilir. M-dosyalarnn iki tr
mevcuttur. Bunlar;
Fonksiyonlar (functions): Giri olarak argmanlar kabul eder ve k olarak bu
argmanlara karlk gelen zm retir.
Dzyaz (scripts) dosyalar: Bir dizi MATLAB deyimini otomatik olarak icra eder.
Bir M-dosyasnn MATLAB tarafndan bir dosya olarak onaylanmas iin .m uzantsna
sahip olmas gerekir.
MATLAB n kendisi byk oranda herhangi bir program iinde arlp kullanlabilen
fonksiyon (alt program ) M-dosyalarndan olumutur. Bunlarn dnda ayrca yine program
iinde arlabilen kendi zne gml (built-in) zel fonksiyonlara sahiptir. M-dosyalar
ASCII karakterinde hazrlanm okunabilir ve yazlabilir dosyalardr. Bu nedenle MATLAB a
ait M-dosyalarn yanllkla deitirilmemesi gerekir. Aksi taktirde orijinal grevini yerine
getiremez. Bu nedenle kullancnn kendi hazrlad M-dosyalarn kendisine ait bir klasrde
saklamas tavsiye edilir.

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));

bu ekilde hata_example1 altrld zaman MATLAB dosyas iinde yazl komutlar


icra eder ve sonular ekrana aktarlr.
Fonksiyon M-Dosyalar
Fonksiyon dosyalar ilk satrda function kelimesi bulunan .m uzants bulunan dosyalardr.
MATLAB iinde bulunan tm M-dosyalar fonksiyon dosyalar biiminde olup, bunlar
hazrlanan herhangi bir program iinde arlabilir. Gerekte bunlar FORTRAN, BASIC, C
ve benzeri programlama dillerinde kullanlan alt programlar (subroutines) gibi ilem grrler.
MATLAB ta normal M-dosyalar biiminde ve znde gml fonksiyon olmak zere iki tr
fonksiyon mevcuttur. Fonksiyon dosyas; function satrnda yer alan giri argmanlar
(function tarafndan bulunan sonular ) istenirse dier hesaplamalarda kullanlabilir.
Fonksiyon dosyalar, MATLAB komut iletisindeki alma alanndan ayrlm, kendi alma
alan iindeki deikenleri iletirler.
Fonksiyon dosyasnn oluturulmas ve altrlmas aada verilen basit bir rnekle
aklayabiliriz. Burada MATLAB ta mevcut bir vektrn ortalamasn hesaplayan
ortalama.m dosyasna ait bildirimler listesi verilmitir.
Function y = ortalama(x)
%ortalama (x)her bir stunda ortalama deeri olan bir satr
vektrdr.
[m,n]=size (x) ;
if m=1
m=n;
end;
y=sum (x ) /m;

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

Matrislerde toplama ve karma ilemi matrisin veya vektrn elemanlar zerinde


gerekletirilir.

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

You might also like