You are on page 1of 38

MATLAB ILE PROGRAM YAZMAK

Su ana kadar Matlab ile gerçeklestirdigimiz uygulamalarda ,belirli bir islemi gerçeklestirmek
üzere gerekli olan Matlab komut ya da fonksiyonlarini Matlab komut satirindan,>>
sembollerinden sonra tek tek girerek icra ediyorduk.

Oysa,Matlab komut ya da fonksiyonlarindan gerçeklestirmek istediginiz bir isle iliskili özel


bir grubu,bir dosyaya kaydederek,bu dosya isminin çagrilmasi ile icra edebilirsiniz.Sonuçta
çok pratik ve etkin bir yol ortaya çikar;söz konusu islemin gerektigi her anda hazirlanan dosya
icra edilerek,komutlarin tek tek girilmesine gore, önemli bir zaman tasarrufu saglanir.

Bir Matlab deyimleri ya da komutlari grubunu içeren bu tip bir dosyaya Matlab’de M-
dosyasi(M-file) adi verilir.Bu tip dosyalariin uzantisi daima .m seklinde olmalidir.Bir Matlab
M dosyasi,bir komut grubu içerdigi için tanim itibari ile bir program dosyasidir.Dolayisi ile
,Matlab’de,M-dosyalari olusturularak programlama yapilabilir.

M dosyasi içine tüm Matlab komut ve fonksiyonlari yerlestirilebilir;bunlar arasinda asagida


inceleyecegimiz kontrol komutlari da bulunabilir.M-dosyalari aslinda bilinen metin(text)
dosyasi tipinde dosyalardir.Ancak özel bir komut yorumlayicisi içinden geçirilirler.

Matlab’de birçok matematik ya da mühendislik problemini çözmek için yazilacak programlar


C/C++,FORTRAN ya da PASCAL’daki karsiliklarina göre çok daha basit ve kisadir.Bu
aslinda beklenen bir sonuçtur çünkü Matlab’de gerçekte bu amaçla kullanilacak pek çok hazir
fonksiyon mevcuttur.

MATLAB’TE BIR m-DOSYAYI(PROGRAMI) ÇALISTIRMAK

Matlab’de bir program çalistirmak için asagidaki adimlar izlenmelidir:

1)Program Matlab editörü içinde yazilir ve saklanir.

2)Programin saklandigi dosya daima .m uzantili olmalidir.

3)Programi çalistirmak için ya komut satirindan ismi girilerek enter’a basilir veya asagidaki
gibi Debug/Run menüsü kullanilir:

4)Programi icra edebilmek için,komut satirinda, sadece programin adi yazilir;uzantisi


yazilmamalidir.
SEÇME(SELECTION) TIPINDEKI KONTROL DEYIMLERI

IF DEYIMI

if deyimi,Matlab dilinde sartli dallanma(conditional branching) adi verilen


islemi gerçeklestiren bir deyimdir.
Sartli dallanma, herhangi bir programlama dili için temel kontrol yapisidir.
Sartli dallanma islemi sayesinde,bir program, kararlar alma imkanina kavusur; bir ifadenin
sonucuna göre, bir komutlar dizisinin icra edilip edilmeyecegine karar verebilir.
Ifadenin degeri, bir icradan digerine degisebilecegi için, bu özellik bir programa farkli
verilere karsi farkli sekillerde davranma imkani saglar. Matlab dilinde sartli dallanma if ve
else anahtar sözcükleri ile gerçeklestirilir. if deyiminin en basit sekli için yazilis biçimi
asagidaki gibidir:

if ifade

deyim1;
end
deyim2;

Burada ifadenin degeri dogru(true) ise deyim1 icra edilir sonra icra deyim2’ye
geçer.Ifadenin degeri yanlis(false) ise bu durumda da dogrudan deyim2’ye
geçilir.Ifadenin degeri yanlis ise deyim1 icra edilmeyecektir.Asagida if yapisini açiklayan bir
akis diyagrami verilmistir.

if deyimi için akis diyagrami(flow chart)

If deyimi else sözcügü ile birlikte kullanilirsa asagidaki yazilis biçimi kullanilir:

if ifade
deyim1 ;
else
deyim2;
end
deyim3;
...
Bu durumda,ifadenin degeri dogru ise deyim1 icra edilir ve sonra deyim3’e geçilir.Ifadenin
degeri yanlis ise,bu durumda da deyim1 atlanarak dogrudan else’i izleyen deyim2’ye
geçilecek ve bu icra edildikten sonra da deyim3 ile devam edilecektir.Asagida bu yapi ile
iliskili bir akis diyagrami verilmistir.

if deyiminde,ifadenin degeri dogru oldugu zaman sadece deyim1 gibi tek bir deyim degil de
bir deyimler grubunun icra edilmesi isteniyorsa bu durumda bu deyimler grubu if-end
sözcükleri arasina yerlestirilir:

if ifade
deyim1;
deyim2;

..

deyim_n;
end
deyim_x;
..
Bu durumda ifade dogru ise deyim1,deyim2,..deyim_n ile belirtilen deyimler
grubunun tümü icra edilerek deyim_x’e geçilecektir;ifade yanlis ise de bu durumda if’e
ait deyimler blogu atlanarak dogrudan deyim_x’e geçilecektir.
Ayni sey if else yapisi için de söz konusudur:

If ifade
Deyim1;
Deyim2;

..
deyim_n;
else
deyim_n+1;
deyim_n+2;

..

deyim_m;
end
deyim_k;
...
Yukardaki yapida,ifade dogru ise,deyim1,deyim2,..,deyim_n icra edilerek
deyim_k’ya geçilecek,ifade yanlis ise bu durumda da,if içindeki deyimler atlanarak
sadece deyim_n+1,deyim_n+2,..,deyim_m icra edilerek programin icrasi daha sonra
deyim_k’ya erisecektir.

ÖRNEK 1:
I.File/New/m-file yolu ile bir m- file açiniz:

II.Asagidaki komutlari
giriniz:

III.Debug/Save and Run menu adimlarini izleyiniz:


IV.Karsiniza asagidaki pencere gelecektir:

m-dosyaya
IF1.m adini vererek Save butonunu tiklayiniz.

V.Program Debug/Run ile çalistirilinca BIR TAM SAYI GIRINIZ mesaji


gelir;mesela 12 girilip enter’a basilinca “GIRDIGINIZ SAYI 10 DAN
BUYUKTUR” mesaji gelecektir:

Bu çok basit ve kisitli programda kullanici


klavyeden 10’dan daha büyük bir sayi girdigi
zaman,program yukardaki çiktida görülen mesaji
verecek fakat 10 ya da daha küçük bir sayi girilirse
bu durumda herhangi bir mesaj görüntülenmeyecektir.

ÖRNEK PROGRAM 2:
I.Asagidaki m-dosyayi olusturunuz:
II.Programi çalistirdiginizda,bu programda ,klavyeden,10’dan büyük bir sayi
girilirse,asagidaki

BIR TAM SAYI GIRINIZ..14

GIRDIGINIZ SAYI 10 DAN BUYUKTUR

Çiktisi elde edilecek,10 ya da daha küçük bir sayi girilirse de asagida görüldügü gibi,

>> if1
BIR TAM SAYI GIRINIZ..7

GIRDIGINIZ SAYI 10 YA DA DAHA KUCUK BIR SAYIDIR


>>

Bir mesaj elde edilecektir.Böylece if-else yapisi ile daha kapsamli bir kontrol
isleminin gerçeklestirilebilecegi söylenebilir.

PROBLEM:

f(x) ve g(x) fonksiyonlari,

x>0 ise f(x)=1/(1+ln(x)) ve g(x)=1/(x+ln(x))

x≤0 ise f(x)=1/(1+x2) ve g(x)=1/(1+x+ x2 )


seklinde tanimlanmaktadir.x degeri klavyeden girildigine göre,f(x) ve g(x)’i
hesaplatan ve yazdiran bir Matlab programi yaziniz.

PROBLEMIN ÇÖZÜMÜ OLAN MATLAB M-DOSYASI

PROGRAMIN ÇIKTISI:

x’in degeri yaklasik olarak e sayisi olarak girilirse(e sayisinin degeri e=2.718..)

çiktisi elde edilir.x negatif bir deger olarak girilince de,

çiktisi elde edilecektir.

PROBLEM:
Bir satis elemaninin ,sattigi ürün miktarina göre alacagi günlük ücret asagidaki gibi
belirlenmektedir:

Günlük satis miktari 50’den az ise,4,000,000TL lik sabit ücrete satilan ürün basina
50,000TL’lik prim eklenerek günlük ücret belirlenecektir.
Günlük satis miktari 50 ya da daha fazla ise bu durumda günlük sabit ücret 5,000,000TL
alinarak satilan ürün basina da ilk 50 ürün için 50,000TL,50’yi asan kisim için de
60,000TL prim verilerek günlük ücret belirlenecektir.

Bir saticinin günlük satis miktari bilgisayara


girildiginde saticinin alacagi günlük ücreti
hesaplayan bir C programi yaziniz.

SATIS PROBLEMI IÇIN MATLAB PROGRAMI:

Gerekli tüm araliklarin kontrolü için,program 40,50


ve 60 satis miktarlari için test edilrek asagidaki
sonuçlar elde edilmistir:
PROBLEM:Bilgisayara negatif olmayan bir sayi girildiginde bu sayinin karekökünü
hesaplayan ,negatif bir sayi girildiginde ise kullaniciyi uyaran bir MATLAB programi
yaziniz.

KAREKÖK PROGRAMININ LISTESI:

KAREKÖK PROGRAMININ ÇIKTISI:

Programda,verilen bir sayinin karekökünü hesaplayan sqrt fonksiyonu kullanilmistir..


KARSILASTIRMA IFADELERI

Dogal olarak, sartli bir ifadede iki deger arasinda karsilastirma islemi gereklidir. Bazen
iliskisel operatörler olarak ta anilan (relational operators ) 6 karsilastirma operatörü
vardir.Bunlar asagidaki tabloda belirtilmistir:

Iliskisel operatörler de ikili operatörlerdir. (binary operators ) Yani bu operatörlerin her biri
iki farkli deger(operand) üzerinde islem görür.
Iliskisel bir ifadenin sonucu dogru ise Matlab derleyicileri bunu 1,iliskisel bir ifadenin
sonucu yanlis ise de Matlab derleyicileri bunu 0 olarak kabul ederler.Buna göre asagidaki
ifadelerin sonuçlarini inceleyiniz:

Asagidaki Matlab m-dosyasi ise,çesitli karsilastirma islemlerinin sonuçlarini ekrana


aktarmaktadir:
DIKKAT EDILECEK NOKTA: Karsilastirma islemlerinde esitlik kontrolünün == sembolü
yerine yanlislikla = sembolü ile yapilmasi durumu.

IÇ IÇE IF DEYIMLERI(NESTED IF STATEMENTS)

Tek bir if deyimi programin iki seçenekten birini seçmesine olanak saglar. Fakat bir çok
pratik uygulamada tek bir if deyimi yetersiz kalir. Birinci karari aldiktan sonra ikinci karar,
ikinciden sonra üçüncü kararin alinmasi gerekebilir. Bu tipte bir program akisi,iç içe if
deyimlerini gerektirir. Farz edelim ki üç tamsayiyi kabul eden ve bunlarin en küçügünü bulan
ve yazdiran bir program yazmak istiyorsunuz, Iç içe if deyimleri ile programi asagidaki gibi
yazabilirdiniz.

ÜÇ TAMSAYININ EN KÜÇÜGÜNÜ BULAN MATLAB


PROGRAMI:
PROGRAMIN ÇIKTISI:

Iç içe if deyimleri, her else’ in dogru if ile uyusmasi konusunda problem yaratir. Bu genellikle
yakindaki else problemi adi ile anilir. Mesela yukardaki programda, ilk else, ikinci if ile
iliskilidir. Genel kural sudur:

Bir else, kendisinden önce gelen en yakin if ile iliskilidir seklindedir.

Bununla birlikte her bir if deyimi sadece bir else cümlecigine sahip olabilir.

if-else-if BASAMAK YAPISI

Birbirini izleyen çok sayida kosul kontrolünü gerçeklestirmeye yarayan bir yapi if-
else- if basamagi adini alir ve yazilis biçimi asagidaki gibidir:
If ifade1

Deyim1;

elseif ifade2

Deyim2;

elseif ifade3

Deyim3;

...

else

Deyim_n;

End

Deyim_n+1;

Bu yapi su sekilde çalismaktadir:

Önce ifade1 kontrol edilir;bu ifade dogru ise,Deyim1 icra edilir ve sonra
Deyim_n+1’e geçilir.

Ifade1 yanlis ise,o takdirde,ifade2 kontrol edilir.Bu ifade dogru ise,bu durumda
sadece Deyim2 icra edilir ve sonra Deyim_n+1’e geçilir.

Ifade2 yanlis ise,o takdirde,ifade3 kontrol edilir.Bu ifade dogru ise,bu durumda
sadece Deyim3 icra edilir ve sonra Deyim_n+1’e geçilir.

Bu islemler daha fazla sayida else if bulundugu takdirde ayni sekilde devam eder.

if’ler ile kontrol edilen ifadelerin tümü de yanlis ise,bu durumda programin kontrolü
else’i izleyen Deyim_n’e geçer ve bu deyim icra edilir.Daha sonra kontrol
Deyim_n+1’e geçecektir.

Yukardaki yapi içinde,Deyim1,Deyim2,..Deyim_n ile belirtilen birimler tek bir


deyimden ibaret olabilecegi gibi, deyimler grubundan da olusabilir.
ÖRNEK PROBLEM:

Bu örnekte basit bir vergi hesabi programi gelistirmek istiyoruz.Gelir vergisinin


asagidaki kurallara göre belirlendigini var sayalim:

Gelir≤150,000,000 ise vergi orani %25

Gelir≤300,000,000 ise vergi orani %30

Gelir≤600,000,000 ise vergi orani %35

Gelir≤1,200,000,000 ise vergi orani %40

Gelir>1,200,000,000 ise vergi orani %50

Bu problemi Matlab dilinde programlayabilmek amaci ile,asagidaki basit algoritmayi


uygulayacagiz:

a)Gelir bilgisi klavyeden girilecektir.

b)Gelir bilgisi,yukardaki vergi hesaplama kurallarina göre kontrol edilerek vergi


hesaplanacaktir.

c)Hesaplana n vergi ekrana yazdirilacaktir.

VERGI HESABINI GERÇEKLESTIREN MATLAB PROGRAMININ


LISTESI:

v1=150000000*0.25;

v2=150000000*0.30;

v3=300000000*0.35;

v4=600000000*0.40;
gelir=input('\nVERGI MUKELLEFININ GELIRI ');

if gelir<=150000000

vergi=gelir*0.25;

elseif gelir<=300000000

vergi=v1+(gelir-150000000)*0.3;

elseif gelir<=600000000

vergi=v1+v2+(gelir-300000000)*0.35;

elseif gelir<=1200000000

vergi=v1+v2+v3+(gelir-600000000)*0.4;

else

vergi=v1+v2+v3+v4+(gelir-1200000000)*0.5;

end

fprintf('\nHESAPLANAN GELIR VERGISI=%12.2f\n\n',vergi);

end

PROGRAMIN ÇIKTILARI:
Yukardaki programda uygulanan vergilendirme mantigi su sekildedir:

Örnegin,bir kisinin geliri 200,000,000 TL olsun.Bunun ilk 150,000,000 TL’si


%25’ten,kalan

200,000,000-150,000,000=50,000,000 TL’si ise %30’dan vergilendirilecektir.

O nedenle programin basinda her araliga ait sabit vergiler hesaplanarak v1,v2,v3 ve
v4 degiskenlerine atanmaktadir.

ÖRNEK PROBLEM:IKINCI DERECE DENKLEMININ KÖKLERININ


BULUNMASI:

Lise yillarinda ögrendiginiz ikinci derece denklemi,

ax2 + bx + c = 0

seklinde ifade edilir ve denklemin köklerinin varligi hakkinda bilgi sahibi olabilmek
için,denklemin diskriminanti adi verilen,

∆=b2-4ac

ifadenin hesaplanmasi gerekir.Diskriminantin degerlerine göre,sayet,

∆<0 ise denklemin gerçel sayilarla ifade edilebilecek bir kökü yoktur.
∆=0 ise denklemin ,degerleri birbirine esit olan iki kökü vardir ve bunlar,

x1=x2= -b/(2a)

seklinde hesaplanirlar.Bunlara iki kat kök ya da çakisik kök adi verilir.

∆>0 ise de denklemin birbirinden farkli iki gerçel kökü vardir ve bunlar,

x1=(-b+√∆)/(2a)

ve

x1=(-b-√∆)/(2a)

seklinde hesaplanirlar.

ÖRNEK:IKINCI DERECE DENKLEMININ KÖKLERINI BULAN


PROGRAM

Bu uygulamayi gerçeklestirebilmek için asagidaki adimlari izleyiniz:

1)Matlab’in File/New /M-file menü adimlarini izleyerek matlab editörünü açiniz:

2)Gelen editöre asagidaki programi giriniz:


3) Programi File/Save menüsü yardimi ile ikider.m adi ile saklayiniz.

4)Matlab komut satirina asagidaki ismi giriniz:

» ikider

a katsayisi..1

a=

b katsayisi..1

b=

c katsayisi..1

c=

d=

-3

gerçek kök yok


Program çalisinca a b ve c katsayilarini istemis ve kullanici a=1 b=1 c=1 degerlerini
girmistir.Böylece x2+x+1 =0 denkleminin kökleri aranmaktadir.Bu denklemin gerçek kökü
yoktur ve program bu mesaji vermektedir.

Ayni programi bir kez daha çalistirarak x2-2x+1=0 denkleminin köklerini arastiralim:

» ikider

a katsayisi..1

a =

b katsayisi..-2

b =

-2

c katsayisi..1

c =

d =

x1 =

x1=x2

Bu durumda denklemin çakisik iki kökü vardir ve x1=x2=1’dir ve program bu sonucu


bulmustur.
2
Son olarak ayni programi x -5x+6=0 denklemi için test edelim:

» ikider

a katsayisi..1

a=

1
b katsayisi..-5

b=

-5

c katsayisi..6

c=

d=

x1 =

x2 =

Kökler x1=3 ve x2=2 olarak bulunmustur ki bu da dogru sonuçtur.

Hem if hem de while komutlari kosul ifadeleri kullanmaktadir.Kosul ifadeleri ya


iki ifadenin karsilastirilmasindan olusan mukayeseler seklinde ya da sonucu sayisal
degerler olabilen ifadeler seklindedir.mukayese ifadesinde karsilastirmanin sonucu
dogru ise kosul dogru kabul edilecektir;sayisal ifadelerde ise yukarda belirtildigi
gibi,C diline benzer sekilde ,ifadenin sonucu 0 ‘dan farkli ise kosul dogru aksi takdirde
ise kosul yanlis olarak kabul edilecektir.

Mukayese sembollerini yukarda vermistik,Tablo 2’de ise birden fazla mukayese


ifadesini birlestirmek için kullanilan mantiksal islem operatörleri görülmektedir:

Tablo 2-Mantiksal islem operatörleri

Asagida ise ve ,veya,degil ve exclusive or ile iliskili tablolar verilmektedir :


Asagida
xor fonksiyonunun en basit kullanim sekli ile iliskili örnekler sunulmustur :

» xor(1,1)

ans =

» xor(1,0)

ans =

» xor(0,1)

ans =

1
» xor(0,0)

ans =

ÖRNEK : & OPERATÖRÜ


» a=input('a..'),b=input('b...'),if a>0 & b>
0,disp('her iki sayi da pozitiftir'),end

a..4

a=

b...3

b =

her iki sayi da pozitiftir

ÖRNEK:xor FONKSIYONU
» a=input('a..'),b=input('b...'),if ~xor(a>0,b>
0),disp('her iki sayi da ayni isarettedir'),end

a..4

a =

b...8

b =

8
her iki sayi da ayni isarettedir

» a=input('a..'),b=input('b...'),if ~xor(a>0,b>
0),disp('her iki sayi da ayni isarettedir'),end

a..-3

a =

-3

b...-6

b =

-6

her iki sayi da ayni isarettedir

» a=input('a..'),b=input('b...'),if ~xor(a>0,b>
0),disp('her iki sayi da ayni isarettedir'),end

a..7

a =

b...-4

b =

-4

MANTIKSAL OPERATÖRLERIN MATRISLER IÇIN


KULLANILMASI

Mantiksal operatörler matrisler için de kullanilabilir.Asagidaki örnekleri


inceleyiniz:

» A=eye(3,3)

A =

1 0 0

0 1 0
0 0 1

» B=~A

B =

0 1 1

1 0 1

1 1 0

» C=xor(A,B)

C =

1 1 1

1 1 1

1 1 1

» D=ones(3,3)

D =

1 1 1

1 1 1

1 1 1

» E=~D

E =

0 0 0

0 0 0

0 0 0

» F=D|E

F =

1 1 1
1 1 1

1 1 1

ÖRNEK:BIR LINEER DENKLEM SISTEMININ ÇÖZÜMÜNÜ BULAN


PROGRAM

ÇÖZÜM:

1)Asagidaki M- file’i olusturunuz ve denksis.m adi ile saklayiniz:

2)Matlab komut satirinda

» denksis adini giriniz.Asagidaki çikti elde edilecektir:

A KATSAYILAR MATRISINI VE b SAG TARAF VEKTÖRÜNÜ GIRINIZ

DAHA SONRA return KOMUTUNU GIRINIZ

K» A=[1 1 1;2 -2 1;4 2 1]

A =

1 1 1

2 -2 1

4 2 1

K» b=[3 1 7]
b =

3 1 7

K» return

x =

1.0000

1.0000

1.0000

MATLAB IÇINDE ÇEVRIM(DÖNGÜ,Ing.LOOP) OLUSTURMA-


KONTROL KOMUTLARI

Matlab ortaminda,gerek komut satirinda gerekse m-dosyalari içinde kullanabileceginiz


kontrol komutlari mevcuttur.bu komutlar yardimi ile Matlab’de olusturmak istediginiz bir
programin mantiksal akisini kontrol edebilirsiniz.

Matlab’de kullanabileceginiz kontrol komutlari,

1)Tekrarli islemler anlamindaki çevrim yapilarini olusturan


komutlar(For,While)

2)Bir kosulu kontrol ederek kosulun sonucuna göre bir islem yapan kontrol
komutlari(if,switch/case)

olmak üzere iki gruba ayrilir.If komutunu yukarda incelemistik;digerleri ise asagida
incelenecektir:

ÇEVRIM OLUSTURMA

for KOMUTU

for komutu, asagidaki biçimde kullanilabilir:

for Parametre=Baslangiç:Artim:SonDeger
,Deyim1,Deyim2,..Deyim_n,End

Bir m-file içinde ise ayni ifade okunabilirligi arttirmak amaci ile de,

for Parametre=Baslangiç:Artim:SonDeger
Deyim1

Deyim2

..

Deyim_n

End

Seklinde kullanilir.

Burada Parametre degeri baslangiç degerinden baslayarak ve her seferinde artim


degeri kadar arttirilarak Sondegere erisene kadar degistirilir.Parametrenin her degeri
için,Deyim1,Deyim2,Deyim_n seklinde belirtilen ve for-end sözcükleri arasinda yer
alan deyimler grubu icra edilir.Parametrenin degeri,SonDeger’i asinca,programin
kontrolü,end’i izleyen deyime yani çevrimin disina çikacaktir.Artim degeri negatif te
olabilir.Bu durumda Baslangiç degerinin SonDeger’den daha büyük olmasi gerekir.

ÖRNEK 1:

» for t=0.5:0.1:1 ,disp(t) ,end

0.5000

0.6000

0.7000

0.8000

0.9000

ÖRNEK 2:

» for t=2.5:-0.1:2 ,disp(t) ,end

2.5000

2.4000

2.3000

2.2000

2.1000

2
ÖRNEK:FAKTÖRYEL HESABI

for çevrimini kullanacagimiz diger bir örnek program ise faktöryel hesabi programi
olacaktir.Matematikte faktöryel,bilindigi gibi,

n!=1.2.3...n

seklinde tanimlanir;yani n sayisinin faktöryeli 1’den n’e kadar tam sayilarin


çarpimina esittir.Asagida,faktöryel hesabi ile iliskili Matlab programi ve bu
program içindeki degiskenlerin programin icrasi esnasindaki degisimlerini
gösteren tablo verilmistir:

FAKTÖRYEL HESABI YAPAN MATLAB PROGRAMI:

PROGR
AMIN ÇIKTISI:

FAKTÖRYEL PROGRAMINDAKI DEGISKENLERIN PROGRAMIN


ICRASI ESNASINDAKI DEGISIMLERINI GÖSTEREN TABLO
ÖRNEK:

1.2/(3.4)-5.6/(7.8)+9.10/(11.12)-13.14/(15.16)

seklindeki alterne seri toplaminin hesaplanmasi.

Yukardaki ifadede, . sembolü çarpma islemi anlamindadir.

ALTERNE SERI PROGRAMININ LISTESI:

ALTERNE SERI PROGRAMININ ÇIKTISI

ALTERNE SERI PROGRAMINDAKI DEGISKENLERIN PROGRAMIN


ICRASI ESNASINDAKI DEGISIMLERINI GÖSTEREN TABLO
AÇIKLAMA:

Sadece 4 terim oldugu için for çevrimi 1’den 4’e kadar çalistirilmistir.ilk terim
1.2/(3.4) ve ikinci terim 5.6/(7.8) oldugu için, x degiskeni ilk terimdeki ilk
sayiyi temsil etmek üzere terimi,x.(x+1)/((x+2).(x+3)) seklinde ifade
edebiliriz.x yerine 1 konulursa bu durum kolayca kanitlanabilir.Ikinci terimde
ilk sayi 5 ,3.terimde ilk sayi 9 olduguna göre x,her seferinde 4
arttirilmalidir.Bu da programda x=x+4 ; deyimi ile gerçeklestiriliyor.

Seri alterne seri olduguna göre,yani terimlerin isaretleri +,-,+,- seklinde


degistigine göre,p degiskeni yardimi ile terimlerin isaretleri ayarlanabilir.p
önce 1 olarak atanmistir.Sonra çevrim içine konulan p=-p;ifadesi ise bir
sonraki isareti -,bir sonrakini + ve onu izleyeni – yapacaktir.(Programi kagit
üzerinde adim adim izleyiniz).

FOR ÇEVRIMI ILE ILISKILI ÖRNEK PROBLEMLER:

ÖRNEK PROBLEM:

ifadesini Matlab’te hesaplatiniz.

ÇÖZÜM:

I.Asagidaki m-dosyayi olusturunuz:

II.yukardaki m-dosyayi m=1000, m=10000 ve m=100000 degerleri için çalistirdiginizda


gittikçe pi’ye yaklasan degerler elde edeceksiniz:
ÖRNEK PROBLEM:

Ifadesini Matlab’te hesaplatiniz.

Bu ifadeyi Matlab’te hesaplatabilmek için çesitli yollar mevcuttur.Biz burada bir m-dosya ile
bu hesaplatmayi gerçeklestirecegiz:

ÇÖZÜM

Asagidaki m-dosyayi olusturunuz:

m-dosyayi çalistirdiginizda asagidaki sonucu elde edeceksiniz:

Tam dogru deger ‘dir ve yukardaki sonuç bu degere çok yakindir.

ÖRNEK PROBLEM:
Asagidaki ifadeyi Matlab’te hesaplatiniz:

ÇÖZÜM:

Asagidaki m-dosyayi olusturunuz ve çalistiriniz:

Asagidaki çözümü elde edeceksiniz:

IÇ IÇE ÇEVRIMLER

Bir çevrim yapisinin içine baska bir çevrim yapisinin yerlestirilmesi ile elde edilen yapiya iç
içe çevrim(nested loop) adi verilir.
Matlab dilinde, if deyimlerini her hangi bir derinlige kadar iç içe kullanmak nasil
mümkünse, çevrim deyimlerini de iç içe kullanmak mümkün olacaktir. Iç içe çevrimlerde
hatirlanacak anahtar bilgi, önce içteki çevrimlerin tamamlanmasi gerektigidir.Bu konuda
asagidaki kural iç içe çevrimler için daima geçerlidir:

Iç içe çevrimlerde en içteki çevrim en önce tamamlanir.

ÖRNEK:

Asagidaki programda,dis çevrim olan i parametreli çevrim 5 kez


çalisacaktir.(i=1,2,3,4,5).i’nin her degeri için ise içteki çevrim 3 kez
çalisacaktir.(j=1,2,3).Böylece asagidaki çikti elde edilecektir:
PROGRAMIN ÇIKTISI:

ÖRNEK:ÇARPIM TABLOSU PROGRAMI


1’den 10’a kadar sayilar için bir çarpim tablosu hazirlamak istiyoruz.Bunun için iç içe 2
çevrim yeterlidir ve her iki çevrimin de parametresi 1’den 10’a kadar degisecektir.Programin
listesi asagidadir:
ÇARPIM TABLOSU PROGRAMININ ÇIKTISI

Her x degeri için, program önce x ‘i yazdirir; sonra y ‘nin 10 degeri için çevrim yaparak her
iterasyon için x*y ‘yi yazdirir ve yeni bir satira geçer.

printf (“% 5d “,x*y);

komutu en içteki çevrime aittir. % 5 d dönüsümü, fprintf( )nin çikista her sayi için 5 karakter
basmasini saglar. Sayi daha az karakter gerektiriyorsa, ön tarafina bosluklar konur.

ÖRNEK:

Asagidaki seri toplamini hesaplayacak bir Matlab programi yaziniz:

1/ 2! + 1/3! + 1/4! +......+ 1/10!

Bu seri toplamini hesaplamak istedigimizde,iç içe iki çevrim kullanmak


gerektigini hemen anlariz:

1)Her adimda,bir toplama islemi gerektiren,terimlerin toplanmasinin


gerekli oldugu bir çevrim(Yukardaki tek çevrim örneklerindeki 1+2+3+..+n
toplami örnegini hatirlayiniz)

2)Yukarda belirtilen çevrimin her parametre degeri için,o adimdaki


faktöryeli hesaplatmak zorunda oldugumuz ve o nedenle yukardaki çevrimin
içinde yer almasi gereken bir çevrim.

Bu düsüncelerle,problemin çözümünü teskil edecek olan bir Matlab programini


asagidaki gibi yazabiliriz:
FAKTÖRYELLI TERIMLERDEN OLUSAN SERI TOPLAMI
PROGRAMI:

SERI TOPLAMI PROGRAMININ ÇIKTISI

break DEYIMI

break deyiminin Matlab programlari içinde iki farkli kullanim alani mevcuttur:
1)switch yapisindaki case seçeneklerinden birinde switch yapisini terketmek ve
switch’i izleyen deyime geçmek.Bu tip kullanim ile iliskili örnekler switch deyimi
anlatilirken verilmistir.

2)break deyiminin ikinci kullanilis yeri,bir çevrim(loop) yapisi içinden


,çevrimi kontrol eden kosul ifadesini beklemeksizin hemen çevrim disina
çikmak amaci iledir.

Break deyimi bir çevrim içinde yer almissa bu durumda break deyimi ile
karsilasilir karsilasilmaz çevrim disina çikilir ve çevrimi izleyen deyime
geçilir.

ÖRNEK:
ÖRNEK PROGRAMIN ÇIKTISI

continue DEYIMI

continue deyimi,çevrim içinde,belirli bir kosulun kontrolü ile,bir sonraki


çevrim adimina gidilmesini gerçeklestirir.

ÖRNEK:

Asagidaki programda,for çevriminin parametresi olan i degiskeni 3 ile tam


bölünemeyen bir deger alinca bu deger ile islem yapilmayip bir sonraki adima
geçilmesi continue deyimi ile saglanmaktadir.Böylece program,kullanici
tarafindan girilen bir üst limite kadar,3 ile bölünebilen sayilarin toplamini ve
bu tip sayilarin adedini bulacaktir.
ÜÇ ILE BÖLÜNEBILEN SAYILAR-M-DOSYA LISTESI

PROGRAMIN ÇIKTISI:

while KOMUTU

Yazilis biçimi,

While Kosul ,Deyim1,Deyim2,..,Deyim_n,end

Seklindedir.

Kosul dogru oldugu sürece,Deyim1,deyim2,..,deyim_n seklinde belirtilen deyimler


grubunu icra eder.Kosul yanlis oldugu anda,end’i izleyen deyime yani çevrim disina
çikilacaktir.

ÖRNEK:

» say=2,while say>0 ,say=input('BIR SAYI GIRINIZ,DURDURMAK


IÇIN NEGATIF SAYI GIRMELISINIZ'),end
say =

BIR SAYI GIRINIZ,DURDURMAK IÇIN NEGATIF SAYI GIRMELISINIZ 9

say =

BIR SAYI GIRINIZ,DURDURMAK IÇIN NEGATIF SAYI GIRMELISINIZ -1

say =

-1

You might also like