You are on page 1of 38

MATLAB ILE PROGRAM YAZMAK

Su ana kadar Matlab ile gereklestirdigimiz uygulamalarda ,belirli bir islemi gereklestirmek zere gerekli olan Matlab komut ya da fonksiyonlarini Matlab komut satirindan,>> sembollerinden sonra tek tek girerek icra ediyorduk. Oysa,Matlab komut ya da fonksiyonlarindan gereklestirmek istediginiz bir isle iliskili zel bir grubu,bir dosyaya kaydederek,bu dosya isminin agrilmasi ile icra edebilirsiniz.Sonuta ok pratik ve etkin bir yol ortaya ikar;sz 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 ieren bu tip bir dosyaya Matlabde Mdosyasi(M-file) adi verilir.Bu tip dosyalariin uzantisi daima .m seklinde olmalidir.Bir Matlab M dosyasi,bir komut grubu ierdigi iin tanim itibari ile bir program dosyasidir.Dolayisi ile ,Matlabde,M-dosyalari olusturularak programlama yapilabilir. M dosyasi iine tm 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 iinden geirilirler. Matlabde birok matematik ya da mhendislik problemini zmek iin yazilacak programlar C/C++,FORTRAN ya da PASCALdaki karsiliklarina gre ok daha basit ve kisadir.Bu aslinda beklenen bir sonutur nk Matlabde gerekte bu amala kullanilacak pek ok hazir fonksiyon mevcuttur.

MATLABTE BIR m-DOSYAYI(PROGRAMI) ALISTIRMAK Matlabde bir program alistirmak iin asagidaki adimlar izlenmelidir: 1)Program Matlab editr iinde yazilir ve saklanir. 2)Programin saklandigi dosya daima .m uzantili olmalidir. 3)Programi alistirmak iin ya komut satirindan ismi girilerek entera basilir veya asagidaki gibi Debug/Run mens kullanilir:

4)Programi icra edebilmek iin,komut satirinda, sadece programin adi yazilir;uzantisi yazilmamalidir.

SEME(SELECTION) TIPINDEKI KONTROL DEYIMLERI


IF DEYIMI if deyimi,Matlab dilinde sartli dallanma(conditional branching) adi verilen islemi gereklestiren bir deyimdir. Sartli dallanma, herhangi bir programlama dili iin temel kontrol yapisidir. Sartli dallanma islemi sayesinde,bir program, kararlar alma imkanina kavusur; bir ifadenin sonucuna gre, bir komutlar dizisinin icra edilip edilmeyecegine karar verebilir. Ifadenin degeri, bir icradan digerine degisebilecegi iin, bu zellik bir programa farkli verilere karsi farkli sekillerde davranma imkani saglar. Matlab dilinde sartli dallanma if ve else anahtar szckleri ile gereklestirilir. if deyiminin en basit sekli iin yazilis biimi asagidaki gibidir: if ifade deyim1; end deyim2; Burada ifadenin degeri dogru(true) ise deyim1 icra edilir sonra icra deyim2ye geer.Ifadenin degeri yanlis(false) ise bu durumda da dogrudan deyim2ye geilir.Ifadenin degeri yanlis ise deyim1 icra edilmeyecektir.Asagida if yapisini aiklayan bir akis diyagrami verilmistir.

if deyimi iin akis diyagrami(flow chart) If deyimi else szcg ile birlikte kullanilirsa asagidaki yazilis biimi kullanilir:

if ifade deyim1 ; else

deyim2; end deyim3; ... Bu durumda,ifadenin degeri dogru ise deyim1 icra edilir ve sonra deyim3e geilir.Ifadenin degeri yanlis ise,bu durumda da deyim1 atlanarak dogrudan elsei izleyen deyim2ye geilecek 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 szckleri arasina yerlestirilir: if ifade deyim1; deyim2; .. deyim_n; end deyim_x; .. Bu durumda ifade dogru ise deyim1,deyim2,..deyim_n ile belirtilen deyimler grubunun tm icra edilerek deyim_xe geilecektir;ifade yanlis ise de bu durumda ife ait deyimler blogu atlanarak dogrudan deyim_xe geilecektir. Ayni sey if else yapisi iin de sz 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_kya geilecek,ifade yanlis ise bu durumda da,if iindeki deyimler atlanarak sadece deyim_n+1,deyim_n+2,..,deyim_m icra edilerek programin icrasi daha sonra deyim_kya erisecektir. RNEK 1: I.File/New/m-file yolu ile bir m- file ainiz:

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 entera basilinca GIRDIGINIZ SAYI 10 DAN BUYUKTUR mesaji gelecektir:

Bu ok basit ve kisitli programda kullanici klavyeden 10dan daha byk bir sayi girdigi zaman,program yukardaki iktida grlen mesaji verecek fakat 10 ya da daha kk bir sayi girilirse bu durumda herhangi bir mesaj grntlenmeyecektir.

RNEK PROGRAM 2: I.Asagidaki m-dosyayi olusturunuz:

II.Programi alistirdiginizda,bu programda ,klavyeden,10dan byk bir sayi girilirse,asagidaki BIR TAM SAYI GIRINIZ..14 GIRDIGINIZ SAYI 10 DAN BUYUKTUR

iktisi elde edilecek,10 ya da daha kk bir sayi girilirse de asagida grldg gibi, >> if1 BIR TAM SAYI GIRINIZ..7 GIRDIGINIZ SAYI 10 YA DA DAHA KUCUK BIR SAYIDIR >>

Bir mesaj elde edilecektir.Bylece if-else yapisi ile daha kapsamli bir kontrol isleminin gereklestirilebilecegi sylenebilir.

PROBLEM:

f(x) ve g(x) fonksiyonlari,

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

ve g(x)=1/(x+ln(x))

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

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

PROBLEMIN ZM OLAN MATLAB M-DOSYASI

PROGRAMIN IKTISI: xin 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 rn miktarina gre alacagi gnlk cret asagidaki gibi belirlenmektedir: Gnlk satis miktari 50den az ise,4,000,000TL lik sabit crete satilan rn basina 50,000TLlik prim eklenerek gnlk cret belirlenecektir. Gnlk satis miktari 50 ya da daha fazla ise bu durumda gnlk sabit cret 5,000,000TL alinarak satilan rn basina da ilk 50 rn iin 50,000TL,50yi asan kisim iin de 60,000TL prim verilerek gnlk cret belirlenecektir. Bir saticinin gnlk satis miktari bilgisayara girildiginde saticinin alacagi gnlk creti hesaplayan bir C programi yaziniz.

SATIS PROBLEMI IIN MATLAB PROGRAMI:

Gerekli tm araliklarin kontrol iin,program 40,50 ve 60 satis miktarlari iin test edilrek asagidaki sonular elde edilmistir:

PROBLEM:Bilgisayara negatif olmayan bir sayi girildiginde bu sayinin karekkn hesaplayan ,negatif bir sayi girildiginde ise kullaniciyi uyaran bir MATLAB programi yaziniz.

KAREKK PROGRAMININ LISTESI:

KAREKK PROGRAMININ IKTISI:

Programda,verilen bir sayinin karekkn hesaplayan sqrt fonksiyonu kullanilmistir..

KARSILASTIRMA IFADELERI Dogal olarak, sartli bir ifadede iki deger arasinda karsilastirma islemi gereklidir. Bazen iliskisel operatrler olarak ta anilan (relational operators ) 6 karsilastirma operatr vardir.Bunlar asagidaki tabloda belirtilmistir:

Iliskisel operatrler de ikili operatrlerdir. (binary operators ) Yani bu operatrlerin her biri iki farkli deger(operand) zerinde islem grr. 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 gre asagidaki ifadelerin sonularini inceleyiniz:

Asagidaki Matlab m-dosyasi ise,esitli karsilastirma islemlerinin sonularini ekrana aktarmaktadir:

DIKKAT EDILECEK NOKTA: Karsilastirma islemlerinde esitlik kontrolnn == sembol yerine yanlislikla = sembol ile yapilmasi durumu.

I IE IF DEYIMLERI(NESTED IF STATEMENTS)
Tek bir if deyimi programin iki seenekten birini semesine 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 ie if deyimlerini gerektirir. Farz edelim ki tamsayiyi kabul eden ve bunlarin en kgn bulan ve yazdiran bir program yazmak istiyorsunuz, I ie if deyimleri ile programi asagidaki gibi yazabilirdiniz.

TAMSAYININ EN KGN BULAN MATLAB PROGRAMI:

PROGRAMIN IKTISI:

I ie 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 cmlecigine sahip olabilir. if-else-if BASAMAK YAPISI Birbirini izleyen ok sayida kosul kontroln gereklestirmeye yarayan bir yapi ifelse- if basamagi adini alir ve yazilis biimi 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+1e geilir. Ifade1 yanlis ise,o takdirde,ifade2 kontrol edilir.Bu ifade dogru ise,bu durumda sadece Deyim2 icra edilir ve sonra Deyim_n+1e geilir. Ifade2 yanlis ise,o takdirde,ifade3 kontrol edilir.Bu ifade dogru ise,bu durumda sadece Deyim3 icra edilir ve sonra Deyim_n+1e geilir. Bu islemler daha fazla sayida else if bulundugu takdirde ayni sekilde devam eder. ifler ile kontrol edilen ifadelerin tm de yanlis ise,bu durumda programin kontrol elsei izleyen Deyim_ne geer ve bu deyim icra edilir.Daha sonra kontrol Deyim_n+1e geecektir. Yukardaki yapi iinde,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 gre belirlendigini var sayalim: Gelir150,000,000 ise vergi orani %25 Gelir300,000,000 ise vergi orani %30 Gelir600,000,000 ise vergi orani %35 Gelir1,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 gre kontrol edilerek vergi hesaplanacaktir. c)Hesaplana n vergi ekrana yazdirilacaktir.

VERGI HESABINI GEREKLESTIREN 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 TLsi %25ten,kalan 200,000,000-150,000,000=50,000,000 TLsi ise %30dan vergilendirilecektir. O nedenle programin basinda her araliga ait sabit vergiler hesaplanarak v1,v2,v3 ve v4 degiskenlerine atanmaktadir.

RNEK PROBLEM:IKINCI DERECE DENKLEMININ KKLERININ BULUNMASI:

Lise yillarinda grendiginiz ikinci derece denklemi,

ax2 + bx + c = 0

seklinde ifade edilir ve denklemin kklerinin varligi hakkinda bilgi sahibi olabilmek iin,denklemin diskriminanti adi verilen,

=b2-4ac

ifadenin hesaplanmasi gerekir.Diskriminantin degerlerine gre,sayet, <0 ise denklemin gerel sayilarla ifade edilebilecek bir kk yoktur.

=0 ise denklemin ,degerleri birbirine esit olan iki kk vardir ve bunlar, x1=x2= -b/(2a) seklinde hesaplanirlar.Bunlara iki kat kk ya da akisik kk adi verilir. >0 ise de denklemin birbirinden farkli iki gerel kk vardir ve bunlar, x1=(-b+)/(2a) ve x1=(-b-)/(2a) seklinde hesaplanirlar.

RNEK:IKINCI DERECE DENKLEMININ KKLERINI BULAN PROGRAM


Bu uygulamayi gereklestirebilmek iin asagidaki adimlari izleyiniz: 1)Matlabin File/New /M-file men adimlarini izleyerek matlab editrn ainiz:

2)Gelen editre asagidaki programi giriniz:

3) Programi File/Save mens yardimi ile ikider.m adi ile saklayiniz. 4)Matlab komut satirina asagidaki ismi giriniz: ikider a katsayisi..1 a= 1 b katsayisi..1 b= 1 c katsayisi..1 c= 1 d= -3 gerek kk yok

Program alisinca a b ve c katsayilarini istemis ve kullanici a=1 b=1 c=1 degerlerini girmistir.Bylece x2+x+1 =0 denkleminin kkleri aranmaktadir.Bu denklemin gerek kk yoktur ve program bu mesaji vermektedir. Ayni programi bir kez daha alistirarak x2-2x+1=0 denkleminin kklerini arastiralim: ikider a katsayisi..1 a = 1 b katsayisi..-2 b = -2 c katsayisi..1 c = 1 d = 0 x1 = 1 x1=x2 Bu durumda denklemin akisik iki kk vardir ve x1=x2=1dir ve program bu sonucu bulmustur. Son olarak ayni programi x -5x+6=0 denklemi iin test edelim: ikider a katsayisi..1 a= 1
2

b katsayisi..-5 b= -5 c katsayisi..6 c= 6 d= 1 x1 = 3 x2 = 2 Kkler x1=3 ve x2=2 olarak bulunmustur ki bu da dogru sonutur. 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 2de ise birden fazla mukayese ifadesini birlestirmek iin kullanilan mantiksal islem operatrleri grlmektedir: Tablo 2-Mantiksal islem operatrleri

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 = 0 xor(1,0) ans = 1 xor(0,1) ans = 1

xor(0,0) ans = 0

RNEK : & OPERATR


a=input('a..'),b=input('b...'),if a>0 & b> 0,disp('her iki sayi da pozitiftir'),end a..4 a= 4 b...3 b = 3 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 = 4 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 = 7 b...-4 b = -4

MANTIKSAL OPERATRLERIN MATRISLER IIN KULLANILMASI


Mantiksal operatrler matrisler iin de kullanilabilir.Asagidaki rnekleri inceleyiniz: A=eye(3,3) A = 1 0 0 1 0 0

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 E=~D E = 0 0 0 F=D|E F = 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1

1 1

1 1

1 1

RNEK:BIR LINEER DENKLEM SISTEMININ ZMN BULAN PROGRAM


ZM: 1)Asagidaki M- filei 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 VEKTRN GIRINIZ DAHA SONRA return KOMUTUNU GIRINIZ

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

A = 1 2 4 1 -2 2 1 1 1

K b=[3 1 7]

b = 3 K return x = 1.0000 1.0000 1.0000 1 7

MATLAB IINDE EVRIM(DNG,Ing.LOOP) OLUSTURMAKONTROL KOMUTLARI


Matlab ortaminda,gerek komut satirinda gerekse m-dosyalari iinde kullanabileceginiz kontrol komutlari mevcuttur.bu komutlar yardimi ile Matlabde olusturmak istediginiz bir programin mantiksal akisini kontrol edebilirsiniz. Matlabde kullanabileceginiz kontrol komutlari, 1)Tekrarli islemler anlamindaki evrim yapilarini olusturan komutlar(For,While) 2)Bir kosulu kontrol ederek kosulun sonucuna gre 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 biimde kullanilabilir: for Parametre=Baslangi:Artim:SonDeger ,Deyim1,Deyim2,..Deyim_n,End Bir m-file iinde 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 iin,Deyim1,Deyim2,Deyim_n seklinde belirtilen ve for-end szckleri arasinda yer alan deyimler grubu icra edilir.Parametrenin degeri,SonDegeri asinca,programin kontrol,endi izleyen deyime yani evrimin disina ikacaktir.Artim degeri negatif te olabilir.Bu durumda Baslangi degerinin SonDegerden daha byk olmasi gerekir. RNEK 1: for t=0.5:0.1:1 ,disp(t) ,end 0.5000 0.6000 0.7000 0.8000 0.9000 1 RNEK 2: for t=2.5:-0.1:2 ,disp(t) ,end 2.5000 2.4000 2.3000 2.2000 2.1000 2

RNEK:FAKTRYEL HESABI for evrimini kullanacagimiz diger bir rnek program ise faktryel hesabi programi olacaktir.Matematikte faktryel,bilindigi gibi, n!=1.2.3...n seklinde tanimlanir;yani n sayisinin faktryeli 1den ne kadar tam sayilarin arpimina esittir.Asagida,faktryel hesabi ile iliskili Matlab programi ve bu program iindeki degiskenlerin programin icrasi esnasindaki degisimlerini gsteren tablo verilmistir:

FAKTRYEL HESABI YAPAN MATLAB PROGRAMI:

PROGR AMIN IKTISI:

FAKTRYEL PROGRAMINDAKI DEGISKENLERIN PROGRAMIN ICRASI ESNASINDAKI DEGISIMLERINI GSTEREN 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 GSTEREN TABLO

AIKLAMA:

Sadece 4 terim oldugu iin for evrimi 1den 4e kadar alistirilmistir.ilk terim 1.2/(3.4) ve ikinci terim 5.6/(7.8) oldugu iin, 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 gre x,her seferinde 4 arttirilmalidir.Bu da programda x=x+4 ; deyimi ile gereklestiriliyor. Seri alterne seri olduguna gre,yani terimlerin isaretleri +,-,+,- seklinde degistigine gre,p degiskeni yardimi ile terimlerin isaretleri ayarlanabilir.p nce 1 olarak atanmistir.Sonra evrim iine 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 Matlabte hesaplatiniz. ZM: I.Asagidaki m-dosyayi olusturunuz:

II.yukardaki m-dosyayi m=1000, m=10000 ve m=100000 degerleri iin alistirdiginizda gittike piye yaklasan degerler elde edeceksiniz:

RNEK PROBLEM:

Ifadesini Matlabte hesaplatiniz. Bu ifadeyi Matlabte hesaplatabilmek iin esitli yollar mevcuttur.Biz burada bir m-dosya ile bu hesaplatmayi gereklestirecegiz: ZM Asagidaki m-dosyayi olusturunuz:

m-dosyayi alistirdiginizda asagidaki sonucu elde edeceksiniz: : Tam dogru deger RNEK PROBLEM: dir ve yukardaki sonu bu degere ok yakindir.

Asagidaki ifadeyi Matlabte hesaplatiniz:

ZM: Asagidaki m-dosyayi olusturunuz ve alistiriniz:

Asagidaki zm elde edeceksiniz:

I IE EVRIMLER Bir evrim yapisinin iine baska bir evrim yapisinin yerlestirilmesi ile elde edilen yapiya i ie evrim(nested loop) adi verilir. Matlab dilinde, if deyimlerini her hangi bir derinlige kadar i ie kullanmak nasil mmknse, evrim deyimlerini de i ie kullanmak mmkn olacaktir. I ie evrimlerde hatirlanacak anahtar bilgi, nce iteki evrimlerin tamamlanmasi gerektigidir.Bu konuda asagidaki kural i ie evrimler iin daima geerlidir: I ie evrimlerde en iteki evrim en nce tamamlanir. RNEK: Asagidaki programda,dis evrim olan i parametreli alisacaktir.(i=1,2,3,4,5).inin her degeri iin ise iteki alisacaktir.(j=1,2,3).Bylece asagidaki ikti elde edilecektir: evrim evrim 5 3 kez kez

PROGRAMIN IKTISI:

RNEK:ARPIM TABLOSU PROGRAMI


1den 10a kadar sayilar iin bir arpim tablosu hazirlamak istiyoruz.Bunun iin i ie 2 evrim yeterlidir ve her iki evrimin de parametresi 1den 10a kadar degisecektir.Programin listesi asagidadir:

ARPIM TABLOSU PROGRAMININ IKTISI

Her x degeri iin, program nce x i yazdirir; sonra y nin 10 degeri iin evrim yaparak her iterasyon iin x*y yi yazdirir ve yeni bir satira geer. printf (% 5d ,x*y); komutu en iteki evrime aittir. % 5 d dnsm, fprintf( )nin ikista her sayi iin 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 ie 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 iin,o adimdaki faktryeli hesaplatmak zorunda oldugumuz ve o nedenle yukardaki evrimin iinde yer almasi gereken bir evrim. Bu dsncelerle,problemin zmn teskil edecek olan bir Matlab programini asagidaki gibi yazabiliriz:

FAKTRYELLI TERIMLERDEN OLUSAN SERI TOPLAMI PROGRAMI:

SERI TOPLAMI PROGRAMININ IKTISI

break

DEYIMI

break deyiminin Matlab programlari iinde iki farkli kullanim alani mevcuttur: 1)switch yapisindaki case seeneklerinden birinde switch yapisini terketmek ve switchi izleyen deyime gemek.Bu tip kullanim ile iliskili rnekler switch deyimi anlatilirken verilmistir. 2)break deyiminin ikinci kullanilis yeri,bir evrim(loop) yapisi iinden ,evrimi kontrol eden kosul ifadesini beklemeksizin hemen evrim disina ikmak amaci iledir. Break deyimi bir evrim iinde yer almissa bu durumda break deyimi ile karsilasilir karsilasilmaz evrim disina ikilir ve evrimi izleyen deyime geilir. RNEK:

RNEK PROGRAMIN IKTISI

continue

DEYIMI

continue deyimi,evrim iinde,belirli bir kosulun kontrol ile,bir sonraki evrim adimina gidilmesini gereklestirir. RNEK: Asagidaki programda,for evriminin parametresi olan i degiskeni 3 ile tam blnemeyen bir deger alinca bu deger ile islem yapilmayip bir sonraki adima geilmesi continue deyimi ile saglanmaktadir.Bylece program,kullanici tarafindan girilen bir st limite kadar,3 ile blnebilen sayilarin toplamini ve bu tip sayilarin adedini bulacaktir.

ILE BLNEBILEN SAYILAR-M-DOSYA LISTESI

PROGRAMIN IKTISI:

while KOMUTU
Yazilis biimi, While Kosul ,Deyim1,Deyim2,..,Deyim_n,end Seklindedir. Kosul dogru oldugu srece,Deyim1,deyim2,..,deyim_n seklinde belirtilen deyimler grubunu icra eder.Kosul yanlis oldugu anda,endi izleyen deyime yani evrim disina ikilacaktir. RNEK: say=2,while say>0 ,say=input('BIR SAYI GIRINIZ,DURDURMAK IIN NEGATIF SAYI GIRMELISINIZ'),end

say = 2 BIR SAYI GIRINIZ,DURDURMAK IIN NEGATIF SAYI GIRMELISINIZ say = 9 BIR SAYI GIRINIZ,DURDURMAK IIN NEGATIF SAYI GIRMELISINIZ say = -1 -1 9

You might also like